casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
casacore::DataConversion Class Referenceabstract

Abstract base class with functions to convert any format. More...

#include <DataConversion.h>

Inheritance diagram for casacore::DataConversion:
casacore::CanonicalDataConversion casacore::IBMDataConversion casacore::LECanonicalDataConversion casacore::ModcompDataConversion casacore::RawDataConversion casacore::VAXDataConversion

Public Member Functions

 DataConversion ()
 Construct the object. More...
 
virtual ~DataConversion ()
 
virtual size_t toLocal (char &to, const void *from) const =0
 Convert one value from foreign format to local format. More...
 
virtual size_t toLocal (unsigned char &to, const void *from) const =0
 
virtual size_t toLocal (short &to, const void *from) const =0
 
virtual size_t toLocal (unsigned short &to, const void *from) const =0
 
virtual size_t toLocal (int &to, const void *from) const =0
 
virtual size_t toLocal (unsigned int &to, const void *from) const =0
 
virtual size_t toLocal (Int64 &to, const void *from) const =0
 
virtual size_t toLocal (uInt64 &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) 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. More...
 
virtual size_t toLocal (unsigned char *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (short *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (unsigned short *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (int *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (unsigned int *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (Int64 *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (uInt64 *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (float *to, const void *from, size_t nr) const =0
 
virtual size_t toLocal (double *to, const void *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, char from) const =0
 Convert one value from local format to foreign format. More...
 
virtual size_t fromLocal (void *to, unsigned char from) const =0
 
virtual size_t fromLocal (void *to, short from) const =0
 
virtual size_t fromLocal (void *to, unsigned short from) const =0
 
virtual size_t fromLocal (void *to, int from) const =0
 
virtual size_t fromLocal (void *to, unsigned int from) const =0
 
virtual size_t fromLocal (void *to, Int64 from) const =0
 
virtual size_t fromLocal (void *to, uInt64 from) const =0
 
virtual size_t fromLocal (void *to, float from) const =0
 
virtual size_t fromLocal (void *to, double from) 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. More...
 
virtual size_t fromLocal (void *to, const unsigned char *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const short *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const unsigned short *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const int *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const unsigned int *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const Int64 *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const uInt64 *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const float *from, size_t nr) const =0
 
virtual size_t fromLocal (void *to, const double *from, size_t nr) const =0
 
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. More...
 
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
 Get the external size of the data type. More...
 
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
 

Detailed Description

Abstract base class with functions to convert any format.

Intended use:

Public interface

Review Status

Reviewed By:
Friso Olnon
Date Reviewed:
1996/11/06
Test programs:
tDataConversion

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

Definition at line 82 of file DataConversion.h.

Constructor & Destructor Documentation

casacore::DataConversion::DataConversion ( )
inline

Construct the object.

Definition at line 227 of file DataConversion.h.

virtual casacore::DataConversion::~DataConversion ( )
virtual

Member Function Documentation

virtual Bool casacore::DataConversion::canCopy ( const char *  ) const
pure virtual

Determine if the data for a data type can be simply copied, thus if no conversion is needed.

Implemented in casacore::IBMDataConversion, casacore::CanonicalDataConversion, casacore::LECanonicalDataConversion, casacore::RawDataConversion, casacore::VAXDataConversion, and casacore::ModcompDataConversion.

virtual Bool casacore::DataConversion::canCopy ( const unsigned char *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const short *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const unsigned short *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const int *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const unsigned int *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const Int64 ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const uInt64 ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const float *  ) const
pure virtual
virtual Bool casacore::DataConversion::canCopy ( const double *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const char *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const unsigned char *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const short *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const unsigned short *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const int *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const unsigned int *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const Int64 ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const uInt64 ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const float *  ) const
pure virtual
virtual unsigned int casacore::DataConversion::externalSize ( const double *  ) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
char  from 
) const
pure virtual

Convert one value from local format to foreign format.

The from and to buffer should not overlap.
Note: The char version handles characters (thus may involve conversion ASCII to EBCDIC), while the unsigned chars are simply bytes;

Implemented in casacore::IBMDataConversion, casacore::CanonicalDataConversion, casacore::LECanonicalDataConversion, casacore::RawDataConversion, casacore::VAXDataConversion, and casacore::ModcompDataConversion.

virtual size_t casacore::DataConversion::fromLocal ( void *  to,
unsigned char  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
short  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
unsigned short  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
int  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
unsigned int  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
Int64  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
uInt64  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
float  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
double  from 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const char *  from,
size_t  nr 
) const
pure virtual

Convert nr values from local format to foreign format.

The from and to buffer should not overlap.
Note: The char version handles characters (thus may involve conversion ASCII to EBCDIC), while the unsigned chars are simply bytes;

Implemented in casacore::IBMDataConversion, casacore::CanonicalDataConversion, casacore::LECanonicalDataConversion, casacore::RawDataConversion, casacore::VAXDataConversion, and casacore::ModcompDataConversion.

virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const unsigned char *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const short *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const unsigned short *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const int *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const unsigned int *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const Int64 from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const uInt64 from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const float *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::fromLocal ( void *  to,
const double *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( char &  to,
const void *  from 
) const
pure virtual

Convert one value from foreign format to local format.

The from and to buffer should not overlap.
Note: The char version handles characters (thus may involve conversion EBCDIC to ASCII), while the unsigned chars are simply bytes;

Implemented in casacore::IBMDataConversion, casacore::CanonicalDataConversion, casacore::LECanonicalDataConversion, casacore::RawDataConversion, casacore::VAXDataConversion, and casacore::ModcompDataConversion.

virtual size_t casacore::DataConversion::toLocal ( unsigned char &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( short &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( unsigned short &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( int &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( unsigned int &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( Int64 to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( uInt64 to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( float &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( double &  to,
const void *  from 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( char *  to,
const void *  from,
size_t  nr 
) const
pure virtual

Convert nr values from foreign format to local format.

The from and to buffer should not overlap.
Note: The char version handles characters (thus may involve conversion EBCDIC to ASCII), while the unsigned chars are simply bytes;

Implemented in casacore::IBMDataConversion, casacore::CanonicalDataConversion, casacore::LECanonicalDataConversion, casacore::RawDataConversion, casacore::VAXDataConversion, and casacore::ModcompDataConversion.

virtual size_t casacore::DataConversion::toLocal ( unsigned char *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( short *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( unsigned short *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( int *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( unsigned int *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( Int64 to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( uInt64 to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( float *  to,
const void *  from,
size_t  nr 
) const
pure virtual
virtual size_t casacore::DataConversion::toLocal ( double *  to,
const void *  from,
size_t  nr 
) const
pure virtual

The documentation for this class was generated from the following file: