Index: XIOS/trunk/src/node/field.hpp
===================================================================
--- XIOS/trunk/src/node/field.hpp	(revision 643)
+++ XIOS/trunk/src/node/field.hpp	(revision 645)
@@ -78,17 +78,10 @@
          CFile* getRelFile(void) const ;
 
+         func::CFunctor::ETimeType getOperationTimeType() const;
+
       public :
 
          StdSize getNStep(void) const;
 
-         const CDuration & getFreqOperation(void) const;
-         const CDuration & getFreqWrite(void) const;
-
-         boost::shared_ptr<CDate> getLastWriteDate(void) const;
-         boost::shared_ptr<CDate> getLastOperationDate(void) const;
-
-         boost::shared_ptr<func::CFunctor> getFieldOperation(void) const;
-
-         CArray<double, 1> getData(void) const;
          template <int N> void getData(CArray<double, N>& _data) const;
 
@@ -101,34 +94,17 @@
          void resetNStepMax();
 
-         template <int N> bool updateData(const CArray<double, N>&   data);
-         template <int N> bool updateFilteredData(CArray<double, N>&   data);
-         template<int N>
-         void updateDataWithoutOperation(const CArray<double, N>& _data, CArray<double,1>& updatedData);
-         bool updateDataFromExpression(const CArray<double, 1>&   data);
-         void setDataFromExpression(const CArray<double, 1>& _data) ;
-
-         bool updateDataServer
-               (const CDate & currDate,
-                const std::deque< CArray<double, 1>* > storedClient);
-
          std::map<int, StdSize> getGridDataSize();
 
        public :
          bool isActive(void) const;
-         bool active ;
          bool hasOutputFile ;
-         bool hasFieldOut ;
 
          /// Traitements ///
-         void processEnabledField(void) ;
-
          void solveGridReference(void);
-         void solveOperation(void);
+         void solveServerOperation(void);
          void solveCheckMaskIndex(bool doSendingIndex);
          void solveAllReferenceEnabledField(bool doSending2Sever);
-         void buildAllExpressionEnabledField();
          void solveGridDomainAxisRef(bool checkAtt);
          void solveTransformedGrid();
-         CGrid* getGridRefOfBaseReference();
 
          void buildFilterGraph(CGarbageCollector& gc, bool enableOutput);
@@ -149,5 +125,4 @@
         template <int N> void setData(const CArray<double, N>& _data) ;
         static bool dispatchEvent(CEventServer& event) ;
-        void sendUpdateData(void) ;
         void sendUpdateData(const CArray<double,1>& data);
         static void recvUpdateData(CEventServer& event) ;
@@ -170,5 +145,4 @@
         void invertScaleFactorAddOffset(double scaleFactor, double addOffset);
         void parse(xml::CXMLNode & node) ;
-        CArray<double,1>* getInstantData(void)  ;
 
         void setVirtualVariableGroup(CVariableGroup* newVVariableGroup);
@@ -191,10 +165,4 @@
         const std::pair<StdString, StdString>& getRefDomainAxisIds();
 
-        const std::vector<CField*>& getFilterSources();
-        void applyFilter(const CArray<double, 1>& dataToSend, CArray<double,1>& dataToReceive);
-        void sendAndReceiveTransformedData(const std::map<int, CArray<int,1>* >& localIndexToSend,
-                                           const CArray<double, 1>& dataSrc,
-                                           const std::map<int,std::vector<std::vector<std::pair<int,double> > > >& localIndexToReceive,
-                                           CArray<double,1>& dataDest);
       public :
          /// PropriÃ©tÃ©s privÃ©es ///
@@ -203,46 +171,27 @@
          CGrid*  grid ;
          CFile*  file;
-         CField* fieldOut ;
-
-         CDuration freq_operation, freq_write;
+
          CDuration freq_operation_srv, freq_write_srv;
 
          StdSize nstep, nstepMax;
          bool isEOF;
-         boost::shared_ptr<CDate>    last_Write, last_operation;
-         boost::shared_ptr<CDate>    lastlast_Write_srv,last_Write_srv, last_operation_srv;
+         boost::shared_ptr<CDate> lastlast_Write_srv, last_Write_srv, last_operation_srv;
          CDate lastDataRequestedFromServer;
 
-         boost::shared_ptr<func::CFunctor> foperation;
          map<int,boost::shared_ptr<func::CFunctor> > foperation_srv;
 
-         CArray<double, 1> data;
-         CArray<double, 1> instantData;
-         CArray<double, 1> filteredData;
-         bool hasInstantData ;
          map<int, CArray<double,1>* > data_srv ;
-         bool isOnceOperation ;
-         bool isFirstOperation ;
          string content ;
 
-         list< pair<CField *,int> > fieldDependency ;
-         void buildExpression(void) ;
-         void addDependency(CField* field, int slotId) ;
-         void resetSlots(void) ;
-         vector<bool> slots ;
-         CDate* slotUpdateDate ;
-         CFieldNode * expression ;
-         bool hasExpression ;
-         bool slotsFull(void) ;
-         void setSlot(int slotId);
-         bool processed ;
          bool areAllReferenceSolved;
-         bool areAllExpressionBuilt;
          std::pair<StdString,StdString> domAxisIds_;
          bool isReadDataRequestPending;
-         std::vector<CField*> filterSources_;
+
          DECLARE_REF_FUNC(Field,field)
 
       private:
+         //! The type of operation attached to the field
+         func::CFunctor::ETimeType operationTimeType;
+
          //! The output pin of the filter providing the instant data for the field
          boost::shared_ptr<COutputPin> instantDataFilter;
