#ifndef __XIOS_CFunctor__ #define __XIOS_CFunctor__ /// XIOS headers /// #include "xios_spl.hpp" #include "exception.hpp" #include "array_new.hpp" namespace xios { namespace func { /// ////////////////////// Déclarations ////////////////////// /// class CFunctor : public CObject { /// Définition de type /// typedef CObject SuperClass; public : enum ETimeType { once, instant, centered } ; /// Accesseurs /// CArray getDataOutput(void) const; /// Opérateur /// CArray operator ()(const CArray& dinput); virtual ETimeType timeType(void) = 0 ; /// Destructeur /// virtual ~CFunctor(void); //Traitement /// virtual void final(void); protected : /// Traitement /// virtual void apply(const CArray& dinput, CArray& doutput) = 0; /// Autres /// virtual StdString toString(void) const; virtual void fromString(const StdString & str); /// Constructeurs /// CFunctor(void); // Not implemented. CFunctor(const StdString & id, CArray& doutput); CFunctor(const StdString & id, CArray& doutput, double missingValue); CFunctor(const CFunctor & functor); // Not implemented. CFunctor(const CFunctor * const functor); // Not implemented. protected : /// Propriétés privées /// CArray& doutput; /// Propriétés protégées /// int nbcall; bool hasMissingValue ; double missingValue ; CArray nbcalls ; }; // class CFunctor } // namespace func } // namespace xios //#include "functor_type.hpp" #endif // __XIOS_CFunctor__