Orocos Real-Time Toolkit  2.9.0
Classes | Public Types | Public Member Functions | List of all members
RTT::mqueue::binary_data_iarchive Class Reference

This archive is capable of loading objects of serialization level 1 and 2 from a binary, non-portable format. More...

#include <rtt/transports/mqueue/binary_data_archive.hpp>

Classes

struct  use_array_optimization
 We provide an optimized load for all fundamental types typedef serialization::is_bitwise_serializable<mpl::_1> use_array_optimization;. More...
 

Public Types

typedef char Elem
 
typedef binary_data_iarchive Archive
 
typedef boost::mpl::bool_< true > is_loading
 Loading Archive Concept::is_loading. More...
 
typedef boost::mpl::bool_< false > is_saving
 Loading Archive Concept::is_saving. More...
 

Public Member Functions

 binary_data_iarchive (std::streambuf &bsb)
 Constructor from a standard output stream. More...
 
 binary_data_iarchive (std::istream &is)
 Constructor from a standard stream buffer. More...
 
unsigned int get_library_version ()
 Loading Archive Concept::get_library_version() More...
 
void reset_object_address (const void *new_address, const void *old_address)
 Loading Archive Concept::reset_object_address(v,u) More...
 
void delete_created_pointers ()
 Loading Archive Concept::delete_created_pointers() More...
 
template<class T >
const boost::archive::detail::basic_pointer_iserializer * register_type (T *=NULL)
 Loading Archive Concept::register_type<T>() and ::register_type(u) More...
 
void load_object (void *t, const boost::archive::detail::basic_iserializer &bis)
 Note: not in LoadArchive concept but required when we use archive::load ! This function is only used when we call archive::load( *this, t);. More...
 
template<class T >
void load_override (T &t, BOOST_PFTO int)
 The standard type loading function. More...
 
template<class T >
void load_override (const boost::serialization::nvp< T > &t, int)
 These load_override functions are required to handle the nvt<T> cases in the serialization code. More...
 
template<class T >
void load_override (const boost::serialization::array< T > &t, int)
 Specialisation that covers a boost serialization array created with make_array() More...
 
template<class T >
binary_data_iarchiveoperator>> (T &t)
 Loading Archive Concept::operator>> More...
 
template<class T >
binary_data_iarchiveoperator& (T &t)
 Loading Archive Concept::operator&. More...
 
void load_binary (void *address, std::size_t count)
 Loading Archive Concept::load_binary(u, count) More...
 
template<class T >
binary_data_iarchiveload_a_type (T &t, boost::mpl::true_)
 Specialisation for writing out primitive types. More...
 
template<class T >
binary_data_iarchiveload_a_type (T &t, boost::mpl::false_)
 Specialisation for writing out composite types (objects). More...
 
template<class ValueType >
void load_array (boost::serialization::array< ValueType > &a, unsigned int)
 The optimized save_array dispatches to save_binary. More...
 
int getArchiveSize ()
 Helper method to say how much we read. More...
 

Detailed Description

This archive is capable of loading objects of serialization level 1 and 2 from a binary, non-portable format.

See also
binary_data_oarchive

Definition at line 106 of file binary_data_archive.hpp.

Member Typedef Documentation

Definition at line 112 of file binary_data_archive.hpp.

Definition at line 111 of file binary_data_archive.hpp.

typedef boost::mpl::bool_<true> RTT::mqueue::binary_data_iarchive::is_loading

Loading Archive Concept::is_loading.

Definition at line 117 of file binary_data_archive.hpp.

typedef boost::mpl::bool_<false> RTT::mqueue::binary_data_iarchive::is_saving

Loading Archive Concept::is_saving.

Definition at line 121 of file binary_data_archive.hpp.

Constructor & Destructor Documentation

RTT::mqueue::binary_data_iarchive::binary_data_iarchive ( std::streambuf &  bsb)
inline

Constructor from a standard output stream.

Parameters
osThe stream to serialize from.

Definition at line 127 of file binary_data_archive.hpp.

RTT::mqueue::binary_data_iarchive::binary_data_iarchive ( std::istream &  is)
inline

Constructor from a standard stream buffer.

Parameters
osThe buffer to serialize from.

Definition at line 136 of file binary_data_archive.hpp.

Member Function Documentation

void RTT::mqueue::binary_data_iarchive::delete_created_pointers ( )
inline

