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