00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CASA_DATACONVERSION_H
00029 #define CASA_DATACONVERSION_H
00030
00031
00032 #include <casacore/casa/aips.h>
00033 #include <casacore/casa/OS/Conversion.h>
00034
00035 namespace casacore {
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 class DataConversion
00083 {
00084 public:
00085
00086 DataConversion();
00087
00088 virtual ~DataConversion();
00089
00090
00091
00092
00093
00094
00095
00096
00097 virtual size_t toLocal (char& to,
00098 const void* from) const = 0;
00099 virtual size_t toLocal (unsigned char& to,
00100 const void* from) const = 0;
00101 virtual size_t toLocal (short& to,
00102 const void* from) const = 0;
00103 virtual size_t toLocal (unsigned short& to,
00104 const void* from) const = 0;
00105 virtual size_t toLocal (int& to,
00106 const void* from) const = 0;
00107 virtual size_t toLocal (unsigned int& to,
00108 const void* from) const = 0;
00109 virtual size_t toLocal (Int64& to,
00110 const void* from) const = 0;
00111 virtual size_t toLocal (uInt64& to,
00112 const void* from) const = 0;
00113 virtual size_t toLocal (float& to,
00114 const void* from) const = 0;
00115 virtual size_t toLocal (double& to,
00116 const void* from) const = 0;
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 virtual size_t toLocal (char* to, const void* from,
00127 size_t nr) const = 0;
00128 virtual size_t toLocal (unsigned char* to, const void* from,
00129 size_t nr) const = 0;
00130 virtual size_t toLocal (short* to, const void* from,
00131 size_t nr) const = 0;
00132 virtual size_t toLocal (unsigned short* to, const void* from,
00133 size_t nr) const = 0;
00134 virtual size_t toLocal (int* to, const void* from,
00135 size_t nr) const = 0;
00136 virtual size_t toLocal (unsigned int* to, const void* from,
00137 size_t nr) const = 0;
00138 virtual size_t toLocal (Int64* to, const void* from,
00139 size_t nr) const = 0;
00140 virtual size_t toLocal (uInt64* to, const void* from,
00141 size_t nr) const = 0;
00142 virtual size_t toLocal (float* to, const void* from,
00143 size_t nr) const = 0;
00144 virtual size_t toLocal (double* to, const void* from,
00145 size_t nr) const = 0;
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155 virtual size_t fromLocal (void* to, char from) const = 0;
00156 virtual size_t fromLocal (void* to, unsigned char from) const = 0;
00157 virtual size_t fromLocal (void* to, short from) const = 0;
00158 virtual size_t fromLocal (void* to, unsigned short from) const = 0;
00159 virtual size_t fromLocal (void* to, int from) const = 0;
00160 virtual size_t fromLocal (void* to, unsigned int from) const = 0;
00161 virtual size_t fromLocal (void* to, Int64 from) const = 0;
00162 virtual size_t fromLocal (void* to, uInt64 from) const = 0;
00163 virtual size_t fromLocal (void* to, float from) const = 0;
00164 virtual size_t fromLocal (void* to, double from) const = 0;
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174 virtual size_t fromLocal (void* to, const char* from,
00175 size_t nr) const = 0;
00176 virtual size_t fromLocal (void* to, const unsigned char* from,
00177 size_t nr) const = 0;
00178 virtual size_t fromLocal (void* to, const short* from,
00179 size_t nr) const = 0;
00180 virtual size_t fromLocal (void* to, const unsigned short* from,
00181 size_t nr) const = 0;
00182 virtual size_t fromLocal (void* to, const int* from,
00183 size_t nr) const = 0;
00184 virtual size_t fromLocal (void* to, const unsigned int* from,
00185 size_t nr) const = 0;
00186 virtual size_t fromLocal (void* to, const Int64* from,
00187 size_t nr) const = 0;
00188 virtual size_t fromLocal (void* to, const uInt64* from,
00189 size_t nr) const = 0;
00190 virtual size_t fromLocal (void* to, const float* from,
00191 size_t nr) const = 0;
00192 virtual size_t fromLocal (void* to, const double* from,
00193 size_t nr) const = 0;
00194
00195
00196
00197
00198
00199 virtual Bool canCopy (const char*) const = 0;
00200 virtual Bool canCopy (const unsigned char*) const = 0;
00201 virtual Bool canCopy (const short*) const = 0;
00202 virtual Bool canCopy (const unsigned short*) const = 0;
00203 virtual Bool canCopy (const int*) const = 0;
00204 virtual Bool canCopy (const unsigned int*) const = 0;
00205 virtual Bool canCopy (const Int64*) const = 0;
00206 virtual Bool canCopy (const uInt64*) const = 0;
00207 virtual Bool canCopy (const float*) const = 0;
00208 virtual Bool canCopy (const double*) const = 0;
00209
00210
00211
00212
00213 virtual unsigned int externalSize (const char*) const = 0;
00214 virtual unsigned int externalSize (const unsigned char*) const = 0;
00215 virtual unsigned int externalSize (const short*) const = 0;
00216 virtual unsigned int externalSize (const unsigned short*) const = 0;
00217 virtual unsigned int externalSize (const int*) const = 0;
00218 virtual unsigned int externalSize (const unsigned int*) const = 0;
00219 virtual unsigned int externalSize (const Int64*) const = 0;
00220 virtual unsigned int externalSize (const uInt64*) const = 0;
00221 virtual unsigned int externalSize (const float*) const = 0;
00222 virtual unsigned int externalSize (const double*) const = 0;
00223
00224 };
00225
00226
00227 inline DataConversion::DataConversion()
00228 {}
00229
00230
00231
00232 }
00233
00234 #endif