[313] | 1 | #ifndef __TYPE_UTIL_HPP__ |
---|
| 2 | #define __TYPE_UTIL_HPP__ |
---|
| 3 | |
---|
| 4 | #include <string> |
---|
[335] | 5 | namespace xios |
---|
[313] | 6 | { |
---|
[549] | 7 | class CDomain; |
---|
[313] | 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 CContext; |
---|
[352] | 18 | class CContextGroup; |
---|
[549] | 19 | class CCalendarWrapper; |
---|
| 20 | class CVariable; |
---|
| 21 | class CVariableGroup; |
---|
[621] | 22 | class CInverseAxis; |
---|
| 23 | class CInverseAxisGroup; |
---|
| 24 | class CZoomAxis; |
---|
| 25 | class CZoomAxisGroup; |
---|
[630] | 26 | class CInterpolateAxis; |
---|
| 27 | class CInterpolateAxisGroup; |
---|
[631] | 28 | class CZoomDomain; |
---|
| 29 | class CZoomDomainGroup; |
---|
[689] | 30 | class CInterpolateDomain; |
---|
| 31 | class CInterpolateDomainGroup; |
---|
[687] | 32 | class CGenerateRectilinearDomain; |
---|
| 33 | class CGenerateRectilinearDomainGroup; |
---|
[887] | 34 | class CScalar; |
---|
| 35 | class CScalarGroup; |
---|
[888] | 36 | class CReduceAxisToScalar; |
---|
| 37 | class CReduceAxisToScalarGroup; |
---|
[895] | 38 | class CReduceDomainToAxis; |
---|
| 39 | class CReduceDomainToAxisGroup; |
---|
| 40 | class CExtractDomainToAxis; |
---|
| 41 | class CExtractDomainToAxisGroup; |
---|
[934] | 42 | class CComputeConnectivityDomain; |
---|
| 43 | class CComputeConnectivityDomainGroup; |
---|
[935] | 44 | class CExpandDomain; |
---|
| 45 | class CExpandDomainGroup; |
---|
[960] | 46 | class CExtractAxisToScalar; |
---|
| 47 | class CExtractAxisToScalarGroup; |
---|
[976] | 48 | class CReduceDomainToScalar; |
---|
| 49 | class CReduceDomainToScalarGroup; |
---|
[1275] | 50 | class CTemporalSplitting; |
---|
| 51 | class CTemporalSplittingGroup; |
---|
| 52 | |
---|
[549] | 53 | template <typename T> inline string getStrType(void); |
---|
| 54 | |
---|
| 55 | #define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); } |
---|
| 56 | |
---|
[313] | 57 | macro(short) |
---|
| 58 | macro(unsigned short) |
---|
| 59 | macro(int) |
---|
| 60 | macro(unsigned int) |
---|
| 61 | macro(long) |
---|
| 62 | macro(unsigned long) |
---|
| 63 | macro(float) |
---|
| 64 | macro(double) |
---|
| 65 | macro(long double) |
---|
| 66 | macro(char) |
---|
| 67 | macro(unsigned char) |
---|
| 68 | macro(wchar_t) |
---|
| 69 | macro(bool) |
---|
[327] | 70 | #undef macro |
---|
[549] | 71 | |
---|
| 72 | #define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); } |
---|
[313] | 73 | macro(CDomain) |
---|
| 74 | macro(CDomainGroup) |
---|
| 75 | macro(CField) |
---|
| 76 | macro(CFieldGroup) |
---|
| 77 | macro(CGrid) |
---|
| 78 | macro(CGridGroup) |
---|
| 79 | macro(CAxis) |
---|
| 80 | macro(CAxisGroup) |
---|
| 81 | macro(CFile) |
---|
| 82 | macro(CFileGroup) |
---|
| 83 | macro(CContext) |
---|
[352] | 84 | macro(CContextGroup) |
---|
[549] | 85 | macro(CCalendarWrapper) |
---|
[352] | 86 | macro(CVariable) |
---|
| 87 | macro(CVariableGroup) |
---|
[621] | 88 | macro(CInverseAxis) |
---|
| 89 | macro(CInverseAxisGroup) |
---|
| 90 | macro(CZoomAxis) |
---|
| 91 | macro(CZoomAxisGroup) |
---|
[630] | 92 | macro(CInterpolateAxis) |
---|
| 93 | macro(CInterpolateAxisGroup) |
---|
[631] | 94 | macro(CZoomDomain) |
---|
| 95 | macro(CZoomDomainGroup) |
---|
[689] | 96 | macro(CInterpolateDomain) |
---|
| 97 | macro(CInterpolateDomainGroup) |
---|
[687] | 98 | macro(CGenerateRectilinearDomain) |
---|
| 99 | macro(CGenerateRectilinearDomainGroup) |
---|
[887] | 100 | macro(CScalar) |
---|
| 101 | macro(CScalarGroup) |
---|
[888] | 102 | macro(CReduceAxisToScalar) |
---|
| 103 | macro(CReduceAxisToScalarGroup) |
---|
[895] | 104 | macro(CReduceDomainToAxis) |
---|
| 105 | macro(CReduceDomainToAxisGroup) |
---|
| 106 | macro(CExtractDomainToAxis) |
---|
| 107 | macro(CExtractDomainToAxisGroup) |
---|
[934] | 108 | macro(CComputeConnectivityDomain) |
---|
| 109 | macro(CComputeConnectivityDomainGroup) |
---|
[935] | 110 | macro(CExpandDomain) |
---|
| 111 | macro(CExpandDomainGroup) |
---|
[960] | 112 | macro(CExtractAxisToScalar) |
---|
| 113 | macro(CExtractAxisToScalarGroup) |
---|
[976] | 114 | macro(CReduceDomainToScalar) |
---|
| 115 | macro(CReduceDomainToScalarGroup) |
---|
[1275] | 116 | macro(CTemporalSplitting) |
---|
| 117 | macro(CTemporalSplittingGroup) |
---|
[976] | 118 | |
---|
[313] | 119 | #undef macro |
---|
| 120 | } |
---|
| 121 | |
---|
| 122 | |
---|
| 123 | #endif |
---|