Orocos Real-Time Toolkit  2.5.0
Public Types | Public Member Functions | Protected Types | Protected Attributes
RTT::types::BoolTypeInfo Struct Reference

Write boolean as 'true' or 'false'. More...

#include <rtt/typekit/BoolTypeInfo.hpp>

Inheritance diagram for RTT::types::BoolTypeInfo:
RTT::types::TemplateTypeInfo< bool > RTT::types::PrimitiveTypeInfo< bool, false > RTT::types::TypeInfo

List of all members.

Public Types

typedef bool UserType
 The given T parameter is the type for reading DataSources.
typedef Property< bool >
::DataSourceType 
PropertyType
 When Properties of T are constructed, they are non-const, non-reference.
typedef bool DataType
 The given T parameter is the type of the DataSources.

Public Member Functions

virtual std::ostream & write (std::ostream &os, base::DataSourceBase::shared_ptr in) const
 Output this datasource as a human readable string.
virtual std::istream & read (std::istream &os, base::DataSourceBase::shared_ptr out) const
 Read a new value for this datasource from a human readable string.
virtual bool composeType (base::DataSourceBase::shared_ptr source, base::DataSourceBase::shared_ptr result) const
 Compose a type (target) from a DataSourceBase (source) containing its members.
virtual
base::DataSourceBase::shared_ptr 
decomposeType (base::DataSourceBase::shared_ptr source) const
 This default implementation sets up a PropertyBag which is passed to decomposeTypeImpl().
virtual bool decomposeType (base::DataSourceBase::shared_ptr source, PropertyBag &targetbag) const
virtual bool composeTypeImpl (const PropertyBag &source, typename internal::AssignableDataSource< bool >::reference_t result) const
 User, implement this function in case you want to control reading the XML data format.
virtual bool decomposeTypeImpl (typename internal::AssignableDataSource< bool >::const_reference_t source, PropertyBag &targetbag) const
 User, implement this function in case you want to control writing the XML data format.
base::InputPortInterfaceinputPort (std::string const &name) const
 Returns a new InputPort<T> object where T is the type represented by this TypeInfo object.
base::OutputPortInterfaceoutputPort (std::string const &name) const
 Returns a new OutputPort<T> object where T is the type represented by this TypeInfo object.
base::ChannelElementBase::shared_ptr buildDataStorage (ConnPolicy const &policy) const
 Creates single data or buffered storage for this type.
base::ChannelElementBase::shared_ptr buildChannelOutput (base::InputPortInterface &port) const
 Register a protocol for data transport over a network.
base::ChannelElementBase::shared_ptr buildChannelInput (base::OutputPortInterface &port) const
 Register a protocol for data transport over a network.
bool installTypeInfoObject ()
 Installs the type info object in the global data source type info handler.
base::AttributeBasebuildConstant (std::string name, base::DataSourceBase::shared_ptr dsb) const
 Build a non modifyable instance of this type.
base::AttributeBasebuildVariable (std::string name) const
 Build a non modifyable instance of this type.
base::AttributeBasebuildAttribute (std::string name, base::DataSourceBase::shared_ptr in) const
 Build an Attribute of this type.
base::AttributeBasebuildAlias (std::string name, base::DataSourceBase::shared_ptr in) const
 build an alias with b as the value.
base::DataSourceBase::shared_ptr buildActionAlias (base::ActionInterface *action, base::DataSourceBase::shared_ptr in) const
 Returns a DataSource that first executes an action and returns the result of another data source.
virtual const std::string & getTypeName () const
 Return unique the type name.
virtual base::PropertyBasebuildProperty (const std::string &name, const std::string &desc, base::DataSourceBase::shared_ptr source=0) const
 Build a Property of this type.
virtual
base::DataSourceBase::shared_ptr 
buildValue () const
 Build a internal::ValueDataSource of this type.
virtual
base::DataSourceBase::shared_ptr 
buildReference (void *ptr) const
 Build a internal::ReferenceDataSource of this type, pointing to the given pointer.
virtual bool isStreamable () const
 Returns true if this type is directly streamable using read()/write() or toString()/fromString().
TypeInfo::TypeId getTypeId () const
 Register a protocol for data transport over a network.
const char * getTypeIdName () const
 Register a protocol for data transport over a network.
Type building/factory functions

Used to create objects that hold data of a certain type.

virtual base::AttributeBasebuildConstant (std::string name, base::DataSourceBase::shared_ptr, int sizehint) const
 Build a non modifyable instance of this type.
virtual base::AttributeBasebuildVariable (std::string name, int sizehint) const
 Build a modifyable instance of this type.
virtual bool resize (base::DataSourceBase::shared_ptr arg, int size) const
 Tries to resize a data source in case it's a resizable sequence.
