Index: trunk/ArchTOIPipe/Kernel/asciitoiwtr.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/asciitoiwtr.cc	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/asciitoiwtr.cc	(revision 1462)
@@ -39,13 +39,13 @@
   int sne = getMaxIn();
 
+  double val;
+  int_4 flg;
   for (int sn = snb; sn <= sne; sn++) {
     s << sn << "   ";
     for (int i=0; i<ncols; i++) {
-      double x = getData(i, sn);
-      s << x << "   ";
-      if (outFlags) {
-	int_4 f = getFlag(i, sn);
-	s << f << "   ";
-      }
+      getData(i, sn, val, flg);
+      s << val << "   ";
+      if (outFlags) 
+	s << flg << "   ";
     }
     s << '\n';
Index: trunk/ArchTOIPipe/Kernel/fitstoiwtr.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/fitstoiwtr.cc	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/fitstoiwtr.cc	(revision 1462)
@@ -115,8 +115,11 @@
     //  cout << " DBG-A-FitsWriter::run()" << sn << endl;
     try {
+      int_4 out_flg;
+      double out_val;
       for (i=0; i<ndata; i++) {
 	if (tabck[i]) {
-	  tabdata[i] = getData(i, sn);
-	  if (outFlags) tabflag[i] = getFlag(i, sn);
+	  getData(i,sn, out_val, out_flg);
+	  tabdata[i] = out_val;
+	  if (outFlags) tabflag[i] = out_flg;
 	}
       }
Index: trunk/ArchTOIPipe/Kernel/toi.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/toi.cc	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toi.cc	(revision 1462)
@@ -80,4 +80,5 @@
 #endif
 
+/*RZCMV
 double TOI::getError(int i) {
   if (errorTOI == NULL) throw NotFoundExc("TOI::getDataError : no Error TOI");
@@ -91,4 +92,6 @@
 }
 
+*/
+
 #ifndef NO_SOPHYA
 Array TOI::getData(int iStart, int iEnd) {
@@ -103,5 +106,7 @@
 double TOI::getData(int i) {
   lock();
-  double dat = doGetData(i);
+  int_4 flg;
+  double dat;
+  doGetData(i, dat, flg);
   unlock();
   if (fgsigput) { fgsigput = false; broadcast(); }
@@ -109,4 +114,13 @@
 }
 
+void TOI::getData(int i, double &data,int_4 &flag) {
+  lock();
+  doGetData(i, data, flag);
+  unlock();
+  if (fgsigput) { fgsigput = false; broadcast(); }
+  return;
+}
+
+
 
 #ifndef NO_SOPHYA
@@ -120,11 +134,4 @@
 #endif
 
-int_4 TOI::getFlag(int i) {
-  lock();
-  int_4 f = doGetFlag(i);
-  unlock();
-  if (fgsigput) { fgsigput = false; broadcast(); }
-  return f;
-}
   
   
@@ -249,11 +256,13 @@
 #endif
 
-double TOIRegularWindow::doGetData(int i) {
+void TOIRegularWindow::doGetData(int i, double & val, int_4 & flg) {
   if (isDataAvailNL(i) != DATA_OK) {
     cerr << "TOI::getData : data not available " << i << endl;
     throw RangeCheckError("TOI::getData : data not available");
   }
-  double dat = data[i - i0];
-  return dat;
+
+  val = data[i - i0];
+  flg = flags[i - i0];
+
 }
 
@@ -271,4 +280,5 @@
 #endif
 
+/*RZCMV
 int_4 TOIRegularWindow::doGetFlag(int i) {
   if (isDataAvailNL(i) != DATA_OK) {
@@ -278,4 +288,5 @@
   return flags[i - i0]; 
 }
+*/
 
 
Index: trunk/ArchTOIPipe/Kernel/toi.h
===================================================================
--- trunk/ArchTOIPipe/Kernel/toi.h	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toi.h	(revision 1462)
@@ -32,14 +32,17 @@
 
 #ifdef WITH_SOPHYA
+  // l'interface va etre modifiee, NE PAS UTILISER
   virtual Array         getData(int iStart, int iEnd);
   virtual Array         getError(int iStart, int iEnd);
   virtual TArray<int_4> getFlag(int iStart, int iEnd);
+  // l'interface va etre modifiee, NE PAS UTILISER
 #endif
+
+  enum DataStatus       {DATA_OK=0, DATA_DELETED, DATA_NOT_YET};
     
   virtual double        getData(int i);
-  virtual double        getError(int i);
-  virtual int_4         getFlag(int i);
+  virtual void          getData(int i,double &data,int_4 &flag);
+  //RZCMV  virtual DataStatus    getDataError(int i,double &data,double &error,int_4 &flag);
 
-  enum DataStatus       {DATA_OK=0, DATA_DELETED, DATA_NOT_YET};
   virtual DataStatus    isDataAvail(int iStart, int iEnd);
   virtual DataStatus    isDataAvail(int i);
@@ -51,6 +54,6 @@
   
   virtual void          putData(int i, double value, int_4 flag=0);
-  virtual void          putDataError(int i, double value, 
-		                     double error, int_4 flag=0);
+  //RZCMV  virtual void          putDataError(int i, double value, 
+  //		                     double error, int_4 flag=0);
 
   virtual void          wontNeedBefore(int i);
@@ -82,6 +85,5 @@
   virtual TArray<int_4> doGetFlag(int iStart, int iEnd)=0;
 #endif
-  virtual double        doGetData(int i)=0;
-  virtual int_4         doGetFlag(int i)=0;
+  virtual void          doGetData(int i, double& data, int_4& flag)=0;
   virtual void          doPutData(int i, double value, int_4 flag=0)=0;
   virtual void          doWontNeedBefore(int i);
@@ -156,6 +158,5 @@
   virtual TArray<int_4> doGetFlag(int iStart, int iEnd);
 #endif
-  virtual double        doGetData(int i);
-  virtual int_4         doGetFlag(int i);
+  virtual void          doGetData(int i, double & val, int_4 & flg);
    
   virtual void          doPutData(int i, double value, int_4 flag=0);
Index: trunk/ArchTOIPipe/Kernel/toiprocessor.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/toiprocessor.cc	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toiprocessor.cc	(revision 1462)
@@ -284,4 +284,13 @@
 }
 
+void  TOIProcessor::getData(int toiIndex, int i, double &data,int_4 &flag)
+{
+  TOI* toi = getInputTOI(toiIndex);
+  toi->waitForData(i);
+  toi->getData(i, data, flag);
+  return;
+}
+
+/*RZCMV 
 double TOIProcessor::getError(int toiIndex, int i) {
   TOI* toi = getInputTOI(toiIndex);
@@ -295,4 +304,5 @@
   return toi->getFlag(i);
 }
+*/
 
 void TOIProcessor::setNeededHistory(int nsamples) {
@@ -334,5 +344,5 @@
 }
 
-
+/*RZCMV
 void TOIProcessor::putDataError(int toiIndex, int i, double value, 
 				double error, int_4 flg) { 
@@ -344,4 +354,4 @@
   notify();
 }
-
-
+*/
+
Index: trunk/ArchTOIPipe/Kernel/toiprocessor.h
===================================================================
--- trunk/ArchTOIPipe/Kernel/toiprocessor.h	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toiprocessor.h	(revision 1462)
@@ -52,6 +52,8 @@
   // utilisees que sur des entrees simples
   double        getData(int toiIndex, int i);
-  double        getError(int toiIndex, int i);
-  int_4         getFlag(int toiIndex, int i);
+  void          getData(int toiIndex, int i, double &data,int_4 &flag);
+  
+  //RZCMV  double        getError(int toiIndex, int i);
+  //RZCMV  int_4         getFlag(int toiIndex, int i);
 
   void          wontNeedBefore(int i);
@@ -60,6 +62,6 @@
 
   void          putData(int toiIndex, int i, double value, int_4 flag=0);
-  void          putDataError(int toiIndex, int i, double value, 
-		             double error, int_4 flag=0);
+  //RZCMV  void          putDataError(int toiIndex, int i, double value, 
+  //RZCMV		             double error, int_4 flag=0);
 
   // Gestion des bornes pour les transformations de TOIs...
Index: trunk/ArchTOIPipe/Kernel/toiseqbuff.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/toiseqbuff.cc	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toiseqbuff.cc	(revision 1462)
@@ -96,5 +96,5 @@
 #endif
 
-double TOISeqBuffered::doGetData(int i) {
+void TOISeqBuffered::doGetData(int i, double & val, int_4 & flg) {
   if (!started) { 
     cout << " TOISeqBuffered::doGetData() - waitGet() Waiting for start ... " << endl;
@@ -121,5 +121,6 @@
   }
   cleanWaitGet();
-  double dat = dataRef(i);
+  val = dataRef(i);
+  flg = flagRef(i);
   if (first_out < 0)  first_out = i;
   if ((i+1) > next_out)  next_out = i+1;
@@ -131,5 +132,5 @@
     signalPut();
   }
-  return dat;
+  return;
 }
 
@@ -149,4 +150,5 @@
 #endif
 
+/*RZCMV
 int_4 TOISeqBuffered::doGetFlag(int i) {
   if (!started) waitGet(); 
@@ -158,4 +160,5 @@
   return dat;
 }
+*/
 
 
Index: trunk/ArchTOIPipe/Kernel/toiseqbuff.h
===================================================================
--- trunk/ArchTOIPipe/Kernel/toiseqbuff.h	(revision 1454)
+++ trunk/ArchTOIPipe/Kernel/toiseqbuff.h	(revision 1462)
@@ -47,6 +47,5 @@
   virtual TArray<int_4> doGetFlag(int iStart, int iEnd);
 #endif
-  virtual double        doGetData(int i);
-  virtual int_4         doGetFlag(int i);
+  virtual void          doGetData(int i, double & val, int_4 & flg);
    
   virtual void          doPutData(int i, double value, int_4 flag=0);
Index: trunk/ArchTOIPipe/ProcWSophya/rztoi.cc
===================================================================
--- trunk/ArchTOIPipe/ProcWSophya/rztoi.cc	(revision 1454)
+++ trunk/ArchTOIPipe/ProcWSophya/rztoi.cc	(revision 1462)
@@ -1,2 +1,3 @@
+#include "array.h"
 #include "rztoi.h"
 #include "toimanager.h"
Index: trunk/ArchTOIPipe/ProcWSophya/simtoipr.cc
===================================================================
--- trunk/ArchTOIPipe/ProcWSophya/simtoipr.cc	(revision 1454)
+++ trunk/ArchTOIPipe/ProcWSophya/simtoipr.cc	(revision 1462)
@@ -1,2 +1,3 @@
+#include "array.h"
 #include "simtoipr.h"
 #include <math.h>
Index: trunk/ArchTOIPipe/SMakefile
===================================================================
--- trunk/ArchTOIPipe/SMakefile	(revision 1454)
+++ trunk/ArchTOIPipe/SMakefile	(revision 1462)
@@ -1,23 +1,29 @@
-USERFLAGS = -I$(EXTLIBDIR)/Include/FitsIO -DWITH_SOPHYA
+# USERFLAGS = -I$(EXTLIBDIR)/Include/FitsIO -DWITH_SOPHYA
+USERFLAGS = -I$(EXTLIBDIR)/Include/FitsIO 
 include $(DPCBASEREP)/Include/MakefileUser.h
- 
-ALIB := ./Objs/
-AOBJ := ./Objs/
+
+ALIB := ./$(MACHDIR)/
+AOBJ := ./$(MACHDIR)/
 
 $(AOBJ)%.o:%.cc
-	$(COMPILE.cc)   $(USERFLAGS) -o $@ $<
+	$(COMPILE.cc) $(USERFLAGS) -o $@ $<
 $(AOBJ)%.o:%.c
-	$(COMPILE.c) -c $(CFLAGS) $(USERFLAGS) -o $@ $<
+	$(COMPILE.c) $(CFLAGS) $(USERFLAGS) -o $@ $<
 
-LIBOLIST := $(AOBJ)asciitoiwtr.o $(AOBJ)fitstoirdr.o $(AOBJ)fitstoiwtr.o $(AOBJ)toi.o $(AOBJ)toimanager.o $(AOBJ)toiprocessor.o $(AOBJ)toisqfilter.o \
-$(AOBJ)toiseqbuff.o $(AOBJ)simtoipr.o 
-EXEOLIST := $(AOBJ)fits2asc.o $(AOBJ)tsttoi.o $(AOBJ)tsttoi2.o
-EXELIST := $(AOBJ)simtst $(AOBJ)tstrztoi $(AOBJ)fits2asc $(AOBJ)tsttoi $(AOBJ)tsttoi2
+LIBOLIST := $(AOBJ)asciitoiwtr.o $(AOBJ)fitstoirdr.o $(AOBJ)fitstoiwtr.o \
+            $(AOBJ)toi.o $(AOBJ)toimanager.o $(AOBJ)toiprocessor.o \
+            $(AOBJ)toisqfilter.o $(AOBJ)toiseqbuff.o $(AOBJ)simtoipr.o \
+            $(AOBJ)map2toi.o $(AOBJ)toi2map.o
+EXEOLIST := $(AOBJ)fits2asc.o $(AOBJ)tsttoi.o $(AOBJ)tsttoi2.o $(AOBJ)simtst.o \
+            $(AOBJ)tstrztoi.o $(AOBJ)rztoi.o \
+            $(AOBJ)fits2ascii.o $(AOBJ)tstmap2toi.o $(AOBJ)tsttoi2map.o 
+EXELIST := $(AOBJ)simtst $(AOBJ)tstrztoi $(AOBJ)fits2asc $(AOBJ)tsttoi \
+           $(AOBJ)tsttoi2 $(AOBJ)fits2ascii $(AOBJ)tstmap2toi $(AOBJ)tsttoi2map
 
 INCLIST := asciitoiwtr.h fitstoirdr.h fitstoiwtr.h toi.h config.h conf.h \
- toiprocessor.h toimanager.h toiseqbuff.h simtoipr.h 
-
+           toiprocessor.h toimanager.h toiseqbuff.h simtoipr.h map2toi.h toi2map.h
 
 all : $(EXELIST) 
+lib : $(LIBOLIST)
 
 clean:
@@ -25,8 +31,7 @@
 	rm -f  $(EXEOLIST)
 	rm -f  $(EXELIST)
-#	rm -f $(AOBJ)asciitoiwtr.o $(AOBJ)fitstoirdr.o $(AOBJ)fitstoiwtr.o $(AOBJ)toi.o $(AOBJ)toimanager.o $(AOBJ)toiprocessor.o $(AOBJ)toisqfilter.o $(AOBJ)tsttoi.o 
 
 LIBF =  $(SLB)libsophya.so $(SLB)libextsophya.so 
-LIBS = -L$(SLB) -lextsophya -lsophya -lpthread -lm 
+LIBS =  -L$(SLB) -lextsophya -lsophya -lpthread -lm
 ifeq ($(MACHEROS),OSF1)
 LIBS := $(LIBS) -lfor
@@ -44,4 +49,10 @@
 $(AOBJ)tsttoi2: $(AOBJ)tsttoi2.o $(LIBOLIST)
 	$(LINK.cc)  -o $@ $^ $(LIBS)
+$(AOBJ)fits2ascii: $(AOBJ)fits2ascii.o $(LIBOLIST)
+	$(LINK.cc)  -o $@ $^ $(LIBS)
+$(AOBJ)tstmap2toi: $(AOBJ)tstmap2toi.o $(LIBOLIST)
+	$(LINK.cc)  -o $@ $^ $(LIBS)
+$(AOBJ)tsttoi2map: $(AOBJ)tsttoi2map.o $(LIBOLIST)
+	$(LINK.cc)  -o $@ $^ $(LIBS)
 
 $(AOBJ)tstrztoi.o: tstrztoi.cc rztoi.h $(INCLIST)
@@ -50,8 +61,10 @@
 $(AOBJ)tsttoi.o: tsttoi.cc $(INCLIST)
 $(AOBJ)tsttoi2.o: tsttoi2.cc $(INCLIST)
+$(AOBJ)fits2ascii.o: fits2ascii.cc $(INCLIST)
+$(AOBJ)tstmap2toi.o: tstmap2toi.cc $(INCLIST)
+$(AOBJ)tsttoi2toi.o: tsttoi2map.cc $(INCLIST)
 
- 
 $(AOBJ)asciitoiwtr.o: asciitoiwtr.cc asciitoiwtr.h toi.h config.h conf.h \
- toiprocessor.h toimanager.h 
+                      toiprocessor.h toimanager.h 
 $(AOBJ)fitstoirdr.o: fitstoirdr.cc fitstoirdr.h toiprocessor.h config.h conf.h
 $(AOBJ)fitstoiwtr.o: fitstoiwtr.cc fitstoiwtr.h toi.h config.h conf.h
@@ -59,9 +72,11 @@
 $(AOBJ)toimanager.o: toimanager.cc toimanager.h
 $(AOBJ)toiprocessor.o: toiprocessor.cc toiprocessor.h config.h conf.h toi.h \
- toimanager.h
+                       toimanager.h
 $(AOBJ)toisqfilter.o: toisqfilter.cc toisqfilter.h toiprocessor.h config.h \
- conf.h toi.h toimanager.h
+                      conf.h toi.h toimanager.h
 $(AOBJ)toiseqbuff.o: toiseqbuff.cc toiprocessor.h config.h conf.h toi.h \
-toiseqbuff.h 
+                     toiseqbuff.h 
 $(AOBJ)simtoipr.o: simtoipr.cc toiprocessor.h config.h conf.h toi.h \
-simtoipr.h 
+                   simtoipr.h 
+$(AOBJ)map2toi.o: map2toi.cc map2toi.h 
+$(AOBJ)toi2map.o: toi2map.cc toi2map.h 
Index: trunk/ArchTOIPipe/TestPipes/fits2asc.cc
===================================================================
--- trunk/ArchTOIPipe/TestPipes/fits2asc.cc	(revision 1454)
+++ trunk/ArchTOIPipe/TestPipes/fits2asc.cc	(revision 1462)
@@ -1,2 +1,3 @@
+#include "machdefs.h"
 #include "toi.h"
 #include "toiprocessor.h"
@@ -13,6 +14,6 @@
 
 
-  int n = r.getNOut();
-  for (int i=0; i<n; i++) {
+  int ncol = r.getNOut();
+  for (int i=0; i<ncol; i++) {
     TOI* toi = new TOIRegularWindow("t1");
     string n = r.getOutName(i);
Index: trunk/ArchTOIPipe/TestPipes/simtst.cc
===================================================================
--- trunk/ArchTOIPipe/TestPipes/simtst.cc	(revision 1454)
+++ trunk/ArchTOIPipe/TestPipes/simtst.cc	(revision 1462)
@@ -1,2 +1,4 @@
+#include "machdefs.h"
+#include "array.h"
 #include <unistd.h>
 #include <stdexcept>
Index: trunk/ArchTOIPipe/TestPipes/tstrztoi.cc
===================================================================
--- trunk/ArchTOIPipe/TestPipes/tstrztoi.cc	(revision 1454)
+++ trunk/ArchTOIPipe/TestPipes/tstrztoi.cc	(revision 1462)
@@ -1,2 +1,4 @@
+#include "machdefs.h"
+#include "array.h"
 #include <unistd.h>
 #include <stdexcept>
