BALL::BinaryFileAdaptor< T > Class Template Reference

#include <BALL/SYSTEM/file.h>

List of all members.

Public Member Functions

Constructors and destructor
 BinaryFileAdaptor ()
 Default constructor.
 BinaryFileAdaptor (const T &data, bool swap_endian=false)
 Detailed constructor.
Accessors
void setSwapEndian (bool swap_endian)
 Set the swap_endian flag.
bool getSwapEndian () const
 return the swap_endian flag
void setData (const T &data)
const T & getData () const
T & getData ()

Protected Attributes

data_
bool swap_endian_

Detailed Description

template<typename T>
class BALL::BinaryFileAdaptor< T >

Helper class for data conversion. BinaryFileAdaptors are used to read and write binary data from and to streams. This is done by reading the member data as a byte stream through an explicit cast and utilizing the stream read() and write() functions.

Caveat: This concept relies on the C++ memory layout and thus is highly non-portable!
The flag swap_endian can be used to swap between big- and little-endian.

Constructor & Destructor Documentation

template<typename T >
BALL_INLINE BALL::BinaryFileAdaptor< T >::BinaryFileAdaptor ( )

Default constructor.

template<typename T>
BALL_INLINE BALL::BinaryFileAdaptor< T >::BinaryFileAdaptor ( const T &  data,
bool  swap_endian = false 
)

Detailed constructor.


Member Function Documentation

template<typename T >
BALL_INLINE const T & BALL::BinaryFileAdaptor< T >::getData ( ) const
template<typename T >
BALL_INLINE T & BALL::BinaryFileAdaptor< T >::getData ( )

Returns a mutable reference to the data stored in the adaptor

template<typename T >
BALL_INLINE bool BALL::BinaryFileAdaptor< T >::getSwapEndian ( ) const

return the swap_endian flag

Referenced by BALL::operator>>().

template<typename T>
BALL_INLINE void BALL::BinaryFileAdaptor< T >::setData ( const T &  data)
template<typename T >
BALL_INLINE void BALL::BinaryFileAdaptor< T >::setSwapEndian ( bool  swap_endian)

Set the swap_endian flag.


Member Data Documentation

template<typename T>
T BALL::BinaryFileAdaptor< T >::data_ [protected]
template<typename T>
bool BALL::BinaryFileAdaptor< T >::swap_endian_ [protected]