Changeset 2454 in Sophya for trunk/ArchTOIPipe/Kernel/toisegment.h
- Timestamp:
- Nov 14, 2003, 1:34:56 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ArchTOIPipe/Kernel/toisegment.h
r2135 r2454 5 5 // Christophe Magneville 6 6 // Reza Ansari 7 // $Id: toisegment.h,v 1.2 0 2002-07-26 10:36:19 ansariExp $7 // $Id: toisegment.h,v 1.21 2003-11-14 12:34:55 aubourg Exp $ 8 8 9 9 #ifndef TOISEGMENT_H … … 32 32 ~TOISegmented(); 33 33 34 virtual double getData( inti);35 virtual void getData( inti, double& data, uint_8& flag);36 virtual void getData( inti, int n, double* data, uint_8* flg=0);37 virtual void putData( inti, double value, uint_8 flag=0);38 virtual void putData( inti, int n, double const* val, uint_8 const* flg=0);39 virtual void wontNeedBefore( inti);34 virtual double getData(long i); 35 virtual void getData(long i, double& data, uint_8& flag); 36 virtual void getData(long i, int n, double* data, uint_8* flg=0); 37 virtual void putData(long i, double value, uint_8 flag=0); 38 virtual void putData(long i, int n, double const* val, uint_8 const* flg=0); 39 virtual void wontNeedBefore(long i); 40 40 virtual void putDone(); 41 41 virtual void addConsumer(TOIProcessor*); 42 42 43 43 // Methodes ignorees car on reimplemente les methodes de base 44 virtual DataStatus isDataAvail( int iStart, intiEnd);45 virtual DataStatus isDataAvail( inti);46 virtual DataStatus isDataAvailNL( inti);47 virtual DataStatus isDataAvailNL( int iStart, intiEnd); // abstract48 virtual void waitForData( int iStart, intiEnd);49 virtual void waitForData( inti);44 virtual DataStatus isDataAvail(long iStart, long iEnd); 45 virtual DataStatus isDataAvail(long i); 46 virtual DataStatus isDataAvailNL(long i); 47 virtual DataStatus isDataAvailNL(long iStart, long iEnd); // abstract 48 virtual void waitForData(long iStart, long iEnd); 49 virtual void waitForData(long i); 50 50 virtual void waitForAnyData(); 51 virtual int nextDataAvail(intiAfter); // abstract51 virtual long nextDataAvail(long iAfter); // abstract 52 52 virtual bool hasSomeData(); // abstract 53 virtual void doGetData( inti, double& data, uint_8& flag); // abs54 virtual void doPutData( inti, double value, uint_8 flag=0); // abs53 virtual void doGetData(long i, double& data, uint_8& flag); // abs 54 virtual void doPutData(long i, double value, uint_8 flag=0); // abs 55 55 56 56 … … 76 76 int getRefCount(); 77 77 78 void putData( intsn, double data, uint_8 flag);79 void putData( intsn, int n, double const* data, uint_8 const* flag);80 inline double getData( intsn);81 inline uint_8 getFlag( intsn);82 void getData( intsn, int n, double* data, uint_8* flag);83 84 bool isPastEnd( intsn) {78 void putData(long sn, double data, uint_8 flag); 79 void putData(long sn, int n, double const* data, uint_8 const* flag); 80 inline double getData(long sn); 81 inline uint_8 getFlag(long sn); 82 void getData(long sn, int n, double* data, uint_8* flag); 83 84 bool isPastEnd(long sn) { 85 85 return sn >= sn0+bufferSize; 86 86 } … … 94 94 } 95 95 96 void checkInRange( intsn) {96 void checkInRange(long sn) { 97 97 if (sn < sn0 || sn >= sn0+bufferSize) { 98 98 cerr << "TOISegment: out of range access in buffer segment " << sn << " not in " … … 105 105 int status; // NEW, WRITE, COMMITTED 106 106 int bufferSize; 107 intsn0; // Samplenum du premier echantillon107 long sn0; // Samplenum du premier echantillon 108 108 109 109 int refcount; // Nombre de vues qui utilisent … … 123 123 ~MasterView(); 124 124 125 void putData( intsn, double data, uint_8 flag);126 double getData( intsn);127 uint_8 getFlag( intsn);128 void getData( inti, int n, double* data, uint_8* flg);129 void putData( inti, int n, double const* val, uint_8 const* flg);125 void putData(long sn, double data, uint_8 flag); 126 double getData(long sn); 127 uint_8 getFlag(long sn); 128 void getData(long i, int n, double* data, uint_8* flg); 129 void putData(long i, int n, double const* val, uint_8 const* flg); 130 130 BufferView* getView(); // thread-specific 131 131 void putDone(); … … 147 147 int maxSegments; 148 148 int segmentSize; 149 intsn0; // First sn in first segment149 long sn0; // First sn in first segment 150 150 vector<BufferSegment*> segments; // Committed segments 151 151 int nConsumers; … … 174 174 ~BufferView(); 175 175 176 double getData( intsn);177 uint_8 getFlag( intsn);178 void getData( inti, int n, double* data, uint_8* flg);179 180 void wontNeedBefore( intsn);176 double getData(long sn); 177 uint_8 getFlag(long sn); 178 void getData(long i, int n, double* data, uint_8* flg); 179 180 void wontNeedBefore(long sn); 181 181 182 182 protected: 183 void wait( intsn); // Passe en attente d'un nouveau segment -- lecture183 void wait(long sn); // Passe en attente d'un nouveau segment -- lecture 184 184 void sync(); // recupere les nouveaux segments, resync avec master 185 void ensure( intsn);185 void ensure(long sn); 186 186 187 187 bool waiting; 188 intwaitingFor;188 long waitingFor; 189 189 190 190 friend class MasterView; 191 191 MasterView* master; 192 192 vector<BufferSegment*> segments; // Committed 193 intsn0;193 long sn0; 194 194 int segmentSize; 195 intfirstNeeded;195 long firstNeeded; 196 196 }; 197 197 … … 204 204 /***********************************/ 205 205 206 double TOISegmented::BufferSegment::getData( intsn) {206 double TOISegmented::BufferSegment::getData(long sn) { 207 207 checkCommitted(); 208 208 checkInRange(sn); … … 210 210 } 211 211 212 uint_8 TOISegmented::BufferSegment::getFlag( intsn) {212 uint_8 TOISegmented::BufferSegment::getFlag(long sn) { 213 213 checkCommitted(); 214 214 checkInRange(sn);
Note:
See TracChangeset
for help on using the changeset viewer.