Changeset 2454 in Sophya for trunk/ArchTOIPipe/Kernel


Ignore:
Timestamp:
Nov 14, 2003, 1:34:56 PM (22 years ago)
Author:
aubourg
Message:

pb longs sur magique

Location:
trunk/ArchTOIPipe/Kernel
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ArchTOIPipe/Kernel/toi.cc

    r2187 r2454  
    33//                               Christophe Magneville
    44//                               Reza Ansari
    5 // $Id: toi.cc,v 1.12 2002-09-09 15:33:14 aubourg Exp $
     5// $Id: toi.cc,v 1.13 2003-11-14 12:34:55 aubourg Exp $
    66
    77#include "toiprocessor.h"
     
    6868}
    6969
    70 int TOI::getMinSn(){
     70long TOI::getMinSn(){
    7171  return producer->getMinOut();
    7272}
    7373
    74 int TOI::getMaxSn(){
     74long TOI::getMaxSn(){
    7575  return producer->getMaxOut();
    7676}
     
    9797 RZCMV   ----- l'interface va etre modifiee, NE PAS UTILISER
    9898#ifndef NO_SOPHYA
    99 Array TOI::getError(int iStart, int iEnd) {
     99Array TOI::getError(long iStart, long iEnd) {
    100100  if (errorTOI == NULL) throw NotFoundExc("TOI::getDataError : no Error TOI");
    101101  return errorTOI->getData(iStart, iEnd);
    102102}
    103 Array TOI::getData(int iStart, int iEnd) {
     103Array TOI::getData(long iStart, long iEnd) {
    104104  lock();
    105105  Array a = doGetData(iStart, iEnd);
     
    108108  return a;
    109109}
    110 TArray<int_4> TOI::getFlag(int iStart, int iEnd) {
     110TArray<int_4> TOI::getFlag(long iStart, long iEnd) {
    111111  lock();
    112112  TArray<int_4> a = doGetFlag(iStart, iEnd);
     
    122122/*
    123123RZCMV  -------   A revoir les getError() ...
    124 double TOI::getError(int i) {
     124double TOI::getError(long i) {
    125125  if (errorTOI == NULL) throw NotFoundExc("TOI::getDataError : no Error TOI");
    126126  return errorTOI->getData(i);
    127127}
    128128
    129 void TOI::putDataError(int i, double value, double error, int_4 flag) {
     129void TOI::putDataError(long i, double value, double error, int_4 flag) {
    130130  if (errorTOI == NULL) throw NotFoundExc("TOI::getDataError : no Error TOI");
    131131  putData(i, value, flag);
     
    135135*/
    136136
    137 double TOI::getData(int i) { /* deprecated, overriden in toisegment */
     137double TOI::getData(long i) { /* deprecated, overriden in toisegment */
    138138  lock();
    139139  uint_8 flg;
     
    145145}
    146146
    147 void TOI::getData(int i, double &data, uint_8 &flag) { /* deprecated, overriden in toisegment */
     147void TOI::getData(long i, double &data, uint_8 &flag) { /* deprecated, overriden in toisegment */
    148148  lock();
    149149  doGetData(i, data, flag);
     
    153153}
    154154
    155 void TOI::getData(int i, int n, double* data, uint_8* flg) {
     155void TOI::getData(long i, int n, double* data, uint_8* flg) {
    156156  cerr << "TOI::getData [double*] unimplemented" << endl;
    157157  exit(-1);
    158158}
    159159
    160 void TOI::putData(int i, int n, double const* var, uint_8 const* flg) {
     160void TOI::putData(long i, int n, double const* var, uint_8 const* flg) {
    161161  cerr << "TOI::putData [double*] unimplemented" << endl;
    162162  exit(-1);
    163163}
    164164
    165 void TOI::putData(int i, double value, uint_8 flag) { /* deprecated, overriden in toisegment */
     165void TOI::putData(long i, double value, uint_8 flag) { /* deprecated, overriden in toisegment */
    166166  lock();
    167167  doPutData(i, value, flag);
     
    170170}
    171171
    172 void TOI::waitForData(int iStart, int iEnd) { /* deprecated, overriden in toisegment */
     172void TOI::waitForData(long iStart, long iEnd) { /* deprecated, overriden in toisegment */
    173173  if (producer == NULL) throw NotFoundExc("TOI has no producer !");
    174174   
     
    189189}
    190190
    191 void TOI::waitForData(int i) { /* deprecated, overriden in toisegment */
     191void TOI::waitForData(long i) { /* deprecated, overriden in toisegment */
    192192  waitForData(i,i);
    193193}
     
    201201}
    202202
    203 TOI::DataStatus TOI::isDataAvail(int i) {
     203TOI::DataStatus TOI::isDataAvail(long i) {
    204204  lock();
    205205  DataStatus stat = isDataAvailNL(i);
     
    208208}
    209209
    210 TOI::DataStatus TOI::isDataAvail(int i, int j) {
     210TOI::DataStatus TOI::isDataAvail(long i, long j) {
    211211  lock();
    212212  DataStatus stat = isDataAvailNL(i,j);
     
    215215}
    216216
    217 TOI::DataStatus TOI::isDataAvailNL(int i) {
     217TOI::DataStatus TOI::isDataAvailNL(long i) {
    218218  return isDataAvailNL(i,i);
    219219}
    220220
    221 void TOI::wontNeedBefore(int i) { /* deprecated, overriden in toisegment */
    222   int j=i;
     221void TOI::wontNeedBefore(long i) { /* deprecated, overriden in toisegment */
     222  long j=i;
    223223  for (vector<TOIProcessor*>::iterator k = consumers.begin();
    224224       k != consumers.end(); k++) {
     
    230230}
    231231
    232 void TOI::doWontNeedBefore(int i) {
    233 }
    234 
    235 
    236 
    237 
    238 
    239 
    240 
    241 
    242 
    243 
    244 
    245 
    246 
    247 
    248 
     232void TOI::doWontNeedBefore(long i) {
     233}
     234
     235
     236
     237
     238
     239
     240
     241
     242
     243
     244
     245
     246
     247
     248
  • trunk/ArchTOIPipe/Kernel/toi.h

    r2187 r2454  
    55//                               Christophe Magneville
    66//                               Reza Ansari
    7 // $Id: toi.h,v 1.17 2002-09-09 15:33:15 aubourg Exp $
     7// $Id: toi.h,v 1.18 2003-11-14 12:34:55 aubourg Exp $
    88
    99#ifndef TOI_H
     
    4949  enum DataStatus       {DATA_OK=0, DATA_DELETED, DATA_NOT_YET};
    5050   
    51   virtual double        getData(int i);
    52   virtual void          getData(int i, double &data, uint_8 &flag);
    53   //RZCMV  virtual DataStatus    getDataError(int i,double &data,double &error,int_4 &flag);
    54   virtual void          getData(int i, int n, double* data, uint_8* flg=0);
     51  virtual double        getData(long i);
     52  virtual void          getData(long i, double &data, uint_8 &flag);
     53  //RZCMV  virtual DataStatus    getDataError(long i,double &data,double &error,int_4 &flag);
     54  virtual void          getData(long i, int n, double* data, uint_8* flg=0);
    5555
    56   virtual DataStatus    isDataAvail(int iStart, int iEnd);
    57   virtual DataStatus    isDataAvail(int i);
    58   virtual void          waitForData(int iStart, int iEnd);
    59   virtual void          waitForData(int i);
     56  virtual DataStatus    isDataAvail(long iStart, long iEnd);
     57  virtual DataStatus    isDataAvail(long i);
     58  virtual void          waitForData(long iStart, long iEnd);
     59  virtual void          waitForData(long i);
    6060  virtual void          waitForAnyData();
    61   virtual int           nextDataAvail(int iAfter)=0;
     61  virtual long           nextDataAvail(long iAfter)=0;
    6262  virtual bool          hasSomeData()=0;
    6363 
    64   virtual void          putData(int i, double value, uint_8 flag=0);
    65   //RZCMV  virtual void          putDataError(int i, double value,
     64  virtual void          putData(long i, double value, uint_8 flag=0);
     65  //RZCMV  virtual void          putDataError(long i, double value,
    6666  //                                 double error, int_4 flag=0);
    67   virtual void          putData(int i, int n, double const* val, uint_8 const* flg);
     67  virtual void          putData(long i, int n, double const* val, uint_8 const* flg);
    6868  virtual void          putDone() {}
    6969
    70   virtual void          wontNeedBefore(int i);
     70  virtual void          wontNeedBefore(long i);
    7171 
    7272  bool  dbg;
     
    9999#ifdef WITH_SOPHYA
    100100  /* l'interface va etre modifiee, NE PAS UTILISER
    101   virtual Array         doGetData(int iStart, int iEnd)=0;
    102   virtual TArray<int_4> doGetFlag(int iStart, int iEnd)=0;
     101  virtual Array         doGetData(long iStart, long iEnd)=0;
     102  virtual TArray<int_4> doGetFlag(long iStart, long iEnd)=0;
    103103  l'interface va etre modifiee, NE PAS UTILISER */
    104104#endif
    105105
    106   virtual void          doGetData(int i, double& data, uint_8& flag)=0;
    107   virtual void          doPutData(int i, double value, uint_8 flag=0)=0;
    108   virtual void          doWontNeedBefore(int i);
     106  virtual void          doGetData(long i, double& data, uint_8& flag)=0;
     107  virtual void          doPutData(long i, double value, uint_8 flag=0)=0;
     108  virtual void          doWontNeedBefore(long i);
    109109
    110   virtual DataStatus    isDataAvailNL(int iStart, int iEnd)=0;
    111   virtual DataStatus    isDataAvailNL(int i);
     110  virtual DataStatus    isDataAvailNL(long iStart, long iEnd)=0;
     111  virtual DataStatus    isDataAvailNL(long i);
    112112
    113113  virtual void          setProducer(TOIProcessor* prod);
     
    119119  string name;
    120120
    121   virtual int           getMinSn();
    122   virtual int           getMaxSn();
     121  virtual long           getMinSn();
     122  virtual long           getMaxSn();
    123123  void  TOIInit();
    124124
  • trunk/ArchTOIPipe/Kernel/toisegment.cc

    r2282 r2454  
    33//                               Christophe Magneville
    44//                               Reza Ansari
    5 // $Id: toisegment.cc,v 1.28 2002-11-28 15:49:21 aubourg Exp $
     5// $Id: toisegment.cc,v 1.29 2003-11-14 12:34:55 aubourg Exp $
    66
    77#include "toisegment.h"
     
    5858
    5959
    60 double TOISegmented::getData(int i) { /* reader thread */
     60double TOISegmented::getData(long i) { /* reader thread */
    6161  return master->getData(i);
    6262}
    6363
    64 void TOISegmented::getData(int i, double& data, uint_8& flag) { /* reader thread */
     64void TOISegmented::getData(long i, double& data, uint_8& flag) { /* reader thread */
    6565  data = master->getData(i);
    6666  flag = master->getFlag(i);
    6767}
    6868
    69 void TOISegmented::getData(int i, int n, double* data, uint_8* flg) { /* reader thread */
     69void TOISegmented::getData(long i, int n, double* data, uint_8* flg) { /* reader thread */
    7070  master->getData(i, n, data, flg);
    7171}
    7272
    73 void TOISegmented::putData(int i, double value, uint_8 flag) { /* writer thread */
     73void TOISegmented::putData(long i, double value, uint_8 flag) { /* writer thread */
    7474  master->putData(i, value, flag);
    7575}
    7676
    77 void TOISegmented::putData(int i, int n, double const* val, uint_8 const* flg) { /* writer thread */
     77void TOISegmented::putData(long i, int n, double const* val, uint_8 const* flg) { /* writer thread */
    7878  master->putData(i, n, val, flg);
    7979}
     
    8383}
    8484
    85 void TOISegmented::wontNeedBefore(int i) {  /* reader thread */
     85void TOISegmented::wontNeedBefore(long i) {  /* reader thread */
    8686  master->getView()->wontNeedBefore(i);
    8787}
    8888
    89 TOI::DataStatus TOISegmented::isDataAvail(int i, int j) {
     89TOI::DataStatus TOISegmented::isDataAvail(long i, long j) {
    9090  // return master->getView()->isDataAvail(i, j);
    9191  cout << "TOISegmented::isDataAvail unimplemented" << endl;
     
    9393}
    9494
    95 TOI::DataStatus TOISegmented::isDataAvail(int i) {
     95TOI::DataStatus TOISegmented::isDataAvail(long i) {
    9696  return isDataAvail(i,i);
    9797}
    9898
    99 TOI::DataStatus TOISegmented::isDataAvailNL(int i, int j) {
     99TOI::DataStatus TOISegmented::isDataAvailNL(long i, long j) {
    100100  return isDataAvail(i,j);
    101101}
    102102
    103 TOI::DataStatus TOISegmented::isDataAvailNL(int i) {
     103TOI::DataStatus TOISegmented::isDataAvailNL(long i) {
    104104  return isDataAvail(i);
    105105}
    106106
    107 void TOISegmented::waitForData(int iStart, int iEnd) {
     107void TOISegmented::waitForData(long iStart, long iEnd) {
    108108  // get will wait...
    109109}
    110110
    111 void TOISegmented::waitForData(int i) {
     111void TOISegmented::waitForData(long i) {
    112112  // get will wait...
    113113}
     
    118118}
    119119
    120 int TOISegmented::nextDataAvail(int iAfter) {
     120long TOISegmented::nextDataAvail(long iAfter) {
    121121  cout << "TOISegmented::nextDataAvail" << endl;
    122122  return iAfter+1;
     
    128128}
    129129
    130 void TOISegmented::doPutData(int i, double value, uint_8 flag) {
     130void TOISegmented::doPutData(long i, double value, uint_8 flag) {
    131131  cout << "TOISegmented::doPutData unimplemented" << endl;
    132132  throw PError("TOISegmented::doPutData unimplemented");
    133133}
    134134
    135 void TOISegmented::doGetData(int i, double& value, uint_8& flag) {
     135void TOISegmented::doGetData(long i, double& value, uint_8& flag) {
    136136  cout << "TOISegmented::doGetData unimplemented" << endl;
    137137  throw PError("TOISegmented::doGetData unimplemented");
     
    167167}
    168168
    169 void TOISegmented::BufferSegment::getData(int sn, int n, double* d, uint_8* f) {
     169void TOISegmented::BufferSegment::getData(long sn, int n, double* d, uint_8* f) {
    170170  checkCommitted();
    171171  checkInRange(sn);
     
    177177}
    178178
    179 void TOISegmented::BufferSegment::putData(int sn, double d, uint_8 f) {
     179void TOISegmented::BufferSegment::putData(long sn, double d, uint_8 f) {
    180180  /* writer thread*/
    181181  if (status == NEW) {
     
    192192}
    193193
    194 void TOISegmented::BufferSegment::putData(int sn, int n, double const* d, uint_8 const* f) {
     194void TOISegmented::BufferSegment::putData(long sn, int n, double const* d, uint_8 const* f) {
    195195  if (status == NEW) {
    196196    status = WRITE;
     
    252252}
    253253
    254 double TOISegmented::BufferView::getData(int sn) { /* Single-thread, reader thread*/
     254double TOISegmented::BufferView::getData(long sn) { /* Single-thread, reader thread*/
    255255  ensure(sn);
    256   int seg = (sn-sn0)/segmentSize;
     256  long seg = (sn-sn0)/segmentSize;
    257257  return segments[seg]->getData(sn);
    258258}
    259259
    260 uint_8 TOISegmented::BufferView::getFlag(int sn) { /* Single-thread, reader thread */
     260uint_8 TOISegmented::BufferView::getFlag(long sn) { /* Single-thread, reader thread */
    261261  ensure(sn);
    262   int seg = (sn-sn0)/segmentSize;
     262  long seg = (sn-sn0)/segmentSize;
    263263  return segments[seg]->getFlag(sn);
    264264}
    265265
    266 void TOISegmented::BufferView::getData(int sn, int n, double* dat, uint_8* flg) { /* Single-thread, reader thread */
     266void TOISegmented::BufferView::getData(long sn, int n, double* dat, uint_8* flg) { /* Single-thread, reader thread */
    267267  ensure(sn);
    268268  ensure(sn+n-1);
    269269 
    270   int  sn1  = sn;
     270  long  sn1  = sn;
    271271  int  nsam = n;
    272272  double* pdat = dat;
     
    274274
    275275  while (true) {
    276     int seg = (sn1-sn0)/segmentSize;
     276    long seg = (sn1-sn0)/segmentSize;
    277277    BufferSegment* s = segments[seg];
    278     int snmax = s->sn0 + s->bufferSize - 1;
    279     int sn2 = snmax > (sn1+nsam-1) ? (sn1+nsam-1) : snmax;
    280     int nget = sn2-sn1+1;
     278    long snmax = s->sn0 + s->bufferSize - 1;
     279    long sn2 = snmax > (sn1+nsam-1) ? (sn1+nsam-1) : snmax;
     280    long nget = sn2-sn1+1;
    281281    s->getData(sn1, nget, pdat, pflg);
    282282    pdat += nget;
     
    288288}
    289289
    290 void  TOISegmented::BufferView::ensure(int sn) { /* Single-thread, reader thread */
     290void  TOISegmented::BufferView::ensure(long sn) { /* Single-thread, reader thread */
    291291  if (sn < sn0) {
    292292    cout << "TOISegmented::BufferView::ensure : requested sample before first" << endl;
     
    321321}
    322322
    323 void TOISegmented::BufferView::wait(int sn) { /* reader thread, master read wait lock taken */
     323void TOISegmented::BufferView::wait(long sn) { /* reader thread, master read wait lock taken */
    324324  //pthread_mutex_lock(&(master->read_wait_mutex));
    325325  waiting = true;
     
    334334
    335335
    336 void TOISegmented::BufferView::wontNeedBefore(int sn) { /* reader thread */
     336void TOISegmented::BufferView::wontNeedBefore(long sn) { /* reader thread */
    337337  if (sn > firstNeeded) {
    338338    firstNeeded = sn;
     
    383383}
    384384
    385 void TOISegmented::MasterView::putData(int sn, double data, uint_8 flags) { /* writer thread */
     385void TOISegmented::MasterView::putData(long sn, double data, uint_8 flags) { /* writer thread */
    386386  if (sn0<0) {
    387387    LOG(cout << "***MasterView::putData sn0<0 -> " << sn << endl);
     
    398398}
    399399
    400 void TOISegmented::MasterView::putData(int sn, int n, double const* data, uint_8 const* flags) { /* writer thread */
     400void TOISegmented::MasterView::putData(long sn, int n, double const* data, uint_8 const* flags) { /* writer thread */
    401401  if (sn0<0) {
    402402    LOG(cout << "***MasterView::putData sn0<0 -> " << sn << endl);
     
    405405  double const*  pdat = data;
    406406  uint_8 const*  pflg = flags;
    407   int     nsam  = n;
    408   int     sn1   = sn;
     407  long     nsam  = n;
     408  long     sn1   = sn;
    409409  while (true) {
    410410    // maximum that current segment can take
    411     int snmax = -1;
     411    long snmax = -1;
    412412    if (currentSegment != NULL) {
    413413      snmax = currentSegment->sn0 + currentSegment->bufferSize-1;
    414414    }
    415     int sn2 = snmax > (sn1+nsam-1) ? (sn1+nsam-1) : snmax;
    416     int nput = sn2-sn1+1;
     415    long sn2 = snmax > (sn1+nsam-1) ? (sn1+nsam-1) : snmax;
     416    long nput = sn2-sn1+1;
    417417    if (snmax>0 && nput>0) {
    418418      currentSegment->putData(sn1, nput, pdat, pflg);
     
    428428}
    429429
    430 double TOISegmented::MasterView::getData(int sn) { /* reader thread */
     430double TOISegmented::MasterView::getData(long sn) { /* reader thread */
    431431  return getView()->getData(sn); /* thread-specific */
    432432}
    433433
    434 uint_8 TOISegmented::MasterView::getFlag(int sn) { /* reader thread */
     434uint_8 TOISegmented::MasterView::getFlag(long sn) { /* reader thread */
    435435  return getView()->getFlag(sn);
    436436}
    437437
    438 void TOISegmented::MasterView::getData(int sn, int n, double* dat, uint_8* flg) { /* reader thread */
     438void TOISegmented::MasterView::getData(long sn, int n, double* dat, uint_8* flg) { /* reader thread */
    439439  getView()->getData(sn, n, dat, flg);
    440440}
     
    513513//  int oldBegin = bv->sn0;
    514514//  int oldEnd   = bv->sn0 + bv->segmentSize * bv->segments.size();
    515   int oldBegin = sn0;
    516   int oldEnd   = sn0 + bv->segmentSize * segments.size();
     515  long oldBegin = sn0;
     516  long oldEnd   = sn0 + bv->segmentSize * segments.size();
    517517
    518518  for (vector<BufferSegment*>::iterator i = bv->segments.begin();
     
    529529
    530530  if (nConsumers == allViews.size()) {
    531     int firstNeeded = MAXINT;
     531    long firstNeeded = MAXINT;
    532532    for (set<BufferView*>::iterator i = allViews.begin();
    533533         i != allViews.end(); i++) {
     
    570570
    571571  bv->sn0 = -1;
    572   int newEnd = -1;
     572  long newEnd = -1;
    573573  if (segments.size() > 0) {
    574574    bv->sn0 = bv->segments[0]->sn0;
  • trunk/ArchTOIPipe/Kernel/toisegment.h

    r2135 r2454  
    55//                               Christophe Magneville
    66//                               Reza Ansari
    7 // $Id: toisegment.h,v 1.20 2002-07-26 10:36:19 ansari Exp $
     7// $Id: toisegment.h,v 1.21 2003-11-14 12:34:55 aubourg Exp $
    88
    99#ifndef TOISEGMENT_H
     
    3232  ~TOISegmented();
    3333
    34   virtual double        getData(int i);
    35   virtual void          getData(int i, double& data,  uint_8& flag);
    36   virtual void          getData(int i, int n, double* data, uint_8* flg=0);
    37   virtual void          putData(int i, double  value, uint_8  flag=0);
    38   virtual void          putData(int i, int n, double const* val, uint_8 const* flg=0);
    39   virtual void          wontNeedBefore(int i);
     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);
    4040  virtual void          putDone();
    4141  virtual void          addConsumer(TOIProcessor*);
    4242
    4343  // Methodes ignorees car on reimplemente les methodes de base
    44   virtual DataStatus    isDataAvail(int iStart, int iEnd);
    45   virtual DataStatus    isDataAvail(int i);
    46   virtual DataStatus isDataAvailNL(int i);
    47   virtual DataStatus    isDataAvailNL(int iStart, int iEnd); // abstract
    48   virtual void          waitForData(int iStart, int iEnd);
    49   virtual void          waitForData(int i);
     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);
    5050  virtual void          waitForAnyData();
    51   virtual int           nextDataAvail(int iAfter); // abstract
     51  virtual long           nextDataAvail(long iAfter); // abstract
    5252  virtual bool          hasSomeData(); // abstract
    53   virtual void          doGetData(int i, double& data, uint_8& flag); // abs
    54   virtual void          doPutData(int i, double value, uint_8 flag=0); // abs
     53  virtual void          doGetData(long i, double& data, uint_8& flag); // abs
     54  virtual void          doPutData(long i, double value, uint_8 flag=0); // abs
    5555
    5656 
     
    7676    int  getRefCount();
    7777   
    78     void putData(int sn, double data, uint_8 flag);
    79     void putData(int sn, int n, double const* data, uint_8 const* flag);
    80     inline double getData(int sn);
    81     inline uint_8 getFlag(int sn);
    82     void getData(int sn, int n, double* data, uint_8* flag);
    83 
    84     bool isPastEnd(int sn) {
     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) {
    8585      return sn >= sn0+bufferSize;
    8686    }
     
    9494    }
    9595
    96     void checkInRange(int sn) {
     96    void checkInRange(long sn) {
    9797      if (sn < sn0 || sn >= sn0+bufferSize) {
    9898        cerr << "TOISegment: out of range access in buffer segment " << sn << " not in "
     
    105105    int status;      // NEW, WRITE, COMMITTED
    106106    int bufferSize; 
    107     int sn0;         // Samplenum du premier echantillon
     107    long sn0;         // Samplenum du premier echantillon
    108108
    109109    int refcount;    // Nombre de vues qui utilisent
     
    123123    ~MasterView();
    124124
    125     void putData(int sn, double data, uint_8 flag);
    126     double getData(int sn);
    127     uint_8 getFlag(int sn);
    128     void   getData(int i, int n, double* data, uint_8* flg);
    129     void   putData(int i, 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);
    130130    BufferView* getView(); // thread-specific
    131131    void putDone();
     
    147147    int maxSegments;
    148148    int segmentSize;
    149     int sn0;                         // First sn in first segment
     149    long sn0;                         // First sn in first segment
    150150    vector<BufferSegment*> segments; // Committed segments
    151151    int nConsumers;
     
    174174    ~BufferView();
    175175
    176     double getData(int sn);
    177     uint_8 getFlag(int sn);   
    178     void   getData(int i, int n, double* data, uint_8* flg);
    179 
    180     void wontNeedBefore(int sn);
     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);
    181181   
    182182  protected:
    183     void wait(int sn);  // Passe en attente d'un nouveau segment -- lecture
     183    void wait(long sn);  // Passe en attente d'un nouveau segment -- lecture
    184184    void sync();  // recupere les nouveaux segments, resync avec master
    185     void ensure(int sn);
     185    void ensure(long sn);
    186186
    187187    bool waiting;
    188     int  waitingFor;
     188    long  waitingFor;
    189189
    190190    friend class MasterView;
    191191    MasterView* master;
    192192    vector<BufferSegment*> segments; // Committed
    193     int sn0;
     193    long sn0;
    194194    int segmentSize;
    195     int firstNeeded;
     195    long firstNeeded;
    196196  }; 
    197197
     
    204204/***********************************/
    205205
    206 double TOISegmented::BufferSegment::getData(int sn) {
     206double TOISegmented::BufferSegment::getData(long sn) {
    207207  checkCommitted();
    208208  checkInRange(sn);
     
    210210}
    211211
    212 uint_8 TOISegmented::BufferSegment::getFlag(int sn) {
     212uint_8 TOISegmented::BufferSegment::getFlag(long sn) {
    213213  checkCommitted();
    214214  checkInRange(sn);
  • trunk/ArchTOIPipe/Kernel/toiseqbuff.cc

    r2024 r2454  
    33//                               Christophe Magneville
    44//                               Reza Ansari
    5 // $Id: toiseqbuff.cc,v 1.15 2002-05-30 10:09:06 ansari Exp $
     5// $Id: toiseqbuff.cc,v 1.16 2003-11-14 12:34:55 aubourg Exp $
    66
    77#include "toiprocessor.h"
     
    7474}
    7575
    76 TOI::DataStatus TOISeqBuffered::isDataAvailNL(int iStart, int iEnd) {
     76TOI::DataStatus TOISeqBuffered::isDataAvailNL(long iStart, long iEnd) {
    7777  if (iEnd < iStart)
    7878    throw RangeCheckError("TOISeqBuffered::isDataAvailNL : iEnd<iStart !");
     
    8383}
    8484
    85 TOI::DataStatus TOISeqBuffered::isDataAvailNL(int i) {
     85TOI::DataStatus TOISeqBuffered::isDataAvailNL(long i) {
    8686  return TOI::isDataAvailNL(i);
    8787}
    8888
    89 void TOISeqBuffered::wontNeedBefore(int i) {
     89void TOISeqBuffered::wontNeedBefore(long i) {
    9090  // $CHECK$  Reza 30/4/2001 - Je ne sais pas a quoi ca sert !
    9191  //  next_out = i; $CHECK$  Reza 30/4/2001
     
    9595#ifndef NO_SOPHYA
    9696/* ---- l'interface va etre modifiee, NE PAS UTILISER
    97 Array TOISeqBuffered::doGetData(int iStart, int iEnd) {
     97Array TOISeqBuffered::doGetData(long iStart, long iEnd) {
    9898  //  if (iEnd < iStart)
    9999  //    throw RangeCheckError("TOI::getData : iEnd<iStart !");
     
    104104  cleanWaitGet();
    105105  Vector dat(iEnd - iStart + 1);
    106   for (int i=0; i<iEnd-iStart+1; i++) {
     106  for (long i=0; i<iEnd-iStart+1; i++) {
    107107    dat(i) = dataRef(i+iStart);
    108108  }
     
    115115#endif
    116116
    117 double TOISeqBuffered::getData(int i)
     117double TOISeqBuffered::getData(long i)
    118118{
    119119  double val;
     
    124124
    125125
    126 void TOISeqBuffered::getData(int i, double & val, uint_8 & flg) {
     126void TOISeqBuffered::getData(long i, double & val, uint_8 & flg) {
    127127  lock();
    128128  if (!started) {
     
    168168
    169169
    170 void TOISeqBuffered::getData(int i, int n, double* data, uint_8* flg)
     170void TOISeqBuffered::getData(long i, int n, double* data, uint_8* flg)
    171171{
    172172  lock();
     
    184184    throw RangeCheckError("TOISeqBuffered::getData(i) : data deleted");
    185185  }
    186   for(int j=i; j<i+n; j++) {
     186  for(long j=i; j<i+n; j++) {
    187187    while (j >= next_in) {
    188188      if (j>next_out) next_out = j;
     
    218218#ifndef NO_SOPHYA
    219219/* ---- l'interface va etre modifiee, NE PAS UTILISER
    220 TArray<int_4> TOISeqBuffered::doGetFlag(int iStart, int iEnd) {
     220TArray<int_4> TOISeqBuffered::doGetFlag(long iStart, long iEnd) {
    221221  if (!started) waitGet();
    222222  cleanWaitGet();
     
    224224    throw RangeCheckError("TOISeqBuffered::getFlag(iS,iE) : data not available");
    225225  TVector<int_4> dat(iEnd - iStart + 1);
    226   for (int i=0; i<iEnd-iStart+1; i++) {
     226  for (long i=0; i<iEnd-iStart+1; i++) {
    227227    dat[i] = flagRef(i+iStart);
    228228  }
     
    233233
    234234/*RZCMV
    235 int_4 TOISeqBuffered::doGetFlag(int i) {
     235int_4 TOISeqBuffered::doGetFlag(long i) {
    236236  if (!started) waitGet();
    237237  cleanWaitGet();
     
    245245
    246246
    247 void TOISeqBuffered::putData(int i, double value, uint_8 flag) {
     247void TOISeqBuffered::putData(long i, double value, uint_8 flag) {
    248248  lock();
    249249  if (!started) {
     
    290290}
    291291
    292 void TOISeqBuffered::putData(int i, int n, double const* val, uint_8 const* flg)
     292void TOISeqBuffered::putData(long i, int n, double const* val, uint_8 const* flg)
    293293{
    294294  lock();
     
    309309    }
    310310  }
    311   for(int j=i; j<i+n; j++) {
     311  for(long j=i; j<i+n; j++) {
    312312    if (next_in-next_out >= wsize) {
    313313      if (dbglev > 0)
     
    357357}
    358358
    359 int TOISeqBuffered::nextDataAvail(int iAfter) {
     359long TOISeqBuffered::nextDataAvail(long iAfter) {
    360360  lock();
    361361  if (iAfter >= next_in ) {unlock(); return -1;}
     
    365365}
    366366
    367 void TOISeqBuffered::doGetData(int i, double & val, uint_8 & flg)
     367void TOISeqBuffered::doGetData(long i, double & val, uint_8 & flg)
    368368{
    369369  cerr << " TOISeqBuffered::doGetData() not implemented !"
     
    372372}
    373373
    374 void TOISeqBuffered::doPutData(int i, double value, uint_8 flag)
     374void TOISeqBuffered::doPutData(long i, double value, uint_8 flag)
    375375{
    376376  cerr << " TOISeqBuffered::doGetData() not implemented !"
  • trunk/ArchTOIPipe/Kernel/toiseqbuff.h

    r1985 r2454  
    55//                               Christophe Magneville
    66//                               Reza Ansari
    7 // $Id: toiseqbuff.h,v 1.10 2002-05-07 16:38:03 ansari Exp $
     7// $Id: toiseqbuff.h,v 1.11 2003-11-14 12:34:56 aubourg Exp $
    88
    99#ifndef TOISEQBUFF_H
     
    3333  inline int  getDebugLevel() const { return dbglev; }
    3434
    35   virtual double        getData(int i);
    36   virtual void          getData(int i, double& data,  uint_8& flag);
    37   virtual void          getData(int i, int n, double* data, uint_8* flg=0);
    38   virtual void          putData(int i, double  value, uint_8  flag=0);
    39   virtual void          putData(int i, int n, double const* val, uint_8 const* flg=0);
    40   virtual void          wontNeedBefore(int i);
     35  virtual double        getData(long i);
     36  virtual void          getData(long i, double& data,  uint_8& flag);
     37  virtual void          getData(long i, int n, double* data, uint_8* flg=0);
     38  virtual void          putData(long i, double  value, uint_8  flag=0);
     39  virtual void          putData(long i, int n, double const* val, uint_8 const* flg=0);
     40  virtual void          wontNeedBefore(long i);
    4141
    42   inline int getFirstIn() const { return first_in; }
    43   inline int getFirstOut() const { return first_out; }
    44   inline int getLastIn() const { return (next_in-1); }
    45   inline int getLastOut() const { return (next_out-1); }
     42  inline long getFirstIn() const { return first_in; }
     43  inline long getFirstOut() const { return first_out; }
     44  inline long getLastIn() const { return (next_in-1); }
     45  inline long getLastOut() const { return (next_out-1); }
    4646
    4747
    48   virtual DataStatus isDataAvailNL(int iStart, int iEnd);
    49   virtual DataStatus isDataAvailNL(int i); // override required
     48  virtual DataStatus isDataAvailNL(long iStart, long iEnd);
     49  virtual DataStatus isDataAvailNL(long i); // override required
    5050
    5151protected:
     
    5454  int wsize;
    5555  int buffsize;
    56   int next_in;
    57   int next_out;
    58   int first_in;
    59   int first_out;
     56  long next_in;
     57  long next_out;
     58  long first_in;
     59  long first_out;
    6060  bool started;
    6161  double defaultValue;
     
    6666#ifdef WITH_SOPHYA
    6767  /* ---- l'interface va etre modifiee, NE PAS UTILISER
    68   virtual Array         doGetData(int iStart, int iEnd);
    69   virtual TArray<int_4> doGetFlag(int iStart, int iEnd);
     68  virtual Array         doGetData(long iStart, long iEnd);
     69  virtual TArray<int_4> doGetFlag(long iStart, long iEnd);
    7070  l'interface va etre modifiee, NE PAS UTILISER ---- */
    7171#endif
    72   virtual void          doGetData(int i, double & val, uint_8 & flg);
     72  virtual void          doGetData(long i, double & val, uint_8 & flg);
    7373   
    74   virtual void          doPutData(int i, double value, uint_8 flag=0);
    75   //  virtual void          doWontNeedBefore(int i);  plus besoin ? - Reza Mai 2002
     74  virtual void          doPutData(long i, double value, uint_8 flag=0);
     75  //  virtual void          doWontNeedBefore(long i);  plus besoin ? - Reza Mai 2002
    7676
    77   virtual int           nextDataAvail(int iAfter);
     77  virtual long           nextDataAvail(long iAfter);
    7878  virtual bool          hasSomeData();
    7979
    80   inline double &       dataRef(int i) { return data[i%buffsize]; }
    81   inline uint_8 &        flagRef(int i) { return flags[i%buffsize]; }
    82   inline bool           isDataDeleted(int i)
     80  inline double &       dataRef(long i) { return data[i%buffsize]; }
     81  inline uint_8 &        flagRef(long i) { return flags[i%buffsize]; }
     82  inline bool           isDataDeleted(long i)
    8383    { return((i < next_in-buffsize-1) ? true : false); }
    8484};
Note: See TracChangeset for help on using the changeset viewer.