[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; |
---|
[2019] | 17 | class CCouplerIn; |
---|
| 18 | class CCouplerInGroup; |
---|
| 19 | class CCouplerOut; |
---|
| 20 | class CCouplerOutGroup; |
---|
[313] | 21 | class CContext; |
---|
[352] | 22 | class CContextGroup; |
---|
[549] | 23 | class CCalendarWrapper; |
---|
| 24 | class CVariable; |
---|
| 25 | class CVariableGroup; |
---|
[621] | 26 | class CInverseAxis; |
---|
| 27 | class CInverseAxisGroup; |
---|
| 28 | class CZoomAxis; |
---|
| 29 | class CZoomAxisGroup; |
---|
[630] | 30 | class CInterpolateAxis; |
---|
| 31 | class CInterpolateAxisGroup; |
---|
[1558] | 32 | class CExtractAxis; |
---|
| 33 | class CExtractAxisGroup; |
---|
[631] | 34 | class CZoomDomain; |
---|
| 35 | class CZoomDomainGroup; |
---|
[689] | 36 | class CInterpolateDomain; |
---|
| 37 | class CInterpolateDomainGroup; |
---|
[687] | 38 | class CGenerateRectilinearDomain; |
---|
| 39 | class CGenerateRectilinearDomainGroup; |
---|
[887] | 40 | class CScalar; |
---|
| 41 | class CScalarGroup; |
---|
[888] | 42 | class CReduceAxisToScalar; |
---|
| 43 | class CReduceAxisToScalarGroup; |
---|
[895] | 44 | class CReduceDomainToAxis; |
---|
| 45 | class CReduceDomainToAxisGroup; |
---|
[1301] | 46 | class CReduceAxisToAxis; |
---|
| 47 | class CReduceAxisToAxisGroup; |
---|
[895] | 48 | class CExtractDomainToAxis; |
---|
| 49 | class CExtractDomainToAxisGroup; |
---|
[934] | 50 | class CComputeConnectivityDomain; |
---|
| 51 | class CComputeConnectivityDomainGroup; |
---|
[935] | 52 | class CExpandDomain; |
---|
| 53 | class CExpandDomainGroup; |
---|
[960] | 54 | class CExtractAxisToScalar; |
---|
| 55 | class CExtractAxisToScalarGroup; |
---|
[976] | 56 | class CReduceDomainToScalar; |
---|
| 57 | class CReduceDomainToScalarGroup; |
---|
[1275] | 58 | class CTemporalSplitting; |
---|
| 59 | class CTemporalSplittingGroup; |
---|
[1314] | 60 | class CDuplicateScalarToAxis; |
---|
| 61 | class CDuplicateScalarToAxisGroup; |
---|
| 62 | class CReduceScalarToScalar; |
---|
| 63 | class CReduceScalarToScalarGroup; |
---|
[1457] | 64 | class CReorderDomain; |
---|
| 65 | class CReorderDomainGroup; |
---|
[1549] | 66 | class CExtractDomain; |
---|
| 67 | class CExtractDomainGroup; |
---|
[1457] | 68 | |
---|
[549] | 69 | template <typename T> inline string getStrType(void); |
---|
| 70 | |
---|
| 71 | #define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); } |
---|
| 72 | |
---|
[313] | 73 | macro(short) |
---|
| 74 | macro(unsigned short) |
---|
| 75 | macro(int) |
---|
| 76 | macro(unsigned int) |
---|
| 77 | macro(long) |
---|
[2019] | 78 | macro(long long) |
---|
[313] | 79 | macro(unsigned long) |
---|
[2019] | 80 | macro(unsigned long long) |
---|
[313] | 81 | macro(float) |
---|
| 82 | macro(double) |
---|
| 83 | macro(long double) |
---|
| 84 | macro(char) |
---|
| 85 | macro(unsigned char) |
---|
| 86 | macro(wchar_t) |
---|
| 87 | macro(bool) |
---|
[327] | 88 | #undef macro |
---|
[549] | 89 | |
---|
| 90 | #define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); } |
---|
[313] | 91 | macro(CDomain) |
---|
| 92 | macro(CDomainGroup) |
---|
| 93 | macro(CField) |
---|
| 94 | macro(CFieldGroup) |
---|
| 95 | macro(CGrid) |
---|
| 96 | macro(CGridGroup) |
---|
| 97 | macro(CAxis) |
---|
| 98 | macro(CAxisGroup) |
---|
| 99 | macro(CFile) |
---|
| 100 | macro(CFileGroup) |
---|
[2019] | 101 | macro(CCouplerIn) |
---|
| 102 | macro(CCouplerInGroup) |
---|
| 103 | macro(CCouplerOut) |
---|
| 104 | macro(CCouplerOutGroup) |
---|
[313] | 105 | macro(CContext) |
---|
[352] | 106 | macro(CContextGroup) |
---|
[549] | 107 | macro(CCalendarWrapper) |
---|
[352] | 108 | macro(CVariable) |
---|
| 109 | macro(CVariableGroup) |
---|
[621] | 110 | macro(CInverseAxis) |
---|
| 111 | macro(CInverseAxisGroup) |
---|
| 112 | macro(CZoomAxis) |
---|
| 113 | macro(CZoomAxisGroup) |
---|
[630] | 114 | macro(CInterpolateAxis) |
---|
| 115 | macro(CInterpolateAxisGroup) |
---|
[1558] | 116 | macro(CExtractAxis) |
---|
| 117 | macro(CExtractAxisGroup) |
---|
[631] | 118 | macro(CZoomDomain) |
---|
| 119 | macro(CZoomDomainGroup) |
---|
[689] | 120 | macro(CInterpolateDomain) |
---|
| 121 | macro(CInterpolateDomainGroup) |
---|
[687] | 122 | macro(CGenerateRectilinearDomain) |
---|
| 123 | macro(CGenerateRectilinearDomainGroup) |
---|
[887] | 124 | macro(CScalar) |
---|
| 125 | macro(CScalarGroup) |
---|
[888] | 126 | macro(CReduceAxisToScalar) |
---|
| 127 | macro(CReduceAxisToScalarGroup) |
---|
[895] | 128 | macro(CReduceDomainToAxis) |
---|
| 129 | macro(CReduceDomainToAxisGroup) |
---|
[1301] | 130 | macro(CReduceAxisToAxis) |
---|
| 131 | macro(CReduceAxisToAxisGroup) |
---|
[895] | 132 | macro(CExtractDomainToAxis) |
---|
| 133 | macro(CExtractDomainToAxisGroup) |
---|
[934] | 134 | macro(CComputeConnectivityDomain) |
---|
| 135 | macro(CComputeConnectivityDomainGroup) |
---|
[935] | 136 | macro(CExpandDomain) |
---|
| 137 | macro(CExpandDomainGroup) |
---|
[960] | 138 | macro(CExtractAxisToScalar) |
---|
| 139 | macro(CExtractAxisToScalarGroup) |
---|
[976] | 140 | macro(CReduceDomainToScalar) |
---|
| 141 | macro(CReduceDomainToScalarGroup) |
---|
[1275] | 142 | macro(CTemporalSplitting) |
---|
| 143 | macro(CTemporalSplittingGroup) |
---|
[1314] | 144 | macro(CDuplicateScalarToAxis) |
---|
| 145 | macro(CDuplicateScalarToAxisGroup) |
---|
| 146 | macro(CReduceScalarToScalar) |
---|
| 147 | macro(CReduceScalarToScalarGroup) |
---|
[1457] | 148 | macro(CReorderDomain) |
---|
| 149 | macro(CReorderDomainGroup) |
---|
[1549] | 150 | macro(CExtractDomain) |
---|
| 151 | macro(CExtractDomainGroup) |
---|
[976] | 152 | |
---|
[313] | 153 | #undef macro |
---|
| 154 | } |
---|
| 155 | |
---|
| 156 | |
---|
| 157 | #endif |
---|