source: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/transformation_path.hpp @ 1984

Last change on this file since 1984 was 1984, checked in by ymipsl, 4 years ago

intermediate commit for new tranformation engine?
YM

  • Property svn:executable set to *
File size: 1.2 KB
Line 
1#ifndef __XIOS_TRANSFORMATION_PATH_HPP__
2#define __XIOS_TRANSFORMATION_PATH_HPP__
3
4#include "transformation_enum.hpp"
5#include "element_type.hpp"
6#include "xios_spl.hpp"
7
8namespace xios
9{
10  class CTransformationPaths 
11  {
12    public:
13      typedef std::tuple<EElement, string, std::list<std::pair<ETranformationType,std::string>>> TPath ;
14   
15    private:
16      TPath path_ ;
17      std::list<TPath> fullPath_ ; 
18      std::list<TPath> donePath_ ; 
19      TPath remainPath_ ; 
20      string getPathId(const TPath& path) ;
21      string getPathsId(const list<TPath>& paths) ;
22   
23    public:
24      void addPath(TPath& path) {path_=path;}
25      void mergePaths(const CTransformationPaths& transformationPath) ;
26      void mergePaths(void) ;
27      bool hasTransform(void) { return !std::get<2>(remainPath_).empty();}
28      CTransformationPaths getDonePath(void) ;
29
30      EElement getNextElementType(void);
31      std::string getNextElementId(void) ;
32      std::string getNextElementSrcId(void) ;
33      ETranformationType getNextTransformationType(void) ;
34      std::string getNextTransformationId(void) ;
35      void removeNextTransform(void) ;
36  };
37
38}
39
40#endif // __XIOS_TRANSFORMATION_PATH_HPP__
Note: See TracBrowser for help on using the repository browser.