Loading Archive Concept::delete_created_pointers()

Definition at line 157 of file binary_data_archive.hpp.

unsigned int RTT::mqueue::binary_data_iarchive::get_library_version ( )
inline

Loading Archive Concept::get_library_version()

Returns
This library's version.

Definition at line 145 of file binary_data_archive.hpp.

int RTT::mqueue::binary_data_iarchive::getArchiveSize ( )
inline

Helper method to say how much we read.

Definition at line 354 of file binary_data_archive.hpp.

template<class T >
binary_data_iarchive& RTT::mqueue::binary_data_iarchive::load_a_type ( T &  t,
boost::mpl::true_   
)
inline

Specialisation for writing out primitive types.

Parameters
tprimitive data (bool, int,...)
Returns
*this

Definition at line 301 of file binary_data_archive.hpp.

References load_binary().

Referenced by load_override().

template<class T >
binary_data_iarchive& RTT::mqueue::binary_data_iarchive::load_a_type ( T &  t,
boost::mpl::false_   
)
inline

Specialisation for writing out composite types (objects).

Parameters
ta serializable class or struct.
Returns
*this

Definition at line 312 of file binary_data_archive.hpp.

template<class ValueType >
void RTT::mqueue::binary_data_iarchive::load_array ( boost::serialization::array< ValueType > &  a,
unsigned  int 
)
inline

The optimized save_array dispatches to save_binary.

Definition at line 343 of file binary_data_archive.hpp.

References load_binary().

void RTT::mqueue::binary_data_iarchive::load_binary ( void *  address,
std::size_t  count 
)
inline

Loading Archive Concept::load_binary(u, count)

Parameters
addressThe place in memory where data must be written.
countThe number of bytes to load.

Definition at line 253 of file binary_data_archive.hpp.

Referenced by load_a_type(), and load_array().

void RTT::mqueue::binary_data_iarchive::load_object ( void *  t,
const boost::archive::detail::basic_iserializer &  bis 
)
inline

Note: not in LoadArchive concept but required when we use archive::load ! This function is only used when we call archive::load( *this, t);.

Parameters
x
bos

Definition at line 174 of file binary_data_archive.hpp.

template<class T >
void RTT::mqueue::binary_data_iarchive::load_override ( T &  t,
BOOST_PFTO  int 
)
inline

The standard type loading function.

It forwards any type T to the correct internal load_a_type function.

Definition at line 186 of file binary_data_archive.hpp.

References load_a_type().

Referenced by load_override(), and operator>>().

template<class T >
void RTT::mqueue::binary_data_iarchive::load_override ( const boost::serialization::nvp< T > &  t,
int   
)
inline

These load_override functions are required to handle the nvt<T> cases in the serialization code.

GCC won't compile that code without these overloads. Others may be required as well and may need to be added later on.

Definition at line 204 of file binary_data_archive.hpp.

References load_override().

template<class T >
void RTT::mqueue::binary_data_iarchive::load_override ( const boost::serialization::array< T > &  t,
int   
)
inline

Specialisation that covers a boost serialization array created with make_array()

Parameters
t
Returns
*this

Definition at line 220 of file binary_data_archive.hpp.

template<class T >
binary_data_iarchive& RTT::mqueue::binary_data_iarchive::operator& ( T &  t)
inline

Loading Archive Concept::operator&.

Parameters
tThe type to load.
Returns
*this

Definition at line 244 of file binary_data_archive.hpp.

References operator>>().

template<class T >
binary_data_iarchive& RTT::mqueue::binary_data_iarchive::operator>> ( T &  t)
inline

Loading Archive Concept::operator>>

Parameters
tThe type to load.
Returns
*this

Definition at line 233 of file binary_data_archive.hpp.

References load_override().

Referenced by operator&().

template<class T >
const boost::archive::detail::basic_pointer_iserializer* RTT::mqueue::binary_data_iarchive::register_type ( T *  = NULL)
inline

Loading Archive Concept::register_type<T>() and ::register_type(u)

Parameters
Thedata type to register in this archive.
Returns

Definition at line 166 of file binary_data_archive.hpp.

void RTT::mqueue::binary_data_iarchive::reset_object_address ( const void *  new_address,
const void *  old_address 
)
inline

Loading Archive Concept::reset_object_address(v,u)

Parameters
new_address
old_address

Definition at line 152 of file binary_data_archive.hpp.


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