Orocos Real-Time Toolkit
2.8.3
|
This archive is capable of decomposing objects of serialization level 1 and 2 into part data sources. More...
#include <rtt/types/type_discovery.hpp>
Public Types | |
typedef std::vector< base::DataSourceBase::shared_ptr > | Parts |
typedef std::vector< std::string > | PartNames |
typedef char | Elem |
typedef boost::mpl::bool_< true > | is_loading |
Saving Archive Concept::is_loading. More... | |
typedef boost::mpl::bool_< false > | is_saving |
Saving Archive Concept::is_saving. More... | |
Public Member Functions | |
type_discovery (base::DataSourceBase::shared_ptr parent) | |
Constructor which inspects part names and creates part data sources. More... | |
type_discovery () | |
Constructor which only introspects the part names. More... | |
base::DataSourceBase::shared_ptr | getMember (const std::string name) |
template<class T > | |
void | discover (T &t) |
This function discovers all parts of a serializable struct and creates a DataSource object for each member of that struct. More... | |
template<class T > | |
base::DataSourceBase::shared_ptr | discoverMember (T &t, const std::string name) |
This function discovers a single part of a serializable struct and returns an assignable datasource to that member of that struct, or a null ptr if no such member exists or if the member is not assignable. More... | |
template<class T > | |
bool | referenceMember (internal::Reference *ref, T &t, const std::string name) |
This function discovers a single part of a serializable struct and sets a reference to that member of that struct. 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 *x, const boost::archive::detail::basic_oserializer &bos) |
Note: not in LoadArchive concept but required when we use archive::load ! More... | |
template<class T > | |
type_discovery & | operator>> (T &t) |
Saving Archive Concept::operator<<. More... | |
template<class T > | |
type_discovery & | operator& (T &t) |
Saving Archive Concept::operator&. More... | |
template<class T > | |
type_discovery & | load_a_type (T &t, boost::mpl::true_) |
Specialisation for writing out primitive types. More... | |
template<class T > | |
type_discovery & | load_a_type (T &t, boost::mpl::false_) |
Specialisation for writing out composite types (objects). More... | |
template<class T > | |
type_discovery & | load_a_type (const boost::serialization::array< T > &t, boost::mpl::false_) |
Specialisation that converts a boost serialization array into a RTT types carray. More... | |
template<class T , std::size_t N> | |
type_discovery & | load_a_type (boost::array< T, N > &t, boost::mpl::false_) |
Specialisation that converts a boost::array into a RTT types carray. More... | |
template<class T > | |
type_discovery & | load_a_type (const T *&, boost::mpl::false_) |
We do not support pointer types. More... | |
template<class T > | |
type_discovery & | load_a_type (const boost::serialization::nvp< T > &t, boost::mpl::false_) |
special treatment for name-value pairs. More... | |
Public Attributes | |
base::DataSourceBase::shared_ptr | mparent |
The parent struct we're deserializing. More... | |
Parts | mparts |
The parts of the parent struct. More... | |
PartNames | mnames |
The names of the parts of the parent struct. More... | |
std::string | membername |
If non-empty, only discover the member with this name. More... | |
internal::Reference * | mref |
If non-empty, use this reference to the member with name membername. More... | |
This archive is capable of decomposing objects of serialization level 1 and 2 into part data sources.
Definition at line 101 of file type_discovery.hpp.
typedef char RTT::types::type_discovery::Elem |
Definition at line 132 of file type_discovery.hpp.
typedef boost::mpl::bool_<true> RTT::types::type_discovery::is_loading |
Saving Archive Concept::is_loading.
Definition at line 136 of file type_discovery.hpp.
typedef boost::mpl::bool_<false> RTT::types::type_discovery::is_saving |
Saving Archive Concept::is_saving.
Definition at line 140 of file type_discovery.hpp.
typedef std::vector<std::string> RTT::types::type_discovery::PartNames |
Definition at line 110 of file type_discovery.hpp.
typedef std::vector<base::DataSourceBase::shared_ptr> RTT::types::type_discovery::Parts |
Definition at line 109 of file type_discovery.hpp.
|
inline |
Constructor which inspects part names and creates part data sources.
Definition at line 146 of file type_discovery.hpp.
|
inline |
Constructor which only introspects the part names.
No parts will be created.
Definition at line 155 of file type_discovery.hpp.
|
inline |
Loading Archive Concept::delete_created_pointers()
Definition at line 227 of file type_discovery.hpp.
|
inline |
This function discovers all parts of a serializable struct and creates a DataSource object for each member of that struct.
Use getMember() afterwards to retrieve the DataSource of each member.
Definition at line 174 of file type_discovery.hpp.
Referenced by discoverMember(), RTT::types::StructTypeInfo< T, has_ostream >::getMemberNames(), and referenceMember().
|
inline |
This function discovers a single part of a serializable struct and returns an assignable datasource to that member of that struct, or a null ptr if no such member exists or if the member is not assignable.
Definition at line 188 of file type_discovery.hpp.
References discover().
Referenced by RTT::types::StructTypeInfo< T, has_ostream >::getMember().
|
inline |
Loading Archive Concept::get_library_version()
Definition at line 215 of file type_discovery.hpp.
|
inline |
Definition at line 160 of file type_discovery.hpp.
|
inline |
Specialisation for writing out primitive types.
t | primitive data (bool, int,...) |
Definition at line 276 of file type_discovery.hpp.
Referenced by load_a_type(), and operator>>().
|
inline |
Specialisation for writing out composite types (objects).
t | a serializable class or struct. |
Definition at line 291 of file type_discovery.hpp.
References load_a_type().
|
inline |
Specialisation that converts a boost serialization array into a RTT types carray.
t |
Definition at line 306 of file type_discovery.hpp.
|
inline |
Specialisation that converts a boost::array into a RTT types carray.
t |
Definition at line 319 of file type_discovery.hpp.
|
inline |
|
inline |
special treatment for name-value pairs.
Since all types pass here, we take some decisions early
Definition at line 342 of file type_discovery.hpp.
References membername, and RTT::internal::Reference::setReference().
|
inline |
Note: not in LoadArchive concept but required when we use archive::load !
x | |
bos |
Definition at line 243 of file type_discovery.hpp.
|
inline |
Saving Archive Concept::operator&.
t | The type to load. |
Definition at line 265 of file type_discovery.hpp.
References operator>>().
|
inline |
Saving Archive Concept::operator<<.
t | The type to load. |
Definition at line 254 of file type_discovery.hpp.
References load_a_type().
Referenced by operator&().
|
inline |
This function discovers a single part of a serializable struct and sets a reference to that member of that struct.
Definition at line 201 of file type_discovery.hpp.
References discover().
Referenced by RTT::types::StructTypeInfo< T, has_ostream >::getMember().
|
inline |
Loading Archive Concept::register_type<T>() and ::register_type(u)
The | data type to register in this archive. |
Definition at line 236 of file type_discovery.hpp.
|
inline |
Loading Archive Concept::reset_object_address(v,u)
new_address | |
old_address |
Definition at line 222 of file type_discovery.hpp.
std::string RTT::types::type_discovery::membername |
If non-empty, only discover the member with this name.
Definition at line 124 of file type_discovery.hpp.
Referenced by load_a_type().
PartNames RTT::types::type_discovery::mnames |
The names of the parts of the parent struct.
Definition at line 119 of file type_discovery.hpp.
Referenced by RTT::types::StructTypeInfo< T, has_ostream >::getMemberNames().
base::DataSourceBase::shared_ptr RTT::types::type_discovery::mparent |
The parent struct we're deserializing.
Definition at line 107 of file type_discovery.hpp.
Parts RTT::types::type_discovery::mparts |
The parts of the parent struct.
Definition at line 114 of file type_discovery.hpp.
internal::Reference* RTT::types::type_discovery::mref |
If non-empty, use this reference to the member with name membername.
Definition at line 130 of file type_discovery.hpp.