DataConversion.h
Classes
- DataConversion -- Abstract base class with functions to convert any format (full description)
Interface
- Public Members
- DataConversion()
- virtual ~DataConversion()
- virtual unsigned int toLocal (char& to, const void* from) const = 0
- virtual unsigned int toLocal (unsigned char& to, const void* from) const = 0
- virtual unsigned int toLocal (short& to, const void* from) const = 0
- virtual unsigned int toLocal (unsigned short& to, const void* from) const = 0
- virtual unsigned int toLocal (int& to, const void* from) const = 0
- virtual unsigned int toLocal (unsigned int& to, const void* from) const = 0
- virtual unsigned int toLocal (Int64& to, const void* from) const = 0
- virtual unsigned int toLocal (uInt64& to, const void* from) const = 0
- virtual unsigned int toLocal (float& to, const void* from) const = 0
- virtual unsigned int toLocal (double& to, const void* from) const = 0
- virtual unsigned int toLocal (char* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (unsigned char* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (short* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (unsigned short* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (int* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (unsigned int* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (Int64* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (uInt64* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (float* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int toLocal (double* to, const void* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, char from) const = 0
- virtual unsigned int fromLocal (void* to, unsigned char from) const = 0
- virtual unsigned int fromLocal (void* to, short from) const = 0
- virtual unsigned int fromLocal (void* to, unsigned short from) const = 0
- virtual unsigned int fromLocal (void* to, int from) const = 0
- virtual unsigned int fromLocal (void* to, unsigned int from) const = 0
- virtual unsigned int fromLocal (void* to, Int64 from) const = 0
- virtual unsigned int fromLocal (void* to, uInt64 from) const = 0
- virtual unsigned int fromLocal (void* to, float from) const = 0
- virtual unsigned int fromLocal (void* to, double from) const = 0
- virtual unsigned int fromLocal (void* to, const char* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const unsigned char* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const short* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const unsigned short* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const int* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const unsigned int* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const Int64* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const uInt64* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const float* from, unsigned int nr) const = 0
- virtual unsigned int fromLocal (void* to, const double* from, unsigned int nr) const = 0
- virtual Bool canCopy (const char*) const = 0
- virtual Bool canCopy (const unsigned char*) const = 0
- virtual Bool canCopy (const short*) const = 0
- virtual Bool canCopy (const unsigned short*) const = 0
- virtual Bool canCopy (const int*) const = 0
- virtual Bool canCopy (const unsigned int*) const = 0
- virtual Bool canCopy (const Int64*) const = 0
- virtual Bool canCopy (const uInt64*) const = 0
- virtual Bool canCopy (const float*) const = 0
- virtual Bool canCopy (const double*) const = 0
- virtual unsigned int externalSize (const char*) const = 0
- virtual unsigned int externalSize (const unsigned char*) const = 0
- virtual unsigned int externalSize (const short*) const = 0
- virtual unsigned int externalSize (const unsigned short*) const = 0
- virtual unsigned int externalSize (const int*) const = 0
- virtual unsigned int externalSize (const unsigned int*) const = 0
- virtual unsigned int externalSize (const Int64*) const = 0
- virtual unsigned int externalSize (const uInt64*) const = 0
- virtual unsigned int externalSize (const float*) const = 0
- virtual unsigned int externalSize (const double*) const = 0
Review Status
- Reviewed By:
- Friso Olnon
- Date Reviewed:
- 1996/11/06
- Programs:
- Tests:
Synopsis
This abstract base class contains pure virtual functions to convert
from any foreign data format to local format and vice-versa.
Classes derived from it implement the functions for a specific
foreign format (e.g.
CanonicalDataConversion
,
VAXDataConversion,
IBMDataConversion).
RawDataConversion).
Example
// Construct the correct conversion object.
DataConversion* conv = new IBMDataConversion();
// Say that you read a block of 256 floats (in IBM-format).
char buffer[1024];
read (fd, buffer, 1024);
// Convert the float to local format.
float values[256];
conv->toLocal (values, buffer, 256);
Motivation
The abstract base class allows one to construct the correct conversion
object at the beginning. Thereafter this base class can be used and
polymorphism takes care of picking the correct functions.
To Do
- Support data type long double.
Member Description
Construct the object.
virtual unsigned int toLocal (char& to, const void* from) const = 0
virtual unsigned int toLocal (unsigned char& to, const void* from) const = 0
virtual unsigned int toLocal (short& to, const void* from) const = 0
virtual unsigned int toLocal (unsigned short& to, const void* from) const = 0
virtual unsigned int toLocal (int& to, const void* from) const = 0
virtual unsigned int toLocal (unsigned int& to, const void* from) const = 0
virtual unsigned int toLocal (Int64& to, const void* from) const = 0
virtual unsigned int toLocal (uInt64& to, const void* from) const = 0
virtual unsigned int toLocal (float& to, const void* from) const = 0
virtual unsigned int toLocal (double& to, const void* from) const = 0
Convert one value from foreign format to local format.
The from and to buffer should not overlap.
The char version handles characters (thus may involve conversion
EBCDIC to ASCII), while the unsigned chars are simply bytes.
virtual unsigned int toLocal (char* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (unsigned char* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (short* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (unsigned short* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (int* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (unsigned int* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (Int64* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (uInt64* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (float* to, const void* from, unsigned int nr) const = 0
virtual unsigned int toLocal (double* to, const void* from, unsigned int nr) const = 0
Convert nr values from foreign format to local format.
The from and to buffer should not overlap.
The char version handles characters (thus may involve conversion
EBCDIC to ASCII), while the unsigned chars are simply bytes.
virtual unsigned int fromLocal (void* to, char from) const = 0
virtual unsigned int fromLocal (void* to, unsigned char from) const = 0
virtual unsigned int fromLocal (void* to, short from) const = 0
virtual unsigned int fromLocal (void* to, unsigned short from) const = 0
virtual unsigned int fromLocal (void* to, int from) const = 0
virtual unsigned int fromLocal (void* to, unsigned int from) const = 0
virtual unsigned int fromLocal (void* to, Int64 from) const = 0
virtual unsigned int fromLocal (void* to, uInt64 from) const = 0
virtual unsigned int fromLocal (void* to, float from) const = 0
virtual unsigned int fromLocal (void* to, double from) const = 0
Convert one value from local format to foreign format.
The from and to buffer should not overlap.
The char version handles characters (thus may involve conversion
ASCII to EBCDIC), while the unsigned chars are simply bytes.
virtual unsigned int fromLocal (void* to, const char* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const unsigned char* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const short* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const unsigned short* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const int* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const unsigned int* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const Int64* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const uInt64* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const float* from, unsigned int nr) const = 0
virtual unsigned int fromLocal (void* to, const double* from, unsigned int nr) const = 0
Convert nr values from local format to foreign format.
The from and to buffer should not overlap.
The char version handles characters (thus may involve conversion
ASCII to EBCDIC), while the unsigned chars are simply bytes.
virtual Bool canCopy (const char*) const = 0
virtual Bool canCopy (const unsigned char*) const = 0
virtual Bool canCopy (const short*) const = 0
virtual Bool canCopy (const unsigned short*) const = 0
virtual Bool canCopy (const int*) const = 0
virtual Bool canCopy (const unsigned int*) const = 0
virtual Bool canCopy (const Int64*) const = 0
virtual Bool canCopy (const uInt64*) const = 0
virtual Bool canCopy (const float*) const = 0
virtual Bool canCopy (const double*) const = 0
Determine if the data for a data type can be simply copied, thus
if no conversion is needed.
virtual unsigned int externalSize (const char*) const = 0
virtual unsigned int externalSize (const unsigned char*) const = 0
virtual unsigned int externalSize (const short*) const = 0
virtual unsigned int externalSize (const unsigned short*) const = 0
virtual unsigned int externalSize (const int*) const = 0
virtual unsigned int externalSize (const unsigned int*) const = 0
virtual unsigned int externalSize (const Int64*) const = 0
virtual unsigned int externalSize (const uInt64*) const = 0
virtual unsigned int externalSize (const float*) const = 0
virtual unsigned int externalSize (const double*) const = 0
Get the external size of the data type.