nidas  v1.2-1520
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
nidas::util::NoFlipConverter Class Referenceabstract

EndianConverter that doesn't flip bytes. More...

#include <EndianConverter.h>

Inheritance diagram for nidas::util::NoFlipConverter:
Inheritance graph
[legend]

Public Types

enum  endianness { EC_UNKNOWN_ENDIAN, EC_BIG_ENDIAN, EC_LITTLE_ENDIAN }
 

Public Member Functions

virtual ~NoFlipConverter ()
 
double doubleValue (const void *p) const
 Get 8 byte double at address, do endian conversion. More...
 
double doubleValue (const double &p) const
 
float floatValue (const void *p) const
 Get 4 byte float at address, do endian conversion. More...
 
float floatValue (const float &p) const
 
int64_t int64Value (const void *p) const
 Get 8 byte int64_t at address, do endian conversion. More...
 
int64_t int64Value (const int64_t &p) const
 
int32_t int32Value (const void *p) const
 Get 4 byte int32 at address, do endian conversion. More...
 
int32_t int32Value (const int32_t &p) const
 
uint32_t uint32Value (const void *p) const
 Get 4 byte unsigned int32_t at address, do endian conversion. More...
 
uint32_t uint32Value (const uint32_t &p) const
 
int16_t int16Value (const void *p) const
 
int16_t int16Value (const int16_t &p) const
 
uint16_t uint16Value (const void *p) const
 
uint16_t uint16Value (const uint16_t &p) const
 
void doubleCopy (const double &v, void *p) const
 Copy 8 byte double to the given address, doing endian conversion. More...
 
void floatCopy (const float &v, void *p) const
 Copy 4 byte float to the given address, doing endian conversion. More...
 
void int64Copy (const int64_t &v, void *p) const
 Copy 8 byte int64_t to the given address, doing endian conversion. More...
 
void int32Copy (const int &v, void *p) const
 
void uint32Copy (const uint32_t &v, void *p) const
 Copy 4 byte unsigned int to the given address, doing endian conversion. More...
 
void int16Copy (const int16_t &v, void *p) const
 
void uint16Copy (const uint16_t &v, void *p) const
 
virtual void int32Copy (const int32_t &, void *) const =0
 Copy 4 byte int to the given address, doing endian conversion. More...
 

Static Public Member Functions

static endianness getHostEndianness ()
 Return endianness value for this host. More...
 
static const EndianConvertergetConverter (endianness input, endianness output)
 Return an EndianConverter for converting from one endian to another. More...
 
static const EndianConvertergetConverter (endianness input)
 Return an EndianConverter for converting from an endian represenation to the endian representation of th host. More...
 

Static Public Attributes

static endianness hostEndianness = EndianConverter::EC_UNKNOWN_ENDIAN
 

Detailed Description

EndianConverter that doesn't flip bytes.

Member Enumeration Documentation

Enumerator
EC_UNKNOWN_ENDIAN 
EC_BIG_ENDIAN 
EC_LITTLE_ENDIAN 

Constructor & Destructor Documentation

virtual nidas::util::NoFlipConverter::~NoFlipConverter ( )
inlinevirtual

Member Function Documentation

void nidas::util::NoFlipConverter::doubleCopy ( const double &  ,
void *   
) const
inlinevirtual

Copy 8 byte double to the given address, doing endian conversion.

Pointer to address does not need to be 8-byte aligned.

Implements nidas::util::EndianConverter.

double nidas::util::NoFlipConverter::doubleValue ( const void *  ) const
inlinevirtual

Get 8 byte double at address, do endian conversion.

Pointer to address does not need to be 8-byte aligned.

Implements nidas::util::EndianConverter.

double nidas::util::NoFlipConverter::doubleValue ( const double &  p) const
inlinevirtual
void nidas::util::NoFlipConverter::floatCopy ( const float &  ,
void *   
) const
inlinevirtual

Copy 4 byte float to the given address, doing endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implements nidas::util::EndianConverter.

float nidas::util::NoFlipConverter::floatValue ( const void *  ) const
inlinevirtual

Get 4 byte float at address, do endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implements nidas::util::EndianConverter.