virtual
base::DataSourceBase::shared_ptr 
construct (const std::vector< base::DataSourceBase::shared_ptr > &args) const
 Constructor syntax: construct a internal::DataSource which returns an instance of data depending on the given arguments.
virtual
base::DataSourceBase::shared_ptr 
convert (base::DataSourceBase::shared_ptr arg) const
 Automatic conversion: convert a internal::DataSource to this type.
virtual void addConstructor (TypeBuilder *tb)
 Add a constructor/convertor object.
Conversion to/from text

Used to convert data to human readable text and vice versa.

virtual std::string toString (base::DataSourceBase::shared_ptr in) const
 Usability function which converts data to a string.
virtual bool fromString (const std::string &value, base::DataSourceBase::shared_ptr out) const
 Usability function which converts a string to data.
Inspecting data structures.

Used to write a complex type to an external representation, like XML.

virtual std::vector< std::string > getMemberNames () const
 Returns the list of struct member names of this type.
virtual
base::DataSourceBase::shared_ptr 
getMember (base::DataSourceBase::shared_ptr item, const std::string &name) const
 Returns a member of a given data source struct identified by its name.
virtual
base::DataSourceBase::shared_ptr 
getMember (base::DataSourceBase::shared_ptr item, base::DataSourceBase::shared_ptr id) const
 Returns a member of a given data source struct identified by a data source id.
virtual
base::DataSourceBase::shared_ptr 
convertType (base::DataSourceBase::shared_ptr source) const
 Specialize this function to return an alternate type which represents this one in a compatible way.

Protected Types

typedef std::vector
< TypeBuilder * > 
Constructors
typedef std::vector
< TypeTransporter * > 
Transporters

Protected Attributes

const std::string tname
Constructors constructors
Transporters transporters

Distribution of objects

Used to transport data over a network.

bool addProtocol (int protocol_id, TypeTransporter *tt)
 Register a protocol for data transport over a network.
TypeTransportergetProtocol (int protocol_id) const
 Returns this type's transport for a given protocol.
bool hasProtocol (int protocol_id) const
 Check if this type is transporable over a given protocol.
std::vector< int > getTransportNames () const
 Return a list of protocols that have transporters.
typedef const std::type_info * TypeId
 Register a protocol for data transport over a network.
void migrateProtocols (TypeInfo *orig)
 Migrates all protocols present in orig to this type info object.

Detailed Description

Write boolean as 'true' or 'false'.

Definition at line 52 of file BoolTypeInfo.hpp.


Member Function Documentation

base::DataSourceBase::shared_ptr RTT::types::PrimitiveTypeInfo< bool , use_ostream >::buildActionAlias ( base::ActionInterface action,
base::DataSourceBase::shared_ptr  source 
) const [inline, virtual, inherited]

Returns a DataSource that first executes an action and returns the result of another data source.

If source is an AssignableDataSource, an AssignableDataSource is returned of the same type, otherwise, a plain DataSource is returned.

Implements RTT::types::TypeInfo.

Definition at line 129 of file PrimitiveTypeInfo.hpp.

base::AttributeBase* RTT::types::PrimitiveTypeInfo< bool , use_ostream >::buildAlias ( std::string  name,
base::DataSourceBase::shared_ptr  b 
) const [inline, virtual, inherited]

build an alias with b as the value.

If b is of the wrong type, 0 will be returned..

Implements RTT::types::TypeInfo.

Definition at line 121 of file PrimitiveTypeInfo.hpp.

base::AttributeBase* RTT::types::PrimitiveTypeInfo< bool , use_ostream >::buildConstant ( std::string  name,
base::DataSourceBase::shared_ptr   
) const [inline, virtual, inherited]

Build a non modifyable instance of this type.

Parameters:
sizehintFor variable size instances, use it to hint the size of the instance.

Implements RTT::types::TypeInfo.

Definition at line 87 of file PrimitiveTypeInfo.hpp.

AttributeBase * RTT::TypeInfo::buildConstant ( std::string  name,
base::DataSourceBase::shared_ptr  dsb,
int  sizehint 
) const [virtual, inherited]

Build a non modifyable instance of this type.

Parameters:
sizehintFor variable size instances, use it to hint the size of the instance.

Definition at line 63 of file TypeInfo.cpp.

base::ChannelElementBase::shared_ptr RTT::types::TemplateTypeInfo< bool , false >::buildDataStorage ( ConnPolicy const &  policy) const [inline, virtual, inherited]

Creates single data or buffered storage for this type.

Parameters:
policyDescribes the kind of storage requested by the user
Returns:
a storage element.

Reimplemented from RTT::types::PrimitiveTypeInfo< bool, false >.

Definition at line 159 of file TemplateTypeInfo.hpp.

