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

Last change on this file since 2005 was 2005, checked in by ymipsl, 3 years ago

fix some problems in transformation_path
Not sure something else wil be broken
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> donePath_ ; 
18      TPath remainPath_ ; 
19      string getPathId(const TPath& path) ;
20      string getPathsId(const list<TPath>& paths) ;
21   
22    public:
23      void addPath(TPath& path) {path_=path;}
24      void mergePaths(const CTransformationPaths& transformationPath) ;
25      void mergePaths(void) ;
26      bool hasTransform(void) { return !std::get<2>(remainPath_).empty();}
27      bool hasPath(void) { return !std::get<1>(path_).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.