/[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 1811 by ksteube, Thu Sep 25 23:11:13 2008 UTC revision 3911 by jfenwick, Thu Jun 14 01:01:03 2012 UTC
# Line 1  Line 1 
1    
2  /*******************************************************  /*******************************************************
3  *  *
4  * Copyright (c) 2003-2008 by University of Queensland  * Copyright (c) 2003-2012 by University of Queensland
5  * Earth Systems Science Computational Center (ESSCC)  * Earth Systems Science Computational Center (ESSCC)
6  * http://www.uq.edu.au/esscc  * http://www.uq.edu.au/esscc
7  *  *
# 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();          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)
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);
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)
170  {  {
171    escript::Data* temp=(escript::Data*)(data->m_dataPtr);    escript::Data* temp=(escript::Data*)(data->m_dataPtr);
172    return temp->getSampleData(sampleNo);    return temp->getSampleDataRO(sampleNo);
173    }
174    
175    double* getSampleDataRWFast(struct escriptDataC* data, int sampleNo)
176    {
177      escript::Data* temp=(escript::Data*)(data->m_dataPtr);
178      return temp->getSampleDataRW(sampleNo);
179    }
180    
181    double* getDataRW(escriptDataC* data)
182    {
183      escript::Data* temp=(escript::Data*)(data->m_dataPtr);
184      if (temp->getNumSamples()>0)
185      {
186         requireWrite(data);
187         return getSampleDataRWFast(data,0);
188      }
189      return 0;
190    }
191    
192    
193    void requireWrite(escriptDataC* data)
194    {
195      if (data == (struct escriptDataC*)0) {
196           return;
197      } else {
198          ((escript::Data*)(data->m_dataPtr))->requireWrite();
199      }
200  }  }

Legend:
Removed from v.1811  
changed lines
  Added in v.3911

  ViewVC Help
Powered by ViewVC 1.1.26