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

pb longs sur magique

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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;
Note: See TracChangeset for help on using the changeset viewer.