AttributeBase * RTT::TypeInfo::buildVariable ( std::string  name,
int  sizehint 
) const [virtual, inherited]

Build a modifyable instance of this type.

Parameters:
sizehintFor variable size instances, use it to hint the size of the instance.

Reimplemented in RTT::types::CArrayTypeInfo< T, has_ostream >.

Definition at line 59 of file TypeInfo.cpp.

base::AttributeBase* RTT::types::PrimitiveTypeInfo< bool , use_ostream >::buildVariable ( std::string  name) const [inline, virtual, inherited]

Build a non modifyable instance of this type.

Parameters:
sizehintFor variable size instances, use it to hint the size of the instance.

Implements RTT::types::TypeInfo.

Definition at line 100 of file PrimitiveTypeInfo.hpp.

virtual bool RTT::types::TemplateTypeInfo< bool , false >::composeType ( base::DataSourceBase::shared_ptr  source,
base::DataSourceBase::shared_ptr  target 
) const [inline, virtual, inherited]

Compose a type (target) from a DataSourceBase (source) containing its members.

The default behavior tries to assign source to target. If that fails, it tries to decompose target into its members and update the members of target with the contents of source.

The default implementation in TemplateTypeInfo works for most types, but can be overridden in case there are multiple versions/possibilities to make a target from a source. For example, in order to support legacy formats or in order to do the inverse of decomposeType().

Parameters:
sourceA data source of the same type as target OR a PropertyBag that contains the parts of target to be refreshed.
targetA data source of the same type as this TypeInfo object which contains the data to be updated from source.
Returns:
true if source could be updated, false otherwise.
See also:
types::propertyDecomposition and types::typeDecomposition for the inverse function, decomposing a type into datasources and hierarchical properties.
decomposeType to do the inverse operation.

Reimplemented from RTT::types::PrimitiveTypeInfo< bool, false >.

Definition at line 104 of file TemplateTypeInfo.hpp.

DataSourceBase::shared_ptr RTT::TypeInfo::construct ( const std::vector< base::DataSourceBase::shared_ptr > &  args) const [virtual, inherited]

Constructor syntax: construct a internal::DataSource which returns an instance of data depending on the given arguments.

When args is empty, the default 'variable' is returned.

Reimplemented in RTT::types::EmptyTypeInfo.

Definition at line 79 of file TypeInfo.cpp.

References RTT::base::AttributeBase::getDataSource().

Automatic conversion: convert a internal::DataSource to this type.

For example, for converting float -> double. If no valid conversion was found, returns arg again, otherwise, a new data source.

Definition at line 110 of file TypeInfo.cpp.

Referenced by RTT::types::CArrayTypeInfo< T, has_ostream >::getMember(), RTT::internal::AssignableDataSource< T >::update(), and RTT::internal::AssignableDataSource< T >::updateAction().

Specialize this function to return an alternate type which represents this one in a compatible way.

For example, a short converts to an long or an enum to an int or a string.

Returns:
null if this type is not convertible to anything else.
Deprecated:
by decomposeType. We want to rename convertType to decomposeType. This function is left here for transitional purposes.

Definition at line 134 of file TypeInfo.cpp.

virtual base::DataSourceBase::shared_ptr RTT::types::TemplateTypeInfo< bool , false >::decomposeType ( base::DataSourceBase::shared_ptr  source) const [inline, virtual, inherited]

This default implementation sets up a PropertyBag which is passed to decomposeTypeImpl().

It is advised to implement that function and to leave this function as-is, unless you don't want to return a PropertyBag, but another data type.

Reimplemented from RTT::types::PrimitiveTypeInfo< bool, false >.

Definition at line 129 of file TemplateTypeInfo.hpp.

virtual bool RTT::types::TemplateTypeInfo< bool , false >::decomposeTypeImpl ( typename internal::AssignableDataSource< bool >::const_reference_t  source,
PropertyBag targetbag 
) const [inline, virtual, inherited]

User, implement this function in case you want to control writing the XML data format.

Add the structural elements of source to targetbag.

Definition at line 152 of file TemplateTypeInfo.hpp.

DataSourceBase::shared_ptr RTT::TypeInfo::getMember ( base::DataSourceBase::shared_ptr  item,
const std::string &  name 
) const [virtual, inherited]

Returns a member of a given data source struct identified by its name.

Parameters:
itemThe item of which to return a reference to a member
nameThe name of a member within item. Is a name of a member in case of a struct or an index number in case of a sequence.
Returns:
null if no such member exists, an assignable datasource referencing that member otherwise.

** Strong typed data **

