26#ifndef CASA_DATACONVERSION_H
27#define CASA_DATACONVERSION_H
30#include <casacore/casa/aips.h>
31#include <casacore/casa/OS/Conversion.h>
101 template <
typename T>
106 template <
typename T>
108 return canCopy(
static_cast<const T*
>(
nullptr));
111 template <
typename T>
123 virtual size_t toLocal(
char& to,
const void* from)
const = 0;
124 virtual size_t toLocal(
unsigned char& to,
const void* from)
const = 0;
125 virtual size_t toLocal(
short& to,
const void* from)
const = 0;
126 virtual size_t toLocal(
unsigned short& to,
const void* from)
const = 0;
127 virtual size_t toLocal(
int& to,
const void* from)
const = 0;
128 virtual size_t toLocal(
unsigned int& to,
const void* from)
const = 0;
131 virtual size_t toLocal(
float& to,
const void* from)
const = 0;
132 virtual size_t toLocal(
double& to,
const void* from)
const = 0;
142 virtual size_t toLocal(
char* to,
const void* from,
size_t nr)
const = 0;
143 virtual size_t toLocal(
unsigned char* to,
const void* from,
size_t nr)
const = 0;
144 virtual size_t toLocal(
short* to,
const void* from,
size_t nr)
const = 0;
145 virtual size_t toLocal(
unsigned short* to,
const void* from,
size_t nr)
const = 0;
146 virtual size_t toLocal(
int* to,
const void* from,
size_t nr)
const = 0;
147 virtual size_t toLocal(
unsigned int* to,
const void* from,
size_t nr)
const = 0;
148 virtual size_t toLocal(
Int64* to,
const void* from,
size_t nr)
const = 0;
150 virtual size_t toLocal(
float* to,
const void* from,
size_t nr)
const = 0;
151 virtual size_t toLocal(
double* to,
const void* from,
size_t nr)
const = 0;
161 virtual size_t fromLocal(
void* to,
char from)
const = 0;
162 virtual size_t fromLocal(
void* to,
unsigned char from)
const = 0;
163 virtual size_t fromLocal(
void* to,
short from)
const = 0;
164 virtual size_t fromLocal(
void* to,
unsigned short from)
const = 0;
166 virtual size_t fromLocal(
void* to,
unsigned int from)
const = 0;
169 virtual size_t fromLocal(
void* to,
float from)
const = 0;
170 virtual size_t fromLocal(
void* to,
double from)
const = 0;
180 virtual size_t fromLocal(
void* to,
const char* from,
size_t nr)
const = 0;
181 virtual size_t fromLocal(
void* to,
const unsigned char* from,
size_t nr)
const = 0;
182 virtual size_t fromLocal(
void* to,
const short* from,
size_t nr)
const = 0;
183 virtual size_t fromLocal(
void* to,
const unsigned short* from,
size_t nr)
const = 0;
184 virtual size_t fromLocal(
void* to,
const int* from,
size_t nr)
const = 0;
185 virtual size_t fromLocal(
void* to,
const unsigned int* from,
size_t nr)
const = 0;
188 virtual size_t fromLocal(
void* to,
const float* from,
size_t nr)
const = 0;
189 virtual size_t fromLocal(
void* to,
const double* from,
size_t nr)
const = 0;
virtual size_t toLocal(int *to, const void *from, size_t nr) const =0
virtual size_t toLocal(short &to, const void *from) const =0
virtual size_t toLocal(short *to, const void *from, size_t nr) const =0
virtual size_t fromLocal(void *to, const char *from, size_t nr) const =0
Convert nr values from local format to foreign format.
virtual unsigned int externalSize(const float *) const =0
size_t fromLocalGeneric(void *to, const T *from, size_t nr) const
virtual size_t fromLocal(void *to, unsigned short from) const =0
virtual size_t fromLocal(void *to, const unsigned short *from, size_t nr) const =0
virtual size_t toLocal(Int64 *to, const void *from, size_t nr) const =0
size_t toLocalGeneric(T &to, const void *from) const
virtual Bool canCopy(const uInt64 *) const =0
virtual size_t fromLocal(void *to, const short *from, size_t nr) const =0
virtual unsigned int externalSize(const short *) const =0
virtual Bool canCopy(const unsigned short *) const =0
virtual size_t fromLocal(void *to, short from) const =0
virtual size_t fromLocal(void *to, const unsigned int *from, size_t nr) const =0
virtual unsigned int externalSize(const Int64 *) const =0
virtual Bool canCopy(const unsigned char *) const =0
virtual size_t fromLocal(void *to, const double *from, size_t nr) const =0
virtual size_t fromLocal(void *to, int from) const =0
virtual size_t fromLocal(void *to, const unsigned char *from, size_t nr) const =0
bool canCopyGeneric() const
virtual Bool canCopy(const float *) const =0
virtual size_t fromLocal(void *to, const uInt64 *from, size_t nr) const =0
size_t toLocalGeneric(T *to, const void *from, size_t nr) const
virtual size_t toLocal(double &to, const void *from) const =0
virtual size_t toLocal(char *to, const void *from, size_t nr) const =0
Convert nr values from foreign format to local format.
virtual size_t toLocal(int &to, const void *from) const =0
unsigned int externalSizeGeneric() const
virtual size_t toLocal(uInt64 *to, const void *from, size_t nr) const =0
virtual size_t toLocal(unsigned short &to, const void *from) const =0
virtual size_t toLocal(float &to, const void *from) const =0
virtual size_t toLocal(double *to, const void *from, size_t nr) const =0
virtual unsigned int externalSize(const char *) const =0
Get the external size of the data type.
virtual unsigned int externalSize(const double *) const =0
virtual Bool canCopy(const short *) const =0
size_t fromLocalGeneric(void *to, T from) const
virtual size_t fromLocal(void *to, const Int64 *from, size_t nr) const =0
virtual size_t fromLocal(void *to, const float *from, size_t nr) const =0
virtual size_t toLocal(Int64 &to, const void *from) const =0
virtual size_t fromLocal(void *to, char from) const =0
Convert one value from local format to foreign format.
virtual unsigned int externalSize(const int *) const =0
virtual ~DataConversion()
virtual unsigned int externalSize(const unsigned int *) const =0
virtual size_t toLocal(unsigned int *to, const void *from, size_t nr) const =0
virtual size_t fromLocal(void *to, uInt64 from) const =0
virtual size_t fromLocal(void *to, float from) const =0
virtual Bool canCopy(const int *) const =0
virtual size_t toLocal(float *to, const void *from, size_t nr) const =0
virtual size_t toLocal(unsigned char &to, const void *from) const =0
virtual size_t fromLocal(void *to, double from) const =0
virtual size_t toLocal(unsigned int &to, const void *from) const =0
virtual size_t fromLocal(void *to, unsigned char from) const =0
virtual Bool canCopy(const Int64 *) const =0
virtual size_t toLocal(uInt64 &to, const void *from) const =0
virtual size_t fromLocal(void *to, const int *from, size_t nr) const =0
virtual Bool canCopy(const unsigned int *) const =0
virtual Bool canCopy(const double *) const =0
DataConversion()
Construct the object.
virtual unsigned int externalSize(const unsigned char *) const =0
virtual size_t toLocal(unsigned char *to, const void *from, size_t nr) const =0
virtual size_t fromLocal(void *to, Int64 from) const =0
virtual unsigned int externalSize(const unsigned short *) const =0
virtual size_t toLocal(unsigned short *to, const void *from, size_t nr) const =0
virtual unsigned int externalSize(const uInt64 *) const =0
virtual size_t toLocal(char &to, const void *from) const =0
Convert one value from foreign format to local format.
virtual Bool canCopy(const char *) const =0
Determine if the data for a data type can be simply copied, thus if no conversion is needed.
virtual size_t fromLocal(void *to, unsigned int from) const =0
For temporary backward namespace compatibility, use casa as alias for casacore.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size).
bool Bool
Define the standard types used by Casacore.
unsigned long long uInt64