Index: trunk/ArchTOIPipe/Kernel/toi.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/toi.cc	(revision 1740)
+++ trunk/ArchTOIPipe/Kernel/toi.cc	(revision 1742)
@@ -3,5 +3,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: toi.cc,v 1.8 2001-11-08 23:23:58 aubourg Exp $
+// $Id: toi.cc,v 1.9 2001-11-09 23:13:14 aubourg Exp $
 
 #include "toiprocessor.h"
@@ -117,5 +117,5 @@
 */
 
-double TOI::getData(int i) {
+double TOI::getData(int i) { /* deprecated, overriden in toisegment */
   lock();
   uint_8 flg;
@@ -127,5 +127,5 @@
 }
 
-void TOI::getData(int i, double &data, uint_8 &flag) {
+void TOI::getData(int i, double &data, uint_8 &flag) { /* deprecated, overriden in toisegment */
   lock();
   doGetData(i, data, flag);
@@ -135,7 +135,15 @@
 }
 
-  
-
-void TOI::putData(int i, double value, uint_8 flag) {
+void TOI::getData(int i, int n, double* data, uint_8* flg) {
+  cerr << "TOI::getData [double*] unimplemented" << endl;
+  exit(-1);
+}
+
+void TOI::putData(int i, int n, double const* var, uint_8 const* flg) {
+  cerr << "TOI::putData [double*] unimplemented" << endl;
+  exit(-1);
+}
+
+void TOI::putData(int i, double value, uint_8 flag) { /* deprecated, overriden in toisegment */
   lock();
   doPutData(i, value, flag);
@@ -144,5 +152,5 @@
 }
 
-void TOI::waitForData(int iStart, int iEnd) {
+void TOI::waitForData(int iStart, int iEnd) { /* deprecated, overriden in toisegment */
   if (producer == NULL) throw NotFoundExc("TOI has no producer !");
     
@@ -163,9 +171,9 @@
 }
 
-void TOI::waitForData(int i) {
+void TOI::waitForData(int i) { /* deprecated, overriden in toisegment */
   waitForData(i,i);
 }
 
-void TOI::waitForAnyData() {
+void TOI::waitForAnyData() { /* deprecated, overriden in toisegment */
   if (! hasSomeData()) {
     producer->lock();
@@ -193,5 +201,5 @@
 }
 
-void TOI::wontNeedBefore(int i) {
+void TOI::wontNeedBefore(int i) { /* deprecated, overriden in toisegment */
   int j=i;
   for (vector<TOIProcessor*>::iterator k = consumers.begin();
Index: trunk/ArchTOIPipe/Kernel/toi.h
===================================================================
--- trunk/ArchTOIPipe/Kernel/toi.h	(revision 1740)
+++ trunk/ArchTOIPipe/Kernel/toi.h	(revision 1742)
@@ -5,5 +5,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: toi.h,v 1.10 2001-11-08 23:23:58 aubourg Exp $
+// $Id: toi.h,v 1.11 2001-11-09 23:13:15 aubourg Exp $
 
 #ifndef TOI_H
@@ -52,4 +52,5 @@
   virtual void          getData(int i, double &data, uint_8 &flag);
   //RZCMV  virtual DataStatus    getDataError(int i,double &data,double &error,int_4 &flag);
+  virtual void          getData(int i, int n, double* data, uint_8* flg=0);
 
   virtual DataStatus    isDataAvail(int iStart, int iEnd);
@@ -64,4 +65,5 @@
   //RZCMV  virtual void          putDataError(int i, double value, 
   //		                     double error, int_4 flag=0);
+  virtual void          putData(int i, int n, double const* val, uint_8 const* flg);
   virtual void          putDone() {}
 
Index: trunk/ArchTOIPipe/Kernel/toiprocessor.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/toiprocessor.cc	(revision 1740)
+++ trunk/ArchTOIPipe/Kernel/toiprocessor.cc	(revision 1742)
@@ -3,5 +3,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: toiprocessor.cc,v 1.14 2001-11-08 23:23:58 aubourg Exp $
+// $Id: toiprocessor.cc,v 1.15 2001-11-09 23:13:15 aubourg Exp $
 
 #include "toiprocessor.h"
@@ -321,6 +321,26 @@
   if (toi->needSyncOldWay()) toi->waitForData(i); // seulement pour autre que segmented
   toi->getData(i, data, flag);
+  autoWontNeed(i);
   return;
 }
+
+void TOIProcessor::getData(int toiIndex, int i, int n, double* d) 
+{
+  TOI* toi = getInputTOI(toiIndex);
+  if (toi->needSyncOldWay()) toi->waitForData(i+n); // seulement pour autre que segmented
+  toi->getData(i, n, d);
+  autoWontNeed(i);
+  return;
+}
+
+void TOIProcessor::getData(int toiIndex, int i, int n, double* d, uint_8* f)
+{
+  TOI* toi = getInputTOI(toiIndex);
+  if (toi->needSyncOldWay()) toi->waitForData(i+n); // seulement pour autre que segmented
+  toi->getData(i, n, d, f);
+  autoWontNeed(i);
+  return;
+}
+
 
 /*RZCMV 
@@ -369,5 +389,12 @@
   TOI* toi = getOutputTOI(toiIndex);
   toi->putData(i, value, flg);
-  autoWontNeed(i);
+  // autoWontNeed(i);  // now done on getData
+  if (toi->needSyncOldWay())  notify(); // seulement pour non segmented
+}
+
+void TOIProcessor::putData(int toiIndex, int i, int n, double const* val,
+			   uint_8 const* flg=0) {
+  TOI* toi = getOutputTOI(toiIndex);
+  toi->putData(i, n, val, flg);
   if (toi->needSyncOldWay())  notify(); // seulement pour non segmented
 }