float nidas::util::NoFlipConverter::floatValue ( const float &  p) const
inlinevirtual
const EndianConverter * EndianConverter::getConverter ( EndianConverter::endianness  input,
EndianConverter::endianness  output 
)
staticinherited

Return an EndianConverter for converting from one endian to another.

If both are the same, then the converter that is returned just does memcpy's and does not change the representation. It is a const pointer since all its methods are const, and the pointer is owned by EndianConverter.

Referenced by nidas::dynld::isff::CSI_IRGA_Sonic::checkSampleTags(), nidas::dynld::isff::DAUSensor::init(), nidas::dynld::IEEE_Float::init(), nidas::dynld::DSC_Event::init(), nidas::dynld::DSC_PulseCounter::init(), and nidas::dynld::DSC_FreqCounter::init().

const EndianConverter * EndianConverter::getConverter ( EndianConverter::endianness  input)
staticinherited

Return an EndianConverter for converting from an endian represenation to the endian representation of th host.

If both are the same, then the converter that is returned just does memcpy's and does not change the representation. It is a const pointer since all its methods are const, and the pointer is owned by EndianConverter.

EndianConverter::endianness EndianConverter::getHostEndianness ( )
staticinherited

Return endianness value for this host.

Referenced by nidas::dynld::isff::CSI_IRGA_Sonic::checkSampleTags(), and nidas::dynld::IEEE_Float::init().

void nidas::util::NoFlipConverter::int16Copy ( const int16_t &  v,
void *  p 
) const
inlinevirtual
int16_t nidas::util::NoFlipConverter::int16Value ( const void *  p) const
inlinevirtual
int16_t nidas::util::NoFlipConverter::int16Value ( const int16_t &  p) const
inlinevirtual
virtual void nidas::util::EndianConverter::int32Copy ( const int32_t &  ,
void *   
) const
pure virtualinherited

Copy 4 byte int to the given address, doing endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implemented in nidas::util::FlipConverter.

void nidas::util::NoFlipConverter::int32Copy ( const int &  v,
void *  p 
) const
inline
int32_t nidas::util::NoFlipConverter::int32Value ( const void *  ) const
inlinevirtual

Get 4 byte int32 at address, do endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implements nidas::util::EndianConverter.

int32_t nidas::util::NoFlipConverter::int32Value ( const int32_t &  p) const
inlinevirtual
void nidas::util::NoFlipConverter::int64Copy ( const int64_t &  ,
void *   
) const
inlinevirtual

Copy 8 byte int64_t to the given address, doing endian conversion.

Pointer to address does not need to be 8-byte aligned.

Implements nidas::util::EndianConverter.

int64_t nidas::util::NoFlipConverter::int64Value ( const void *  ) const
inlinevirtual

Get 8 byte int64_t at address, do endian conversion.

Pointer to address does not need to be 8-byte aligned.

Implements nidas::util::EndianConverter.

int64_t nidas::util::NoFlipConverter::int64Value ( const int64_t &  p) const
inlinevirtual
void nidas::util::NoFlipConverter::uint16Copy ( const uint16_t &  v,
void *  p 
) const
inlinevirtual
uint16_t nidas::util::NoFlipConverter::uint16Value ( const void *  p) const
inlinevirtual
uint16_t nidas::util::NoFlipConverter::uint16Value ( const uint16_t &  p) const
inlinevirtual
void nidas::util::NoFlipConverter::uint32Copy ( const uint32_t &  ,
void *   
) const
inlinevirtual

Copy 4 byte unsigned int to the given address, doing endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implements nidas::util::EndianConverter.

uint32_t nidas::util::NoFlipConverter::uint32Value ( const void *  ) const
inlinevirtual

Get 4 byte unsigned int32_t at address, do endian conversion.

Pointer to address does not need to be 4-byte aligned.

Implements nidas::util::EndianConverter.

uint32_t nidas::util::NoFlipConverter::uint32Value ( const uint32_t &  p) const
inlinevirtual

Member Data Documentation

EndianConverter::endianness EndianConverter::hostEndianness = EndianConverter::EC_UNKNOWN_ENDIAN
staticinherited

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