Changeset 2270


Ignore:
Timestamp:
12/07/21 12:07:33 (2 years ago)
Author:
ymipsl
Message:

Tracking memory leak :
Tranformations and algorithms are now managed with shared_ptr.

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src
Files:
102 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.cpp

    r2195 r2270  
    55{ 
    66 
    7   CTemporalTransformFilter::CTemporalTransformFilter(CGarbageCollector& gc, int slots, CGridAlgorithm* algo, int nrecords, bool detectMissingValues, double defaultValue) 
     7  CTemporalTransformFilter::CTemporalTransformFilter(CGarbageCollector& gc, int slots, shared_ptr<CGridAlgorithm> algo, int nrecords, bool detectMissingValues, double defaultValue) 
    88  : CTransformFilter(gc, slots, algo, detectMissingValues, defaultValue), nrecords_(nrecords), graphCycleCompleted(true) 
    99  { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.hpp

    r2195 r2270  
    1414    public: 
    1515 
    16       CTemporalTransformFilter(CGarbageCollector& gc, int slots, CGridAlgorithm* algo, int nrecords, bool detectMissingValues, double defaultValue) ; 
     16      CTemporalTransformFilter(CGarbageCollector& gc, int slots, shared_ptr<CGridAlgorithm> algo, int nrecords, bool detectMissingValues, double defaultValue) ; 
    1717 
    1818    protected: 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/transform_filter.cpp

    r2143 r2270  
    55{ 
    66   
    7   CTransformFilter::CTransformFilter( CGarbageCollector& gc, int slots, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue)  
     7  CTransformFilter::CTransformFilter( CGarbageCollector& gc, int slots, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue)  
    88                                    : CFilter(gc, slots, this), algorithm_(algo),  
    99                                      detectMissingValues_(detectMissingValues), defaultValue_(defaultValue) 
     
    3535  } 
    3636 
    37   void CTransformFilter::buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, CGridAlgorithm* algorithm) 
     37  void CTransformFilter::buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, shared_ptr<CGridAlgorithm> algorithm) 
    3838  { 
    3939    if(this->graphEnabled) 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/transform_filter.hpp

    r2143 r2270  
    1515    public: 
    1616 
    17       CTransformFilter(CGarbageCollector& gc, int slots, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     17      CTransformFilter(CGarbageCollector& gc, int slots, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    1818 
    1919    protected: 
     
    2222      */ 
    2323      CDataPacketPtr virtual apply(std::vector<CDataPacketPtr> data) ; 
    24       void buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, CGridAlgorithm* algorithm); 
     24      void buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, shared_ptr<CGridAlgorithm> algorithm); 
    2525       
    2626//      void apply(const CArray<double, 1>& dataSrc, CArray<double,1>& dataDest); 
    2727      
    28       CGridAlgorithm* algorithm_ ; 
     28      shared_ptr<CGridAlgorithm> algorithm_ ; 
    2929      bool detectMissingValues_ ; 
    3030      bool defaultValue_ ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/axis.hpp

    r2267 r2270  
    152152        bool activateFieldWorkflow_done_=false ; 
    153153      private: 
    154         CGenericAlgorithmTransformation* transformationAlgorithm_ = nullptr ; 
    155       public: 
    156         void setTransformationAlgorithm(CGenericAlgorithmTransformation* transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
    157         CGenericAlgorithmTransformation* getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
     154        shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm_ = nullptr ; 
     155      public: 
     156        void setTransformationAlgorithm(shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
     157        shared_ptr<CGenericAlgorithmTransformation> getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
    158158      private: 
    159159        CTransformationPaths transformationPaths_ ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/compute_connectivity_domain.cpp

    r2196 r2270  
    5252  } 
    5353 
    54   CGenericAlgorithmTransformation* CComputeConnectivityDomain::createAlgorithm(bool isSource, 
     54  shared_ptr<CGenericAlgorithmTransformation> CComputeConnectivityDomain::createAlgorithm(bool isSource, 
    5555                                                        CGrid* gridDst, CGrid* gridSrc, 
    5656                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/compute_connectivity_domain.hpp

    r2011 r2270  
    6464      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6565      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    66       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     66      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6767                                                               CGrid* gridDst, CGrid* gridSrc, 
    6868                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.hpp

    r2267 r2270  
    117117 
    118118      private: 
    119         CGenericAlgorithmTransformation* transformationAlgorithm_ = nullptr ; 
    120       public: 
    121         void setTransformationAlgorithm(CGenericAlgorithmTransformation* transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
    122         CGenericAlgorithmTransformation* getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
     119        shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm_ = nullptr ; 
     120      public: 
     121        void setTransformationAlgorithm(shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
     122        shared_ptr<CGenericAlgorithmTransformation> getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
    123123      private: 
    124124        CTransformationPaths transformationPaths_ ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/duplicate_scalar_to_axis.cpp

    r2011 r2270  
    4545  } 
    4646   
    47   CGenericAlgorithmTransformation* CDuplicateScalarToAxis::createAlgorithm(bool isSource, 
     47  shared_ptr<CGenericAlgorithmTransformation> CDuplicateScalarToAxis::createAlgorithm(bool isSource, 
    4848                                                        CGrid* gridDst, CGrid* gridSrc, 
    4949                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/duplicate_scalar_to_axis.hpp

    r2011 r2270  
    6464      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6565      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    66       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     66      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6767                                                               CGrid* gridDst, CGrid* gridSrc, 
    6868                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/expand_domain.cpp

    r2196 r2270  
    4949  } 
    5050   
    51   CGenericAlgorithmTransformation* CExpandDomain::createAlgorithm(bool isSource, 
     51  shared_ptr<CGenericAlgorithmTransformation> CExpandDomain::createAlgorithm(bool isSource, 
    5252                                                        CGrid* gridDst, CGrid* gridSrc, 
    5353                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/expand_domain.hpp

    r2011 r2270  
    6464      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6565      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    66       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     66      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6767                                                               CGrid* gridDst, CGrid* gridSrc, 
    6868                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_axis.cpp

    r2011 r2270  
    7878  } 
    7979 
    80   CGenericAlgorithmTransformation* CExtractAxis::createAlgorithm(bool isSource, 
     80  shared_ptr<CGenericAlgorithmTransformation> CExtractAxis::createAlgorithm(bool isSource, 
    8181                                                        CGrid* gridDst, CGrid* gridSrc, 
    8282                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_axis.hpp

    r2011 r2270  
    6363      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_axis_to_scalar.cpp

    r2011 r2270  
    5959  } 
    6060 
    61   CGenericAlgorithmTransformation* CExtractAxisToScalar::createAlgorithm(bool isSource, 
     61  shared_ptr<CGenericAlgorithmTransformation> CExtractAxisToScalar::createAlgorithm(bool isSource, 
    6262                                                        CGrid* gridDst, CGrid* gridSrc, 
    6363                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_axis_to_scalar.hpp

    r2011 r2270  
    6363      static CTransformation<CScalar>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_domain.cpp

    r2196 r2270  
    7373  } 
    7474 
    75   CGenericAlgorithmTransformation* CExtractDomain::createAlgorithm(bool isSource, 
     75  shared_ptr<CGenericAlgorithmTransformation> CExtractDomain::createAlgorithm(bool isSource, 
    7676                                                        CGrid* gridDst, CGrid* gridSrc, 
    7777                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_domain.hpp

    r2011 r2270  
    6363      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_domain_to_axis.cpp

    r2255 r2270  
    8888  } 
    8989 
    90   CGenericAlgorithmTransformation* CExtractDomainToAxis::createAlgorithm(bool isSource, 
     90  shared_ptr<CGenericAlgorithmTransformation> CExtractDomainToAxis::createAlgorithm(bool isSource, 
    9191                                                        CGrid* gridDst, CGrid* gridSrc, 
    9292                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/extract_domain_to_axis.hpp

    r2011 r2270  
    6363      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/generate_rectilinear_domain.cpp

    r2196 r2270  
    139139  } 
    140140 
    141   CGenericAlgorithmTransformation* CGenerateRectilinearDomain::createAlgorithm(bool isSource, 
     141  shared_ptr<CGenericAlgorithmTransformation> CGenerateRectilinearDomain::createAlgorithm(bool isSource, 
    142142                                                        CGrid* gridDst, CGrid* gridSrc, 
    143143                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/generate_rectilinear_domain.hpp

    r2011 r2270  
    6363      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.cpp

    r2267 r2270  
    19011901    bool hasTransform=false ; 
    19021902    bool hasRemainTransform=false ; 
    1903     CGenericAlgorithmTransformation* algo ; 
     1903    shared_ptr<CGenericAlgorithmTransformation> algo ; 
    19041904    int pos ; 
    19051905 
     
    21922192      if (!isSource) 
    21932193      { 
    2194         CGridAlgorithm* gridAlgorithm  ; 
     2194        shared_ptr<CGridAlgorithm> gridAlgorithm  ; 
    21952195        if (isNewGrid) 
    21962196        {  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.hpp

    r2267 r2270  
    222222                                                                                  double defaultValue, CGrid*& newGrid, bool graphEnabled=false, CField* field=0) ; 
    223223      private: 
    224         CGridAlgorithm* gridAlgorithm_ = nullptr ; 
    225       public: 
    226         void setGridAlgorithm(CGridAlgorithm* gridAlgorithm) {gridAlgorithm_ = gridAlgorithm;} 
    227         CGridAlgorithm* getGridAlgorithm(void) { return gridAlgorithm_ ;} 
     224        shared_ptr<CGridAlgorithm> gridAlgorithm_ = nullptr ; 
     225      public: 
     226        void setGridAlgorithm(shared_ptr<CGridAlgorithm> gridAlgorithm) {gridAlgorithm_ = gridAlgorithm;} 
     227        shared_ptr<CGridAlgorithm> getGridAlgorithm(void) { return gridAlgorithm_ ;} 
    228228        
    229229        /////////////////////////////////////////// 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/interpolate_axis.cpp

    r2122 r2270  
    136136  } 
    137137 
    138   CGenericAlgorithmTransformation* CInterpolateAxis::createAlgorithm(bool isSource, 
     138  shared_ptr<CGenericAlgorithmTransformation> CInterpolateAxis::createAlgorithm(bool isSource, 
    139139                                                        CGrid* gridDst, CGrid* gridSrc, 
    140140                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/interpolate_axis.hpp

    r2011 r2270  
    6565      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6666      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    67       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     67      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6868                                                               CGrid* gridDst, CGrid* gridSrc, 
    6969                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/interpolate_domain.cpp

    r2196 r2270  
    6969  } 
    7070 
    71   CGenericAlgorithmTransformation* CInterpolateDomain::createAlgorithm(bool isSource, 
     71  shared_ptr<CGenericAlgorithmTransformation> CInterpolateDomain::createAlgorithm(bool isSource, 
    7272                                                        CGrid* gridDst, CGrid* gridSrc, 
    7373                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/interpolate_domain.hpp

    r2011 r2270  
    6363      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/inverse_axis.cpp

    r2011 r2270  
    4040  {} 
    4141 
    42   CGenericAlgorithmTransformation* CInverseAxis::createAlgorithm(bool isSource, 
     42  shared_ptr<CGenericAlgorithmTransformation> CInverseAxis::createAlgorithm(bool isSource, 
    4343                                                        CGrid* gridDst, CGrid* gridSrc, 
    4444                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/inverse_axis.hpp

    r2011 r2270  
    6262      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6363      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    64       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     64      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6565                                                               CGrid* gridDst, CGrid* gridSrc, 
    6666                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_axis_to_axis.cpp

    r2011 r2270  
    5757  } 
    5858 
    59   CGenericAlgorithmTransformation* CReduceAxisToAxis::createAlgorithm(bool isSource, 
     59  shared_ptr<CGenericAlgorithmTransformation> CReduceAxisToAxis::createAlgorithm(bool isSource, 
    6060                                                        CGrid* gridDst, CGrid* gridSrc, 
    6161                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_axis_to_axis.hpp

    r2011 r2270  
    6262      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6363      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    64       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     64      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6565                                                               CGrid* gridDst, CGrid* gridSrc, 
    6666                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_axis_to_scalar.cpp

    r2011 r2270  
    4242  } 
    4343 
    44   CGenericAlgorithmTransformation* CReduceAxisToScalar::createAlgorithm(bool isSource, 
     44  shared_ptr<CGenericAlgorithmTransformation> CReduceAxisToScalar::createAlgorithm(bool isSource, 
    4545                                                        CGrid* gridDst, CGrid* gridSrc, 
    4646                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_axis_to_scalar.hpp

    r2011 r2270  
    6262      static CTransformation<CScalar>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6363      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    64       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     64      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6565                                                               CGrid* gridDst, CGrid* gridSrc, 
    6666                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_domain_to_axis.cpp

    r2011 r2270  
    8888  } 
    8989 
    90   CGenericAlgorithmTransformation* CReduceDomainToAxis::createAlgorithm(bool isSource, 
     90  shared_ptr<CGenericAlgorithmTransformation> CReduceDomainToAxis::createAlgorithm(bool isSource, 
    9191                                                        CGrid* gridDst, CGrid* gridSrc, 
    9292                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_domain_to_axis.hpp

    r2011 r2270  
    6363      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_domain_to_scalar.cpp

    r2011 r2270  
    4343  } 
    4444 
    45   CGenericAlgorithmTransformation* CReduceDomainToScalar::createAlgorithm(bool isSource, 
     45  shared_ptr<CGenericAlgorithmTransformation> CReduceDomainToScalar::createAlgorithm(bool isSource, 
    4646                                                        CGrid* gridDst, CGrid* gridSrc, 
    4747                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_domain_to_scalar.hpp

    r2011 r2270  
    6363      static CTransformation<CScalar>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_scalar_to_scalar.cpp

    r2011 r2270  
    4242  } 
    4343 
    44   CGenericAlgorithmTransformation* CReduceScalarToScalar::createAlgorithm(bool isSource, 
     44  shared_ptr<CGenericAlgorithmTransformation> CReduceScalarToScalar::createAlgorithm(bool isSource, 
    4545                                                        CGrid* gridDst, CGrid* gridSrc, 
    4646                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reduce_scalar_to_scalar.hpp

    r2011 r2270  
    6262      static CTransformation<CScalar>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6363      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    64       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     64      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6565                                                               CGrid* gridDst, CGrid* gridSrc, 
    6666                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reorder_domain.cpp

    r2196 r2270  
    4242  } 
    4343 
    44   CGenericAlgorithmTransformation* CReorderDomain::createAlgorithm(bool isSource, 
     44  shared_ptr<CGenericAlgorithmTransformation> CReorderDomain::createAlgorithm(bool isSource, 
    4545                                                        CGrid* gridDst, CGrid* gridSrc, 
    4646                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reorder_domain.hpp

    r2011 r2270  
    6363      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/scalar.hpp

    r2267 r2270  
    126126        bool activateFieldWorkflow_done_=false ; 
    127127      private: 
    128         CGenericAlgorithmTransformation* transformationAlgorithm_ = nullptr ; 
     128        shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm_ = nullptr ; 
    129129      public: 
    130         void setTransformationAlgorithm(CGenericAlgorithmTransformation* transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
    131         CGenericAlgorithmTransformation* getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
     130        void setTransformationAlgorithm(shared_ptr<CGenericAlgorithmTransformation> transformationAlgorithm) { transformationAlgorithm_=transformationAlgorithm ;} 
     131        shared_ptr<CGenericAlgorithmTransformation> getTransformationAlgorithm(void) { return transformationAlgorithm_ ;}    
    132132      private: 
    133133        CTransformationPaths transformationPaths_ ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/temporal_splitting.cpp

    r2011 r2270  
    4646  } 
    4747 
    48   CGenericAlgorithmTransformation* CTemporalSplitting::createAlgorithm(bool isSource, 
     48  shared_ptr<CGenericAlgorithmTransformation> CTemporalSplitting::createAlgorithm(bool isSource, 
    4949                                                        CGrid* gridDst, CGrid* gridSrc, 
    5050                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/temporal_splitting.hpp

    r2011 r2270  
    6363      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/zoom_axis.cpp

    r2011 r2270  
    7878  } 
    7979 
    80   CGenericAlgorithmTransformation* CZoomAxis::createAlgorithm(bool isSource, 
     80  shared_ptr<CGenericAlgorithmTransformation> CZoomAxis::createAlgorithm(bool isSource, 
    8181                                                        CGrid* gridDst, CGrid* gridSrc, 
    8282                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/zoom_axis.hpp

    r2011 r2270  
    6363      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    6464      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/zoom_domain.cpp

    r2196 r2270  
    7373  } 
    7474 
    75   CGenericAlgorithmTransformation* CZoomDomain::createAlgorithm(bool isSource, 
     75  shared_ptr<CGenericAlgorithmTransformation> CZoomDomain::createAlgorithm(bool isSource, 
    7676                                                        CGrid* gridDst, CGrid* gridSrc, 
    7777                                                        int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/zoom_domain.hpp

    r2011 r2270  
    6363      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;} 
    6464      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);} 
    65       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     65      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    6666                                                               CGrid* gridDst, CGrid* gridSrc, 
    6767                                                               int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/algorithm_transformation_no_data_modification.cpp

    r2007 r2270  
    1010  } 
    1111   
    12   CGridAlgorithm* CAlgorithmTransformationNoDataModification::createGridAlgorithm(CGrid* gridSrc, CGrid* gridDst, int pos) 
     12  shared_ptr<CGridAlgorithm> CAlgorithmTransformationNoDataModification::createGridAlgorithm(CGrid* gridSrc, CGrid* gridDst, int pos) 
    1313  { 
    14     return new CGridAlgorithmNoDataModification(this) ; 
     14    return make_shared<CGridAlgorithmNoDataModification>(static_pointer_cast<CAlgorithmTransformationNoDataModification>(shared_from_this())) ; 
    1515  } 
    1616} 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/algorithm_transformation_no_data_modification.hpp

    r2007 r2270  
    1515      virtual ~CAlgorithmTransformationNoDataModification() {}; 
    1616      virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, CArray<double,1>& dataOut); 
    17       virtual CGridAlgorithm* createGridAlgorithm(CGrid* gridSrc, CGrid* newGrid, int pos) ; 
     17      virtual shared_ptr<CGridAlgorithm> createGridAlgorithm(CGrid* gridSrc, CGrid* newGrid, int pos) ; 
    1818  }; 
    1919 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.cpp

    r2147 r2270  
    1212 
    1313namespace xios { 
    14 CGenericAlgorithmTransformation* CAxisAlgorithmDuplicateScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     14shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmDuplicateScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1515                                                                     CTransformation<CAxis>* transformation, 
    1616                                                                     int elementPositionInGrid, 
     
    3030  int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 
    3131 
    32   return (new CAxisAlgorithmDuplicateScalar(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar)); 
     32  return make_shared<CAxisAlgorithmDuplicateScalar>(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar); 
    3333} 
    3434CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp

    r2145 r2270  
    3434  virtual StdString getAlgoName() {return "\\nduplicate_scalar";} 
    3535 
    36   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     36  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3737                                                CTransformation<CAxis>* transformation, 
    3838                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.cpp

    r2255 r2270  
    1010 
    1111namespace xios { 
    12 CGenericAlgorithmTransformation* CAxisAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     12shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1313                                                           CTransformation<CAxis>* transformation, 
    1414                                                           int elementPositionInGrid, 
     
    2828  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    2929 
    30   return (new CAxisAlgorithmExtract(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 
     30  return make_shared<CAxisAlgorithmExtract>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis); 
    3131} 
    3232CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.hpp

    r2145 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.cpp

    r2255 r2270  
    1515#include "reduction.hpp" 
    1616 
    17 namespace xios { 
    18 CGenericAlgorithmTransformation* CAxisAlgorithmExtractDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17namespace xios 
     18{ 
     19 
     20shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmExtractDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1921                                                                     CTransformation<CAxis>* transformation, 
    2022                                                                     int elementPositionInGrid, 
     
    3436  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3537 
    36   return (new CAxisAlgorithmExtractDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 
     38  return make_shared<CAxisAlgorithmExtractDomain>(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain); 
    3739} 
    3840CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp

    r2145 r2270  
    4949 
    5050public: 
    51   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     51  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5252                                                CTransformation<CAxis>* transformation, 
    5353                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.cpp

    r2196 r2270  
    2020 
    2121namespace xios { 
    22 CGenericAlgorithmTransformation* CAxisAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     22shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2323                                                                   CTransformation<CAxis>* transformation, 
    2424                                                                   int elementPositionInGrid, 
     
    3838  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3939 
    40   return (new CAxisAlgorithmInterpolate(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 
     40  return make_shared<CAxisAlgorithmInterpolate>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis); 
    4141} 
    4242CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp

    r2145 r2270  
    5252 
    5353public: 
    54   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     54  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5555                                                CTransformation<CAxis>* transformation, 
    5656                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.cpp

    r2268 r2270  
    2323namespace xios 
    2424{ 
    25   CGenericAlgorithmTransformation* CAxisAlgorithmInterpolateCoordinate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     25  shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInterpolateCoordinate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2626                                                                     CTransformation<CAxis>* transformation, 
    2727                                                                     int elementPositionInGrid, 
     
    4141    int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    4242 
    43     return (new CAxisAlgorithmInterpolateCoordinate(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 
     43    return make_shared<CAxisAlgorithmInterpolateCoordinate>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis); 
    4444  } 
    4545  CATCH 
     
    138138  CATCH 
    139139 
    140   CTransformFilter* CAxisAlgorithmInterpolateCoordinate::createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) 
     140  CTransformFilter* CAxisAlgorithmInterpolateCoordinate::createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) 
    141141  { 
    142142    if (hasCoordinateSrc_ && hasCoordinateDest_) return new CTransformFilter(gc, 3, algo, detectMissingValues, defaultValue) ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.hpp

    r2145 r2270  
    3737  static bool registerTrans(); 
    3838  virtual StdString getAlgoName() {return "\\ninterpolate_axis";} 
    39   virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     39  virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    4040   
    4141private: 
     
    5959 
    6060public: 
    61   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     61  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    6262                                                CTransformation<CAxis>* transformation, 
    6363                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp

    r2257 r2270  
    1818namespace xios { 
    1919 
    20 CGenericAlgorithmTransformation* CAxisAlgorithmInverse::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     20shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInverse::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2121                                                               CTransformation<CAxis>* transformation, 
    2222                                                               int elementPositionInGrid, 
     
    3636  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3737 
    38   return (new CAxisAlgorithmInverse(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis)); 
     38  return make_shared<CAxisAlgorithmInverse>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis); 
    3939} 
    4040CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp

    r2256 r2270  
    3838 
    3939public: 
    40  static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     40 static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4141                                                CTransformation<CAxis>* transformation, 
    4242                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.cpp

    r2136 r2270  
    1515 
    1616namespace xios { 
    17 CGenericAlgorithmTransformation* CAxisAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1818                                                                   CTransformation<CAxis>* transformation, 
    1919                                                                   int elementPositionInGrid, 
     
    3333  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3434 
    35   return (new CAxisAlgorithmReduceAxis(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 
     35  return make_shared<CAxisAlgorithmReduceAxis>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis); 
    3636} 
    3737CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp

    r2145 r2270  
    3535 
    3636public: 
    37   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     37  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3838                                                CTransformation<CAxis>* transformation, 
    3939                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.cpp

    r2251 r2270  
    1616 
    1717namespace xios { 
    18 CGenericAlgorithmTransformation* CAxisAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     18shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1919                                                                   CTransformation<CAxis>* transformation, 
    2020                                                                   int elementPositionInGrid, 
     
    3434  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3535 
    36   return (new CAxisAlgorithmReduceDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 
     36  return make_shared<CAxisAlgorithmReduceDomain>(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain); 
    3737} 
    3838CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp

    r2145 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.cpp

    r2011 r2270  
    1313 
    1414namespace xios { 
    15 CGenericAlgorithmTransformation* CAxisAlgorithmTemporalSplitting::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     15shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmTemporalSplitting::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1616                                                                     CTransformation<CAxis>* transformation, 
    1717                                                                     int elementPositionInGrid, 
     
    3131  int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 
    3232 
    33   return (new CAxisAlgorithmTemporalSplitting(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting)); 
     33  return make_shared<CAxisAlgorithmTemporalSplitting>(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting); 
    3434} 
    3535CATCH 
     
    4949} 
    5050 
    51 CTransformFilter* CAxisAlgorithmTemporalSplitting::createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) 
     51CTransformFilter* CAxisAlgorithmTemporalSplitting::createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) 
    5252{ 
    5353  return new CTemporalTransformFilter(gc, 1, algo, nrecords_, detectMissingValues, defaultValue) ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp

    r2145 r2270  
    3131      virtual StdString getAlgoName() {return "\\ntemporal_splitting";} 
    3232 
    33       virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     33      virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    3434 
    35       static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     35      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3636                                                     CTransformation<CAxis>* transformation, 
    3737                                                     int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.cpp

    r1998 r2270  
    1010 
    1111namespace xios { 
    12 CGenericAlgorithmTransformation* CAxisAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     12shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1313                                                           CTransformation<CAxis>* transformation, 
    1414                                                           int elementPositionInGrid, 
     
    2828  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    2929 
    30   return (new CAxisAlgorithmZoom(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis)); 
     30  return make_shared<CAxisAlgorithmZoom>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis); 
    3131} 
    3232CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.hpp

    r2011 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.cpp

    r2011 r2270  
    1515 
    1616namespace xios { 
    17 CGenericAlgorithmTransformation* CDomainAlgorithmComputeConnectivity::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmComputeConnectivity::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1818                                                                     CTransformation<CDomain>* transformation, 
    1919                                                                     int elementPositionInGrid, 
     
    3333  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3434 
    35   return (new CDomainAlgorithmComputeConnectivity(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], compute_connectivityDomain)); 
     35  return make_shared<CDomainAlgorithmComputeConnectivity>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], compute_connectivityDomain); 
    3636} 
    3737CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.hpp

    r2011 r2270  
    3737 
    3838public: 
    39   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     39  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4040                                                CTransformation<CDomain>* transformation, 
    4141                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.cpp

    r1998 r2270  
    1717 
    1818namespace xios { 
    19 CGenericAlgorithmTransformation* CDomainAlgorithmExpand::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     19shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmExpand::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2020                                                               CTransformation<CDomain>* transformation, 
    2121                                                               int elementPositionInGrid, 
     
    3535  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3636 
    37   return (new CDomainAlgorithmExpand(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], expandDomain)); 
     37  return make_shared<CDomainAlgorithmExpand>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], expandDomain); 
    3838} 
    3939CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.hpp

    r2145 r2270  
    4646 
    4747public: 
    48   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     48  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4949                                                CTransformation<CDomain>* transformation, 
    5050                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.cpp

    r2232 r2270  
    77 
    88namespace xios { 
    9 CGenericAlgorithmTransformation* CDomainAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     9shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1010                                                             CTransformation<CDomain>* transformation, 
    1111                                                             int elementPositionInGrid, 
     
    2525  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    2626 
    27   return (new CDomainAlgorithmExtract(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 
     27  return make_shared<CDomainAlgorithmExtract>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], extractDomain); 
    2828} 
    2929CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp

    r2145 r2270  
    4343 
    4444public: 
    45   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     45  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4646                                                CTransformation<CDomain>* transformation, 
    4747                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.cpp

    r2016 r2270  
    1818 
    1919 
    20 CGenericAlgorithmTransformation* CDomainAlgorithmGenerateRectilinear::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     20shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmGenerateRectilinear::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2121                                                                     CTransformation<CDomain>* transformation, 
    2222                                                                     int elementPositionInGrid, 
     
    3636  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3737 
    38   return (new CDomainAlgorithmGenerateRectilinear(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], gridDst, gridSrc, transform)); 
     38  return make_shared<CDomainAlgorithmGenerateRectilinear>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], gridDst, gridSrc, transform); 
    3939} 
    4040CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp

    r2145 r2270  
    4545 
    4646public: 
    47   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     47  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4848                                                CTransformation<CDomain>* transformation, 
    4949                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp

    r2006 r2270  
    2222 
    2323namespace xios { 
    24 CGenericAlgorithmTransformation* CDomainAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     24shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2525                                                                     CTransformation<CDomain>* transformation, 
    2626                                                                     int elementPositionInGrid, 
     
    4040  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    4141 
    42   return (new CDomainAlgorithmInterpolate(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain)); 
     42  return make_shared<CDomainAlgorithmInterpolate>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain); 
    4343} 
    4444CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp

    r2145 r2270  
    8787public: 
    8888 
    89   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     89  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    9090                                                CTransformation<CDomain>* transformation, 
    9191                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp

    r2226 r2270  
    1010 
    1111namespace xios { 
    12 CGenericAlgorithmTransformation* CDomainAlgorithmReorder::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     12shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmReorder::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1313                                                             CTransformation<CDomain>* transformation, 
    1414                                                             int elementPositionInGrid, 
     
    2828  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    2929 
    30   return (new CDomainAlgorithmReorder(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], reorderDomain)); 
     30  return make_shared<CDomainAlgorithmReorder>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], reorderDomain); 
    3131} 
    3232CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.hpp

    r2145 r2270  
    3030   
    3131    public: 
    32       static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     32      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3333                                                     CTransformation<CDomain>* transformation, 
    3434                                                     int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp

    r1998 r2270  
    77 
    88namespace xios { 
    9 CGenericAlgorithmTransformation* CDomainAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     9shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1010                                                             CTransformation<CDomain>* transformation, 
    1111                                                             int elementPositionInGrid, 
     
    2525  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    2626 
    27   return (new CDomainAlgorithmZoom(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], zoomDomain)); 
     27  return make_shared<CDomainAlgorithmZoom>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], zoomDomain); 
    2828} 
    2929CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.hpp

    r2011 r2270  
    4646 
    4747public: 
    48   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     48  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4949                                                CTransformation<CDomain>* transformation, 
    5050                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.cpp

    r2011 r2270  
    3333/////////////////////////////////////////////////////////////// 
    3434 
    35 CGridAlgorithm* CGenericAlgorithmTransformation::createGridAlgorithm(CGrid* gridSrc, CGrid* gridDst, int pos) 
     35shared_ptr<CGridAlgorithm> CGenericAlgorithmTransformation::createGridAlgorithm(CGrid* gridSrc, CGrid* gridDst, int pos) 
    3636{ 
    37   return new CGridAlgorithmGeneric(gridSrc, gridDst, pos, this) ; 
     37  return make_shared<CGridAlgorithmGeneric>(gridSrc, gridDst, pos, shared_from_this()) ; 
    3838} 
    3939 
    4040 
    4141 
    42 CTransformFilter* CGenericAlgorithmTransformation::createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) 
     42CTransformFilter* CGenericAlgorithmTransformation::createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) 
    4343{ 
    4444  return new CTransformFilter(gc, 1, algo, detectMissingValues, defaultValue) ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.hpp

    r2267 r2270  
    3232  This class defines the interface for all other inherited algorithms class 
    3333  */ 
    34 class CGenericAlgorithmTransformation 
     34class CGenericAlgorithmTransformation : public std::enable_shared_from_this<CGenericAlgorithmTransformation> 
    3535{ 
    3636  public :  
    3737    CGenericAlgorithmTransformation(bool isSource) ; 
    38     virtual CGridAlgorithm* createGridAlgorithm(CGrid* gridSrc, CGrid* newGrid, int pos) ; 
    39     virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     38    virtual shared_ptr<CGridAlgorithm> createGridAlgorithm(CGrid* gridSrc, CGrid* newGrid, int pos) ; 
     39    virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    4040    virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, CArray<double,1>& dataOut) { abort() ;} //=0 
    4141    virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, const vector<CArray<double,1>>& auxData, CArray<double,1>& dataOut) { abort() ;} //=0 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm.cpp

    r2145 r2270  
    77  CTransformFilter* CGridAlgorithm::createTransformFilter(CGarbageCollector& gc, bool detectMissingValues, double defaultValue) 
    88  {   
    9     return algorithm_->createTransformFilter(gc, this, detectMissingValues, defaultValue) ; 
     9    return algorithm_->createTransformFilter(gc, shared_from_this(), detectMissingValues, defaultValue) ; 
    1010  } 
    1111 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm.hpp

    r2145 r2270  
    1919class CGarbageCollector ; 
    2020 
    21 class CGridAlgorithm 
     21class CGridAlgorithm : public std::enable_shared_from_this<CGridAlgorithm> 
    2222{ 
    2323  public: 
    24     CGridAlgorithm(CGenericAlgorithmTransformation* algorithm) : algorithm_(algorithm)  {} ; 
     24    CGridAlgorithm(shared_ptr<CGenericAlgorithmTransformation> algorithm) : algorithm_(algorithm)  {} ; 
    2525    virtual ~CGridAlgorithm() {} ; 
    2626    virtual void apply(const CArray<double,1>& dataIn, CArray<double,1>& dataOut) { abort(); } //=0 
     
    3131    
    3232    protected: 
    33       CGenericAlgorithmTransformation* algorithm_=nullptr ; 
     33      shared_ptr<CGenericAlgorithmTransformation> algorithm_=nullptr ; 
    3434}; 
    3535 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm_generic.cpp

    r2267 r2270  
    1010{ 
    1111 
    12   CGridAlgorithmGeneric::CGridAlgorithmGeneric(CGrid* gridSrc, CGrid* gridDst, int pos,  CGenericAlgorithmTransformation* algo) 
     12  CGridAlgorithmGeneric::CGridAlgorithmGeneric(CGrid* gridSrc, CGrid* gridDst, int pos,  shared_ptr<CGenericAlgorithmTransformation> algo) 
    1313  : CGridAlgorithm(algo), gridSrc_(gridSrc), gridDst_(gridDst), pos_(pos) 
    1414  { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm_generic.hpp

    r2267 r2270  
    2323{ 
    2424  public: 
    25     CGridAlgorithmGeneric(CGrid* gridSrc, CGrid* gridDst, int pos,  CGenericAlgorithmTransformation* algo) ; 
     25    CGridAlgorithmGeneric(CGrid* gridSrc, CGrid* gridDst, int pos,  shared_ptr<CGenericAlgorithmTransformation> algo) ; 
    2626    virtual ~CGridAlgorithmGeneric() {} ; 
    2727 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm_no_data_modification.hpp

    r2007 r2270  
    1919{ 
    2020  public: 
    21     CGridAlgorithmNoDataModification(CGenericAlgorithmTransformation* algo) : CGridAlgorithm(algo) {} 
     21    CGridAlgorithmNoDataModification(shared_ptr<CGenericAlgorithmTransformation> algo) : CGridAlgorithm(algo) {} 
    2222    ~CGridAlgorithmNoDataModification(void) {}; 
    2323    void computeAlgorithm(void) {} ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_transformation_factory_impl.hpp

    r1985 r2270  
    3333  virtual ~CGridTransformationFactory() {} 
    3434 
    35   static CGenericAlgorithmTransformation* createTransformation(ETranformationType transType, bool isSource, 
     35  static shared_ptr<CGenericAlgorithmTransformation> createTransformation(ETranformationType transType, bool isSource, 
    3636                                                               CGrid* gridDst, CGrid* gridSrc, 
    3737                                                               CTransformation<T>* transformation, 
     
    4545 
    4646public: 
    47   typedef CGenericAlgorithmTransformation* (*CreateTransformationCallBack)(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     47  typedef shared_ptr<CGenericAlgorithmTransformation> (*CreateTransformationCallBack)(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4848                                                                           CTransformation<T>* transformation, 
    4949                                                                           int elementPositionInGrid, 
     
    6868 
    6969template<typename T> 
    70 CGenericAlgorithmTransformation* CGridTransformationFactory<T>::createTransformation(ETranformationType transType, bool isSource, 
     70shared_ptr<CGenericAlgorithmTransformation> CGridTransformationFactory<T>::createTransformation(ETranformationType transType, bool isSource, 
    7171                                                                               CGrid* gridDst, CGrid* gridSrc, 
    7272                                                                               CTransformation<T>* transformation, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_extract_axis.cpp

    r1999 r2270  
    1717 
    1818namespace xios { 
    19 CGenericAlgorithmTransformation* CScalarAlgorithmExtractAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     19shared_ptr<CGenericAlgorithmTransformation> CScalarAlgorithmExtractAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2020                                                                     CTransformation<CScalar>* transformation, 
    2121                                                                     int elementPositionInGrid, 
     
    3535  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3636 
    37   return (new CScalarAlgorithmExtractAxis(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 
     37  return make_shared<CScalarAlgorithmExtractAxis>(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], extractAxis); 
    3838} 
    3939CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_extract_axis.hpp

    r2145 r2270  
    3939 
    4040public: 
    41   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     41  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4242                                                CTransformation<CScalar>* transformation, 
    4343                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_axis.cpp

    r1999 r2270  
    1818 
    1919namespace xios { 
    20 CGenericAlgorithmTransformation* CScalarAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     20shared_ptr<CGenericAlgorithmTransformation> CScalarAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2121                                                                     CTransformation<CScalar>* transformation, 
    2222                                                                     int elementPositionInGrid, 
     
    3636  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3737 
    38   return (new CScalarAlgorithmReduceAxis(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 
     38  return make_shared<CScalarAlgorithmReduceAxis>(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis); 
    3939} 
    4040CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_axis.hpp

    r2145 r2270  
    3737 
    3838public: 
    39   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     39  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4040                                                CTransformation<CScalar>* transformation, 
    4141                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_domain.cpp

    r1999 r2270  
    1515 
    1616namespace xios { 
    17 CGenericAlgorithmTransformation* CScalarAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17shared_ptr<CGenericAlgorithmTransformation> CScalarAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1818                                                                     CTransformation<CScalar>* transformation, 
    1919                                                                     int elementPositionInGrid, 
     
    3333  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3434 
    35   return (new CScalarAlgorithmReduceDomain(isSource, scalarListDestP[scalarDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 
     35  return make_shared<CScalarAlgorithmReduceDomain>(isSource, scalarListDestP[scalarDstIndex], domainListSrcP[domainSrcIndex], reduceDomain); 
    3636} 
    3737CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_domain.hpp

    r2145 r2270  
    4040 
    4141public: 
    42   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     42  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4343                                                CTransformation<CScalar>* transformation, 
    4444                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_scalar.cpp

    r2011 r2270  
    1313 
    1414namespace xios { 
    15 CGenericAlgorithmTransformation* CScalarAlgorithmReduceScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     15shared_ptr<CGenericAlgorithmTransformation> CScalarAlgorithmReduceScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1616                                                                     CTransformation<CScalar>* transformation, 
    1717                                                                     int elementPositionInGrid, 
     
    3131  int scalarSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3232 
    33   return (new CScalarAlgorithmReduceScalar(isSource, scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], reduceScalar)); 
     33  return make_shared<CScalarAlgorithmReduceScalar>(isSource, scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], reduceScalar); 
    3434} 
    3535CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_scalar.hpp

    r2145 r2270  
    3333 
    3434public: 
    35   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     35  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3636                                                CTransformation<CScalar>* transformation, 
    3737                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/transformation.hpp

    r2118 r2270  
    4040      virtual const string& getName(void) { ERROR("string Transformation<T>::getId())",<< "unimplemented virtual function for child"); } ; 
    4141      virtual const string& getDefName(void) { ERROR("string Transformation<T>::getId())",<< "unimplemented virtual function for child"); } ; 
    42       virtual CGenericAlgorithmTransformation* createAlgorithm(bool isSource, 
     42      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource, 
    4343                                                               CGrid* gridDst, CGrid* gridSrc, 
    4444                                                               int elementPositionInGrid, 
Note: See TracChangeset for help on using the changeset viewer.