source: XIOS3/trunk/src/type/type_util.hpp @ 2549

Last change on this file since 2549 was 2507, checked in by ymipsl, 13 months ago

Merging XIOS3_ATTACHED branch into XIOS3 trunk.

YM

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 4.5 KB
Line 
1#ifndef __TYPE_UTIL_HPP__
2#define __TYPE_UTIL_HPP__
3
4#include <string>
5namespace xios
6{
7    class CDomain;
8    class CDomainGroup;
9    class CField;
10    class CFieldGroup;
11    class CGrid;
12    class CGridGroup;
13    class CAxis;
14    class CAxisGroup;
15    class CFile;
16    class CFileGroup;
17    class CCouplerIn;
18    class CCouplerInGroup;
19    class CCouplerOut;
20    class CCouplerOutGroup;
21    class CContext;
22    class CContextGroup;
23    class CCalendarWrapper;
24    class CVariable;
25    class CVariableGroup;
26    class CInverseAxis;
27    class CInverseAxisGroup;
28    class CZoomAxis;
29    class CZoomAxisGroup;
30    class CInterpolateAxis;
31    class CInterpolateAxisGroup;
32    class CExtractAxis;
33    class CExtractAxisGroup;
34    class CZoomDomain;
35    class CZoomDomainGroup;
36    class CInterpolateDomain;
37    class CInterpolateDomainGroup;
38    class CGenerateRectilinearDomain;
39    class CGenerateRectilinearDomainGroup;
40    class CScalar;
41    class CScalarGroup;
42    class CReduceAxisToScalar;
43    class CReduceAxisToScalarGroup;
44    class CReduceDomainToAxis;
45    class CReduceDomainToAxisGroup;
46    class CReduceAxisToAxis;
47    class CReduceAxisToAxisGroup;
48    class CExtractDomainToAxis;
49    class CExtractDomainToAxisGroup;
50    class CComputeConnectivityDomain;
51    class CComputeConnectivityDomainGroup;
52    class CExpandDomain;
53    class CExpandDomainGroup;
54    class CExtractAxisToScalar;
55    class CExtractAxisToScalarGroup;
56    class CReduceDomainToScalar;
57    class CReduceDomainToScalarGroup;
58    class CTemporalSplitting;
59    class CTemporalSplittingGroup;
60    class CDuplicateScalarToAxis;
61    class CDuplicateScalarToAxisGroup;
62    class CReduceScalarToScalar;
63    class CReduceScalarToScalarGroup;
64    class CReorderDomain;
65    class CReorderDomainGroup;
66    class CExtractDomain;
67    class CExtractDomainGroup;
68    class CPoolNode ;
69    class CPoolNodeGroup ;
70    class CServiceNode ;
71    class CServiceNodeGroup ;
72    class CRedistributeDomain;
73    class CRedistributeDomainGroup;
74    class CRedistributeAxis;
75    class CRedistributeAxisGroup;
76    class CRedistributeScalar;
77    class CRedistributeScalarGroup;
78       
79  template <typename T> inline string getStrType(void);
80
81#define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); }
82
83  macro(short)
84  macro(unsigned short)
85  macro(int)
86  macro(unsigned int)
87  macro(long)
88  macro(long long)
89  macro(unsigned long)
90  macro(unsigned long long)
91  macro(float)
92  macro(double)
93  macro(long double)
94  macro(char)
95  macro(unsigned char)
96  macro(wchar_t)
97  macro(bool)
98#undef macro
99
100#define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); }
101  macro(CDomain)
102  macro(CDomainGroup)
103  macro(CField)
104  macro(CFieldGroup)
105  macro(CGrid)
106  macro(CGridGroup)
107  macro(CAxis)
108  macro(CAxisGroup)
109  macro(CFile)
110  macro(CFileGroup)
111  macro(CCouplerIn)
112  macro(CCouplerInGroup)
113  macro(CCouplerOut)
114  macro(CCouplerOutGroup)
115  macro(CContext)
116  macro(CContextGroup)
117  macro(CCalendarWrapper)
118  macro(CVariable)
119  macro(CVariableGroup)
120  macro(CInverseAxis)
121  macro(CInverseAxisGroup)
122  macro(CZoomAxis)
123  macro(CZoomAxisGroup)
124  macro(CInterpolateAxis)
125  macro(CInterpolateAxisGroup)
126  macro(CExtractAxis)
127  macro(CExtractAxisGroup)
128  macro(CZoomDomain)
129  macro(CZoomDomainGroup)
130  macro(CInterpolateDomain)
131  macro(CInterpolateDomainGroup)
132  macro(CGenerateRectilinearDomain)
133  macro(CGenerateRectilinearDomainGroup)
134  macro(CScalar)
135  macro(CScalarGroup)
136  macro(CReduceAxisToScalar)
137  macro(CReduceAxisToScalarGroup)
138  macro(CReduceDomainToAxis)
139  macro(CReduceDomainToAxisGroup)
140  macro(CReduceAxisToAxis)
141  macro(CReduceAxisToAxisGroup)
142  macro(CExtractDomainToAxis)
143  macro(CExtractDomainToAxisGroup)
144  macro(CComputeConnectivityDomain)
145  macro(CComputeConnectivityDomainGroup)
146  macro(CExpandDomain)
147  macro(CExpandDomainGroup)
148  macro(CExtractAxisToScalar)
149  macro(CExtractAxisToScalarGroup)
150  macro(CReduceDomainToScalar)
151  macro(CReduceDomainToScalarGroup)
152  macro(CTemporalSplitting)
153  macro(CTemporalSplittingGroup)
154  macro(CDuplicateScalarToAxis)
155  macro(CDuplicateScalarToAxisGroup)
156  macro(CReduceScalarToScalar)
157  macro(CReduceScalarToScalarGroup)
158  macro(CReorderDomain)
159  macro(CReorderDomainGroup)
160  macro(CExtractDomain)
161  macro(CExtractDomainGroup)
162  macro(CPoolNode)
163  macro(CPoolNodeGroup)
164  macro(CServiceNode)
165  macro(CServiceNodeGroup)
166  macro(CRedistributeDomain)
167  macro(CRedistributeDomainGroup) 
168  macro(CRedistributeAxis)
169  macro(CRedistributeAxisGroup) 
170  macro(CRedistributeScalar)
171  macro(CRedistributeScalarGroup) 
172
173#undef macro
174}
175
176
177#endif
Note: See TracBrowser for help on using the repository browser.