for( set i = 0; i <=10; set i = i + 1) { value[i] = i; // sequence index, runtime structure value.i = i; // part name, browse static structure } set frame.pos = vector(a,b,c); // getMember("pos") set frame.pos[3] = vector(a,b,c); // getMember("pos")->getMember(3) set frame[3].pos = vector(a,b,c); // getMember(3)->getMember("pos") set frame[i].pos = vector(a,b,c); // getMember( $i )->getMember("pos") set frame["tool"].pos = vector(a,b,c); // getMember("tool") xx set frame[arg].pos = vector(a,b,c);// getMember( arg )->getMember("pos")

Reimplemented in RTT::types::CArrayTypeInfo< T, has_ostream >, RTT::types::BoostArrayTypeInfo< T, has_ostream >, and RTT::types::StructTypeInfo< T, has_ostream >.

Definition at line 230 of file TypeInfo.cpp.

Referenced by RTT::base::DataSourceBase::getMember().

Returns a member of a given data source struct identified by a data source id.

Parameters:
itemThe item of which to return a member
idOr a string data source containing the name of a member if item is a struct, Or an unsigned int data source containing the index of an element if item is a sequence

** Strong typed data **

for( set i = 0; i <=10; set i = i + 1) { value[i] = i; // sequence index, runtime structure value.i = i; // part name, browse static structure } set frame.pos = vector(a,b,c); // getMember("pos") set frame.pos[3] = vector(a,b,c); // getMember("pos")->getMember(3) set frame[3].pos = vector(a,b,c); // getMember(3)->getMember("pos") set frame[i].pos = vector(a,b,c); // getMember( $i )->getMember("pos") set frame["tool"].pos = vector(a,b,c); // getMember("tool") xx set frame[arg].pos = vector(a,b,c);// getMember( arg )->getMember("pos")

Reimplemented in RTT::types::CArrayTypeInfo< T, has_ostream >, and RTT::types::BoostArrayTypeInfo< T, has_ostream >.

Definition at line 252 of file TypeInfo.cpp.

vector< string > RTT::TypeInfo::getMemberNames ( ) const [virtual, inherited]

Returns the list of struct member names of this type.

In case this type is not a struct, returns an empty list.

Reimplemented in RTT::types::CArrayTypeInfo< T, has_ostream >, RTT::types::BoostArrayTypeInfo< T, has_ostream >, and RTT::types::StructTypeInfo< T, has_ostream >.

Definition at line 225 of file TypeInfo.cpp.

Referenced by RTT::base::DataSourceBase::getMemberNames().

TypeTransporter * RTT::TypeInfo::getProtocol ( int  protocol_id) const [inherited]
bool RTT::types::PrimitiveTypeInfo< bool , use_ostream >::installTypeInfoObject ( ) [inline, virtual, inherited]

Installs the type info object in the global data source type info handler.

This will be called by the TypeInfoRepository, prior to registering this type. If installation fails the TypeInfoRepository will delete this object, and all its associated constructors.

Return values:
trueinstallation succeeded. This object should not be deleted during the execution of the current process.
falseinstallation failed. This object is not used and may be deleted.

Implements RTT::types::TypeInfo.

Definition at line 62 of file PrimitiveTypeInfo.hpp.

void RTT::TypeInfo::migrateProtocols ( TypeInfo orig) [protected, inherited]

Migrates all protocols present in orig to this type info object.

It is meant as a helper when a type info object is replaced by a new instance.

Precondition:
This type has no transports registered yet, ie, it is newly constructed.

Definition at line 190 of file TypeInfo.cpp.

Referenced by RTT::types::PrimitiveTypeInfo< std::vector< T >, use_ostream >::installTypeInfoObject(), and RTT::types::TypeInfoName< T >::installTypeInfoObject().

virtual std::istream& RTT::types::BoolTypeInfo::read ( std::istream &  os,
base::DataSourceBase::shared_ptr  out 
) const [inline, virtual]

Read a new value for this datasource from a human readable string.

The default does nothing.

Reimplemented from RTT::types::PrimitiveTypeInfo< bool, false >.

Definition at line 69 of file BoolTypeInfo.hpp.

References RTT::internal::AssignableDataSource< T >::set(), and RTT::base::DataSourceBase::updated().

bool RTT::TypeInfo::resize ( base::DataSourceBase::shared_ptr  arg,
int  size 
) const [virtual, inherited]

Tries to resize a data source in case it's a resizable sequence.

Returns:
true if the resizing could be done, false otherwise.

Definition at line 139 of file TypeInfo.cpp.

virtual std::ostream& RTT::types::BoolTypeInfo::write ( std::ostream &  os,
base::DataSourceBase::shared_ptr  in 
) const [inline, virtual]

Output this datasource as a human readable string.

The default just writes the type name in parentheses to os.

Reimplemented from RTT::types::PrimitiveTypeInfo< bool, false >.

Definition at line 59 of file BoolTypeInfo.hpp.

References RTT::internal::DataSource< T >::value().


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