39 #ifndef ORO_ARRAYPARTDATASOURCE_HPP_ 40 #define ORO_ARRAYPARTDATASOURCE_HPP_ 72 typedef boost::intrusive_ptr<ArrayPartDataSource<T> >
shared_ptr;
84 : mref(&ref), mindex(index), mparent(parent), mmax(max)
90 unsigned int i = mindex->
get();
98 unsigned int i = mindex->
get();
106 unsigned int i = mindex->
get();
115 unsigned int i = mindex->
get();
123 unsigned int i = mindex->
get();
130 if (mparent) mparent->updated();
139 if ( replace[
this] != 0 ) {
145 assert( mparent->getRawPointer() != 0 &&
"Can't copy part of rvalue datasource.");
146 if ( mparent->getRawPointer() == 0 )
147 throw std::runtime_error(
"PartDataSource.hpp: Can't copy part of rvalue datasource.");
150 int offset =
reinterpret_cast<unsigned char*
>(
mref ) - reinterpret_cast<unsigned char*>(mparent->getRawPointer());
virtual result_t get() const =0
AssignableDataSource< T >::value_t * mref
base::DataSourceBase::shared_ptr mparent
ArrayPartDataSource(typename AssignableDataSource< T >::reference_t ref, DataSource< unsigned int >::shared_ptr index, base::DataSourceBase::shared_ptr parent, unsigned int max)
boost::call_traits< value_t >::reference reference_t
DataSource< unsigned int >::shared_ptr mindex
AssignableDataSource< T >::const_reference_t rvalue() const
boost::intrusive_ptr< ArrayPartDataSource< T > > shared_ptr
DataSource< T >::result_t value() const
virtual DataSource< T > * copy(std::map< const base::DataSourceBase *, base::DataSourceBase * > &alreadyCloned) const =0
virtual ArrayPartDataSource< T > * copy(std::map< const base::DataSourceBase *, base::DataSourceBase * > &replace) const
virtual ArrayPartDataSource< T > * clone() const
DataSource< T >::value_t value_t
DataSource< T >::const_reference_t const_reference_t
boost::intrusive_ptr< DataSourceBase > shared_ptr
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
boost::call_traits< value_t >::param_type param_t