/[escript]/trunk/escript/src/DataC.cpp
ViewVC logotype

Diff of /trunk/escript/src/DataC.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2199 by jfenwick, Thu Jan 8 06:10:52 2009 UTC revision 2271 by jfenwick, Mon Feb 16 05:08:29 2009 UTC
# Line 119  int isExpanded(struct escriptDataC* data Line 119  int isExpanded(struct escriptDataC* data
119       if (temp->isEmpty()) {       if (temp->isEmpty()) {
120          return false;          return false;
121       } else {       } else {
122          return temp->isExpanded() || temp->isLazy();    // THIS IS WRONG!!! we need actsExpanded from the branch          return temp->actsExpanded();
123       }       }
124    }    }
125  }  }
# Line 134  int isEmpty(escriptDataC* data) Line 134  int isEmpty(escriptDataC* data)
134    }    }
135  }  }
136    
137    // The unusual (for me) ordering of __const here is because I'm not sure
138    // whether gcc would try to interpret __const as a function attribute rather than
139    // a modifier on the return value. Putting it here should remove any ambiguity
140    // I have used const rather than __const in the cpp because only c++ will be reading the cpp.
141    double const* getSampleDataRO(struct escriptDataC* data, int sampleNo, void* buffer)
142    {
143      if (data == (struct escriptDataC*)0) {
144           return NULL;
145      } else {
146          escript::Data* temp=(escript::Data*)(data->m_dataPtr);
147         if (temp->isEmpty()) {
148            return NULL;
149         } else {
150            return temp->getSampleDataRO(sampleNo,reinterpret_cast<escript::BufferGroup*>(buffer));
151         }
152      }
153    }
154    
155  double* getSampleData(struct escriptDataC* data, int sampleNo)  double* getSampleDataRW(struct escriptDataC* data, int sampleNo)
156  {  {
157    if (data == (struct escriptDataC*)0) {    if (data == (struct escriptDataC*)0) {
158         return NULL;         return NULL;
# Line 144  double* getSampleData(struct escriptData Line 161  double* getSampleData(struct escriptData
161       if (temp->isEmpty()) {       if (temp->isEmpty()) {
162          return NULL;          return NULL;
163       } else {       } else {
164          return temp->getSampleData(sampleNo);          return temp->getSampleDataRW(sampleNo);
165       }       }
166    }    }
167  }  }
168    
169  double* getSampleDataFast(struct escriptDataC* data, int sampleNo)  const double* getSampleDataROFast(struct escriptDataC* data, int sampleNo, void* buffer)
170    {
171      escript::Data* temp=(escript::Data*)(data->m_dataPtr);
172      return temp->getSampleDataRO(sampleNo, reinterpret_cast<escript::BufferGroup*>(buffer));
173    }
174    
175    double* getSampleDataRWFast(struct escriptDataC* data, int sampleNo)
176  {  {
177    escript::Data* temp=(escript::Data*)(data->m_dataPtr);    escript::Data* temp=(escript::Data*)(data->m_dataPtr);
178    return temp->getSampleData(sampleNo);    return temp->getSampleDataRW(sampleNo);
179    }
180    
181    void* allocSampleBuffer(escriptDataC* data)
182    {
183      if (data == (struct escriptDataC*)0) {
184         return NULL;
185      } else {
186         escript::Data* temp=(escript::Data*)(data->m_dataPtr);
187         return temp->allocSampleBuffer();
188      }
189    }
190    
191    // Not going to the c++ member for this because I don't need an instance to do this
192    void freeSampleBuffer(void* buffer)
193    {
194      if (buffer!=NULL)
195      {
196        delete (reinterpret_cast<escript::BufferGroup*>(buffer));
197      }
198    }
199    
200    void requireWrite(escriptDataC* data)
201    {
202      if (data == (struct escriptDataC*)0) {
203           return;
204      } else {
205          ((escript::Data*)(data->m_dataPtr))->requireWrite();
206      }
207  }  }

Legend:
Removed from v.2199  
changed lines
  Added in v.2271

  ViewVC Help
Powered by ViewVC 1.1.26