#ifndef __XIOS_ALGORITHM_TRANSFORMATION_TRANSFER_HPP__ #define __XIOS_ALGORITHM_TRANSFORMATION_TRANSFER_HPP__ #include "generic_algorithm_transformation.hpp" #include "transfer_transform_connector.hpp" #include "array_new.hpp" namespace xios { class CAlgorithmTransformationTransfer : public CGenericAlgorithmTransformation { public: CAlgorithmTransformationTransfer(bool isSource) : CGenericAlgorithmTransformation(isSource) {} virtual ~CAlgorithmTransformationTransfer() {}; virtual void apply(int dimBefore, int dimAfter, const CArray& dataIn, CArray& dataOut); virtual void computeRecvElement(shared_ptr srcView, shared_ptr dstView) ; virtual StdString getAlgoName() {return "\\nCAlgorithm transformation Transfer";} protected: virtual void computeAlgorithm(shared_ptr srcView, shared_ptr dstView) ; //! Map between global index of destination element and source element unordered_map transformationMapping_; shared_ptr transferTransformConnector_ ; }; } #endif //__XIOS_ALGORITHM_TRANSFORMATION_TRANSFER_HPP__