Orocos Real-Time Toolkit  2.5.0
Classes | Public Types | Public Member Functions
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>

List of all members.

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.
typedef boost::mpl::bool_< false > is_saving
 Loading Archive Concept::is_saving.

Public Member Functions

 binary_data_iarchive (std::streambuf &bsb)
 Constructor from a standard output stream.
 binary_data_iarchive (std::istream &is)
 Constructor from a standard stream buffer.
unsigned int get_library_version ()
 Loading Archive Concept::get_library_version()
void reset_object_address (const void *new_address, const void *old_address)
 Loading Archive Concept::reset_object_address(v,u)
void delete_created_pointers ()
 Loading Archive Concept::delete_created_pointers()
template<class T >
const
boost::archive::detail::basic_pointer_iserializer * 
register_type (T *=NULL)
 Loading Archive Concept::register_type<T>() and ::register_type(u)
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);.
template<class T >
void load_override (T &t, BOOST_PFTO int)
 The standard type loading function.
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.
template<class T >
void load_override (const boost::serialization::array< T > &t, int)
 Specialisation that covers a boost serialization array created with make_array()
template<class T >
binary_data_iarchiveoperator>> (T &t)
 Loading Archive Concept::operator>>
template<class T >
binary_data_iarchiveoperator& (T &t)
 Loading Archive Concept::operator&.
void load_binary (void *address, std::size_t count)
 Loading Archive Concept::load_binary(u, count)
template<class T >
binary_data_iarchiveload_a_type (T &t, boost::mpl::true_)
 Specialisation for writing out primitive types.
template<class T >
binary_data_iarchiveload_a_type (T &t, boost::mpl::false_)
 Specialisation for writing out composite types (objects).
template<class ValueType >
void load_array (boost::serialization::array< ValueType > &a, unsigned int)
 The optimized save_array dispatches to save_binary.
int getArchiveSize ()
 Helper method to say how much we read.

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 98 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 119 of file binary_data_archive.hpp.

Constructor from a standard stream buffer.

Parameters:
osThe buffer to serialize from.

Definition at line 128 of file binary_data_archive.hpp.


Member Function Documentation

Loading Archive Concept::get_library_version()

Returns:
This library's version.

Definition at line 137 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 287 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 298 of file binary_data_archive.hpp.

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 239 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 166 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 178 of file binary_data_archive.hpp.

References load_a_type().

Referenced by 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 196 of file binary_data_archive.hpp.

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 207 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 230 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 219 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 158 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 144 of file binary_data_archive.hpp.


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