casacore
|
LDOUBLE is 8 bytes on SUN, but 16 bytes canonical. More...
#include <CanonicalConversion.h>
Static Public Member Functions | |
static size_t | toLocal (char &to, const void *from) |
Convert one value from canonical format to local format. More... | |
static size_t | toLocal (unsigned char &to, const void *from) |
static size_t | toLocal (short &to, const void *from) |
static size_t | toLocal (unsigned short &to, const void *from) |
static size_t | toLocal (int &to, const void *from) |
static size_t | toLocal (unsigned int &to, const void *from) |
static size_t | toLocal (Int64 &to, const void *from) |
static size_t | toLocal (uInt64 &to, const void *from) |
static size_t | toLocal (float &to, const void *from) |
static size_t | toLocal (double &to, const void *from) |
static size_t | fromLocal (void *to, const char &from) |
Convert one value from local format to canonical format. More... | |
static size_t | fromLocal (void *to, const unsigned char &from) |
static size_t | fromLocal (void *to, const short &from) |
static size_t | fromLocal (void *to, const unsigned short &from) |
static size_t | fromLocal (void *to, const int &from) |
static size_t | fromLocal (void *to, const unsigned int &from) |
static size_t | fromLocal (void *to, const Int64 &from) |
static size_t | fromLocal (void *to, const uInt64 &from) |
static size_t | fromLocal (void *to, const float &from) |
static size_t | fromLocal (void *to, const double &from) |
static size_t | toLocal (char *to, const void *from, size_t nr) |
Convert nr values from canonical format to local format. More... | |
static size_t | toLocal (unsigned char *to, const void *from, size_t nr) |
static size_t | toLocal (short *to, const void *from, size_t nr) |
static size_t | toLocal (unsigned short *to, const void *from, size_t nr) |
static size_t | toLocal (int *to, const void *from, size_t nr) |
static size_t | toLocal (unsigned int *to, const void *from, size_t nr) |
static size_t | toLocal (Int64 *to, const void *from, size_t nr) |
static size_t | toLocal (uInt64 *to, const void *from, size_t nr) |
static size_t | toLocal (float *to, const void *from, size_t nr) |
static size_t | toLocal (double *to, const void *from, size_t nr) |
static size_t | fromLocal (void *to, const char *from, size_t nr) |
Convert nr values from local format to canonical format. More... | |
static size_t | fromLocal (void *to, const unsigned char *from, size_t nr) |
static size_t | fromLocal (void *to, const short *from, size_t nr) |
static size_t | fromLocal (void *to, const unsigned short *from, size_t nr) |
static size_t | fromLocal (void *to, const int *from, size_t nr) |
static size_t | fromLocal (void *to, const unsigned int *from, size_t nr) |
static size_t | fromLocal (void *to, const Int64 *from, size_t nr) |
static size_t | fromLocal (void *to, const uInt64 *from, size_t nr) |
static size_t | fromLocal (void *to, const float *from, size_t nr) |
static size_t | fromLocal (void *to, const double *from, size_t nr) |
static size_t | toLocalChar (void *to, const void *from, size_t nr) |
Convert nr values from canonical format to local format. More... | |
static size_t | toLocalUChar (void *to, const void *from, size_t nr) |
static size_t | toLocalShort (void *to, const void *from, size_t nr) |
static size_t | toLocalUShort (void *to, const void *from, size_t nr) |
static size_t | toLocalInt (void *to, const void *from, size_t nr) |
static size_t | toLocalUInt (void *to, const void *from, size_t nr) |
static size_t | toLocalInt64 (void *to, const void *from, size_t nr) |
static size_t | toLocalUInt64 (void *to, const void *from, size_t nr) |
static size_t | toLocalFloat (void *to, const void *from, size_t nr) |
static size_t | toLocalDouble (void *to, const void *from, size_t nr) |
static size_t | fromLocalChar (void *to, const void *from, size_t nr) |
Convert nr values from local format to canonical format. More... | |
static size_t | fromLocalUChar (void *to, const void *from, size_t nr) |
static size_t | fromLocalShort (void *to, const void *from, size_t nr) |
static size_t | fromLocalUShort (void *to, const void *from, size_t nr) |
static size_t | fromLocalInt (void *to, const void *from, size_t nr) |
static size_t | fromLocalUInt (void *to, const void *from, size_t nr) |
static size_t | fromLocalInt64 (void *to, const void *from, size_t nr) |
static size_t | fromLocalUInt64 (void *to, const void *from, size_t nr) |
static size_t | fromLocalFloat (void *to, const void *from, size_t nr) |
static size_t | fromLocalDouble (void *to, const void *from, size_t nr) |
static void * | byteToLocalChar (void *to, const void *from, size_t nrbytes) |
Convert values from canonical format to local format. More... | |
static void * | byteToLocalUChar (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalShort (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalUShort (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalInt (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalUInt (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalInt64 (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalUInt64 (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalFloat (void *to, const void *from, size_t nrbytes) |
static void * | byteToLocalDouble (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalChar (void *to, const void *from, size_t nrbytes) |
Convert values from local format to canonical format. More... | |
static void * | byteFromLocalUChar (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalShort (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalUShort (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalInt (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalUInt (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalInt64 (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalUInt64 (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalFloat (void *to, const void *from, size_t nrbytes) |
static void * | byteFromLocalDouble (void *to, const void *from, size_t nrbytes) |
static Conversion::ValueFunction * | getToLocal (const char *) |
Get the value conversion function for the given type. More... | |
static Conversion::ValueFunction * | getToLocal (const unsigned char *) |
static Conversion::ValueFunction * | getToLocal (const short *) |
static Conversion::ValueFunction * | getToLocal (const unsigned short *) |
static Conversion::ValueFunction * | getToLocal (const int *) |
static Conversion::ValueFunction * | getToLocal (const unsigned int *) |
static Conversion::ValueFunction * | getToLocal (const Int64 *) |
static Conversion::ValueFunction * | getToLocal (const uInt64 *) |
static Conversion::ValueFunction * | getToLocal (const float *) |
static Conversion::ValueFunction * | getToLocal (const double *) |
static Conversion::ValueFunction * | getFromLocal (const char *) |
static Conversion::ValueFunction * | getFromLocal (const unsigned char *) |
static Conversion::ValueFunction * | getFromLocal (const short *) |
static Conversion::ValueFunction * | getFromLocal (const unsigned short *) |
static Conversion::ValueFunction * | getFromLocal (const int *) |
static Conversion::ValueFunction * | getFromLocal (const unsigned int *) |
static Conversion::ValueFunction * | getFromLocal (const Int64 *) |
static Conversion::ValueFunction * | getFromLocal (const uInt64 *) |
static Conversion::ValueFunction * | getFromLocal (const float *) |
static Conversion::ValueFunction * | getFromLocal (const double *) |
static Conversion::ByteFunction * | getByteToLocal (const char *) |
Get the byte conversion function for the given type. More... | |
static Conversion::ByteFunction * | getByteToLocal (const unsigned char *) |
static Conversion::ByteFunction * | getByteToLocal (const short *) |
static Conversion::ByteFunction * | getByteToLocal (const unsigned short *) |
static Conversion::ByteFunction * | getByteToLocal (const int *) |
static Conversion::ByteFunction * | getByteToLocal (const unsigned int *) |
static Conversion::ByteFunction * | getByteToLocal (const Int64 *) |
static Conversion::ByteFunction * | getByteToLocal (const uInt64 *) |
static Conversion::ByteFunction * | getByteToLocal (const float *) |
static Conversion::ByteFunction * | getByteToLocal (const double *) |
static Conversion::ByteFunction * | getByteFromLocal (const char *) |
static Conversion::ByteFunction * | getByteFromLocal (const unsigned char *) |
static Conversion::ByteFunction * | getByteFromLocal (const short *) |
static Conversion::ByteFunction * | getByteFromLocal (const unsigned short *) |
static Conversion::ByteFunction * | getByteFromLocal (const int *) |
static Conversion::ByteFunction * | getByteFromLocal (const unsigned int *) |
static Conversion::ByteFunction * | getByteFromLocal (const Int64 *) |
static Conversion::ByteFunction * | getByteFromLocal (const uInt64 *) |
static Conversion::ByteFunction * | getByteFromLocal (const float *) |
static Conversion::ByteFunction * | getByteFromLocal (const double *) |
static unsigned int | canonicalSize (const char *) |
Return the canonical length for the various data types. More... | |
static unsigned int | canonicalSize (const unsigned char *) |
static unsigned int | canonicalSize (const short *) |
static unsigned int | canonicalSize (const unsigned short *) |
static unsigned int | canonicalSize (const int *) |
static unsigned int | canonicalSize (const unsigned int *) |
static unsigned int | canonicalSize (const Int64 *) |
static unsigned int | canonicalSize (const uInt64 *) |
static unsigned int | canonicalSize (const float *) |
static unsigned int | canonicalSize (const double *) |
static void | reverse2 (void *to, const void *from) |
Reverse 2 bytes. More... | |
static void | reverse4 (void *to, const void *from) |
Reverse 4 bytes. More... | |
static void | reverse8 (void *to, const void *from) |
Reverse 8 bytes. More... | |
static void | move2 (void *to, const void *from) |
Move 2 bytes. More... | |
static void | move4 (void *to, const void *from) |
Move 4 bytes. More... | |
static void | move8 (void *to, const void *from) |
Move 8 bytes. More... | |
Private Member Functions | |
CanonicalConversion () | |
This class should not be constructed (so declare the constructor private). More... | |
LDOUBLE is 8 bytes on SUN, but 16 bytes canonical.
A class with static functions to convert canonical format
Public interface
This class consists of several static functions to convert data from local (=native) format to a canonical format. The canonical length of each data type is:
- Bool: 1 bit
- char: 1 byte
- short: 2 bytes
- int: 4 bytes
- Int64: 8 bytes
- float: 4 bytes
- double: 8 bytes
The canonical format is big-endian IEEE format, so on many machines the conversion is only a copy operation. On Alpha- or Intel-based machines, however, it involves a byte swap to convert from little endian to big endian.
The class also contains conversion functions making it possible to specify the number of bytes (in local format) instead of the number of values. These functions are included to make it possible to have the same signature as memcpy.
The current implementation of this class works on big- and little-endian machines using IEEE format. When using on other machines (e.g. VAX) the toLocal and fromLocal functions have to be changed.
Note that no functions are provided to handle Bools. Instead class Conversion provides functions to convert Bools to/from bits.
Casacore data will often be stored in a canonical format. To read these data conversion functions are needed. However, these functions do not use any other Casacore classes, so they can easily be used in any other software system.
Definition at line 161 of file CanonicalConversion.h.
|
private |
This class should not be constructed (so declare the constructor private).
|
static |
Convert values from local format to canonical format.
The from and to buffer should not overlap. The number of values involved is determined from the argument nrbytes
, which gives the number of bytes in local format. The signature of this function is the same as memcpy
, so that memcpy can directly be used if no conversion is needed.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Convert values from canonical format to local format.
The from and to buffer should not overlap. The number of values involved is determined from the argument nrbytes
, which gives the number of bytes in local format. The signature of this function is the same as memcpy
, so that memcpy can directly be used if no conversion is needed.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
Return the canonical length for the various data types.
Definition at line 961 of file CanonicalConversion.h.
References SIZE_CAN_CHAR.
|
inlinestatic |
Definition at line 963 of file CanonicalConversion.h.
References SIZE_CAN_UCHAR.
|
inlinestatic |
Definition at line 965 of file CanonicalConversion.h.
References SIZE_CAN_SHORT.
|
inlinestatic |
Definition at line 967 of file CanonicalConversion.h.
References SIZE_CAN_USHORT.
|
inlinestatic |
Definition at line 969 of file CanonicalConversion.h.
References SIZE_CAN_INT.
|
inlinestatic |
Definition at line 971 of file CanonicalConversion.h.
References SIZE_CAN_UINT.
|
inlinestatic |
Definition at line 973 of file CanonicalConversion.h.
References SIZE_CAN_INT64.
|
inlinestatic |
Definition at line 975 of file CanonicalConversion.h.
References SIZE_CAN_UINT64.
|
inlinestatic |
Definition at line 977 of file CanonicalConversion.h.
References SIZE_CAN_FLOAT.
|
inlinestatic |
Definition at line 979 of file CanonicalConversion.h.
References SIZE_CAN_DOUBLE.
|
inlinestatic |
Convert one value from local format to canonical format.
The from and to buffer should not overlap.
Definition at line 633 of file CanonicalConversion.h.
References SIZE_CAN_CHAR.
Referenced by casacore::IBMConversion::fromLocal(), and casacore::ModcompConversion::fromLocal().
|
inlinestatic |
Definition at line 639 of file CanonicalConversion.h.
References SIZE_CAN_UCHAR.
|
inlinestatic |
Definition at line 646 of file CanonicalConversion.h.
References move2(), reverse2(), and SIZE_CAN_SHORT.
|
inlinestatic |
Definition at line 657 of file CanonicalConversion.h.
References move2(), reverse2(), and SIZE_CAN_USHORT.
|
inlinestatic |
Definition at line 668 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_INT.
|
inlinestatic |
Definition at line 679 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_UINT.
|
inlinestatic |
Definition at line 690 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_INT64.
|
inlinestatic |
Definition at line 701 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_UINT64.
|
inlinestatic |
Definition at line 712 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_FLOAT.
|
inlinestatic |
Definition at line 723 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_FLOAT.
|
inlinestatic |
Convert nr values from local format to canonical format.
The from and to buffer should not overlap.
Definition at line 796 of file CanonicalConversion.h.
References fromLocalChar().
|
inlinestatic |
Definition at line 802 of file CanonicalConversion.h.
References fromLocalUChar().
|
inlinestatic |
Definition at line 808 of file CanonicalConversion.h.
References fromLocalShort().
|
inlinestatic |
Definition at line 814 of file CanonicalConversion.h.
References fromLocalUShort().
|
inlinestatic |
Definition at line 820 of file CanonicalConversion.h.
References fromLocalInt().
|
inlinestatic |
Definition at line 826 of file CanonicalConversion.h.
References fromLocalUInt().
|
inlinestatic |
Definition at line 832 of file CanonicalConversion.h.
References fromLocalInt64().
|
inlinestatic |
Definition at line 838 of file CanonicalConversion.h.
References fromLocalUInt64().
|
inlinestatic |
Definition at line 844 of file CanonicalConversion.h.
References fromLocalFloat().
|
inlinestatic |
Definition at line 850 of file CanonicalConversion.h.
References fromLocalDouble().
|
static |
Convert nr values from local format to canonical format.
The from and to buffer should not overlap.
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
Referenced by fromLocal().
|
static |
Referenced by fromLocal().
|
static |
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
Referenced by fromLocal().
|
static |
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
Referenced by fromLocal().
|
static |
Referenced by casacore::ModcompConversion::fromLocal(), and fromLocal().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Get the byte conversion function for the given type.
The function memcpy
is returned when a conversion is not needed.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
Definition at line 910 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 915 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 920 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 925 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 930 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 935 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 940 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 945 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 950 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 955 of file CanonicalConversion.h.
|
inlinestatic |
Get the value conversion function for the given type.
Definition at line 859 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 864 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 869 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 874 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 879 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 884 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 889 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 894 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 899 of file CanonicalConversion.h.
|
inlinestatic |
Definition at line 904 of file CanonicalConversion.h.
|
inlinestatic |
Move 2 bytes.
Definition at line 484 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), and toLocal().
|
inlinestatic |
Move 4 bytes.
Definition at line 489 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), casacore::IBMConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), casacore::IBMConversion::toLocal(), and toLocal().
|
inlinestatic |
Move 8 bytes.
Definition at line 494 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), and toLocal().
|
inlinestatic |
Reverse 2 bytes.
Definition at line 444 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), and toLocal().
|
inlinestatic |
Reverse 4 bytes.
Definition at line 452 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), casacore::IBMConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), casacore::IBMConversion::toLocal(), and toLocal().
|
inlinestatic |
Reverse 8 bytes.
Definition at line 465 of file CanonicalConversion.h.
Referenced by casacore::LittleEndianConversion::fromLocal(), fromLocal(), casacore::LittleEndianConversion::toLocal(), and toLocal().
|
inlinestatic |
Convert one value from canonical format to local format.
The from and to buffer should not overlap.
Definition at line 507 of file CanonicalConversion.h.
References SIZE_CAN_CHAR.
Referenced by casacore::IBMConversion::toLocal(), and casacore::ModcompConversion::toLocal().
|
inlinestatic |
Definition at line 513 of file CanonicalConversion.h.
References SIZE_CAN_UCHAR.
|
inlinestatic |
Definition at line 520 of file CanonicalConversion.h.
References move2(), reverse2(), and SIZE_CAN_SHORT.
|
inlinestatic |
Definition at line 537 of file CanonicalConversion.h.
References move2(), reverse2(), and SIZE_CAN_USHORT.
|
inlinestatic |
Definition at line 551 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_INT.
|
inlinestatic |
Definition at line 568 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_UINT.
|
inlinestatic |
Definition at line 582 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_INT64.
|
inlinestatic |
Definition at line 599 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_UINT64.
|
inlinestatic |
Definition at line 612 of file CanonicalConversion.h.
References move4(), reverse4(), and SIZE_CAN_FLOAT.
|
inlinestatic |
Definition at line 622 of file CanonicalConversion.h.
References move8(), reverse8(), and SIZE_CAN_DOUBLE.
|
inlinestatic |
Convert nr values from canonical format to local format.
The from and to buffer should not overlap.
Definition at line 735 of file CanonicalConversion.h.
References toLocalChar().
|
inlinestatic |
Definition at line 741 of file CanonicalConversion.h.
References toLocalUChar().
|
inlinestatic |
Definition at line 747 of file CanonicalConversion.h.
References toLocalShort().
|
inlinestatic |
Definition at line 753 of file CanonicalConversion.h.
References toLocalUShort().
|
inlinestatic |
Definition at line 759 of file CanonicalConversion.h.
References toLocalInt().
|
inlinestatic |
Definition at line 765 of file CanonicalConversion.h.
References toLocalUInt().
|
inlinestatic |
Definition at line 771 of file CanonicalConversion.h.
References toLocalInt64().
|
inlinestatic |
Definition at line 777 of file CanonicalConversion.h.
References toLocalUInt64().
|
inlinestatic |
Definition at line 783 of file CanonicalConversion.h.
References toLocalFloat().
|
inlinestatic |
Definition at line 789 of file CanonicalConversion.h.
References toLocalDouble().
|
static |
Convert nr values from canonical format to local format.
The from and to buffer should not overlap.
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().
|
static |
Referenced by toLocal().
|
static |
Referenced by toLocal().
|
static |
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().
|
static |
Referenced by toLocal().
|
static |
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().
|
static |
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().
|
static |
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().
|
static |
Referenced by toLocal().
|
static |
Referenced by casacore::ModcompConversion::toLocal(), and toLocal().