CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED > Class Template Reference

Templated base class for the Reader port. More...

#include <Reader_T.h>

Inheritance diagram for CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >:
Inheritance graph
[legend]
Collaboration diagram for CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Reader_T (void)
 Constructor.
virtual ~Reader_T (void)
 Destructor.
virtual void read_last (typename CCM_TYPE::seq_type::_out_type instances,::CCM_DDS::ReadInfoSeq_out infos)
virtual void read_all (typename CCM_TYPE::seq_type::_out_type instances,::CCM_DDS::ReadInfoSeq_out infos)
virtual void read_one_last (typename DDS_TYPE::value_type &an_instance,::CCM_DDS::ReadInfo_out info, const ::DDS::InstanceHandle_t &instance_handle)
virtual void read_one_all (const typename DDS_TYPE::value_type &an_instance, typename CCM_TYPE::seq_type::_out_type instances,::CCM_DDS::ReadInfoSeq_out infos, const ::DDS::InstanceHandle_t &instance_handle)
virtual ::CCM_DDS::QueryFilterfilter (void)
virtual void filter (const ::CCM_DDS::QueryFilter &filter)
void set_contentfilteredtopic_data (const char *libary_name, const char *profile_name, Getter_T< DDS_TYPE, CCM_TYPE, FIXED > *dds_get=0)
void set_impl (CCM_DDS_DataReader_i *reader)
DDS_ReturnCode_t passivate (void)

Private Member Functions

DDS_TYPE::data_reader * impl (void)
DDS_InstanceHandle_t check_handle (const typename DDS_TYPE::value_type &an_instance, const ::DDS::InstanceHandle_t &instance_handle)
void read_with_instance (typename DDS_TYPE::dds_seq_type &data, const ::DDS_InstanceHandle_t &lookup_hnd, DDS_SampleInfoSeq &sample_info)
void read_without_instance (typename DDS_TYPE::dds_seq_type &data, DDS_SampleInfoSeq &sample_info)
CORBA::ULong get_nr_valid_samples (const DDS_SampleInfoSeq &sample_info, bool determine_last=false)
void delete_datareader (::DDSSubscriber *sub)
void create_filter (const ::CCM_DDS::QueryFilter &filter)
void create_contentfilteredtopic (const ::CCM_DDS::QueryFilter &filter,::DDSSubscriber *sub)

Private Attributes

CCM_DDS_DataReader_ireader_
Getter_T< DDS_TYPE, CCM_TYPE,
FIXED > * 
dds_get_
ACE_CString library_name_
ACE_CString profile_name_
::DDSContentFilteredTopic * cft_

Detailed Description

template<typename DDS_TYPE, typename CCM_TYPE, bool FIXED>
class CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >

Templated base class for the Reader port.

Spec: Behavior of a Reader is as follows:

Note: This interface is the basis for a passive data reader (i.e. a component that just looks at the data as they are). It is also very useful for the reactive data getters (i.e. components that need to react to new data, whether they choose to get them in pull mode or be notified in push mode) in their initialization phase. This is the reason why all the DDS ports on the subscribing side will embed a Reader basic port.


Constructor & Destructor Documentation

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::Reader_T ( void   )  [inline]

Constructor.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::~Reader_T ( void   )  [inline, virtual]

Destructor.


Member Function Documentation

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
DDS_InstanceHandle_t CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::check_handle ( const typename DDS_TYPE::value_type &  an_instance,
const ::DDS::InstanceHandle_t &  instance_handle 
) [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::create_contentfilteredtopic ( const ::CCM_DDS::QueryFilter filter,
::DDSSubscriber *  sub 
) [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::create_filter ( const ::CCM_DDS::QueryFilter filter  )  [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::delete_datareader ( ::DDSSubscriber *  sub  )  [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::filter ( const ::CCM_DDS::QueryFilter filter  )  [inline, virtual]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
CCM_DDS::QueryFilter * CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::filter ( void   )  [inline]

Spec : QueryFilter gathers in a single structure a query and its related parameters. The QueryFilter attribute placed on the Reader interface acts as a filter for all the read operations made through a port where such a Reader is attached. An empty string query means no query. This query and its related parameters are for DDS use and must comply with DDS rules (c.f. DDS specification for more details). Any attempt to set the attribute with values that are not accepted by DDS will result in a InternalError exception.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
CORBA::ULong CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::get_nr_valid_samples ( const DDS_SampleInfoSeq &  sample_info,
bool  determine_last = false 
) [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
DDS_TYPE::data_reader * CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::impl ( void   )  [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
DDS_ReturnCode_t CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::passivate ( void   )  [inline]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_all ( typename CCM_TYPE::seq_type::_out_type  instances,
::CCM_DDS::ReadInfoSeq_out  infos 
) [inline, virtual]

Spec : read_all returns all samples of all instances. Any DDS error when reading the data will be reported by an InternalError exception.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_last ( typename CCM_TYPE::seq_type::_out_type  instances,
::CCM_DDS::ReadInfoSeq_out  infos 
) [inline, virtual]

Spec : read_last returns the last sample of all instances. Any DDS error when reading the data will be reported by an InternalError exception.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_one_all ( const typename DDS_TYPE::value_type &  an_instance,
typename CCM_TYPE::seq_type::_out_type  instances,
::CCM_DDS::ReadInfoSeq_out  infos,
const ::DDS::InstanceHandle_t &  instance_handle 
) [inline, virtual]

Spec : read_one_all returns all the samples of a given instance. The targeted instance is designated by the passed instance handle (instance_handle) if not DDS::HANDLE_NIL or by the key value in the passed data (datum) otherwise. If a valid handle is passed, it must be in accordance with the key value of the passed data otherwise an InternalError exception is raised with the returned DDS error code. More generally, any DDS error when reading the data will be reported by an InternalError exception. In case the instance does not exist (no data are registered for that instance in DDS), the exception NonExistent is raised.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_one_last ( typename DDS_TYPE::value_type &  an_instance,
::CCM_DDS::ReadInfo_out  info,
const ::DDS::InstanceHandle_t &  instance_handle 
) [inline, virtual]

Spec : read_one_last returns the last sample of a given instance. The targeted instance is designated by the passed instance handle (instance_handle) if not DDS::HANDLE_NIL or by the key value in the passed data (datum) otherwise. If a valid handle is passed, it must be in accordance with the key value of the passed data otherwise an InternalError exception is raised with the returned DDS error code. More generally, any DDS error when reading the data will be reported by an InternalError exception. In case the instance does not exist (no data are registered for that instance in DDS), the exception NonExistent is raised. In case of a keyless topic, the last value in the topic will be returned as DDS considers all values in such a topic as samples of one unique instance.

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_with_instance ( typename DDS_TYPE::dds_seq_type &  data,
const ::DDS_InstanceHandle_t &  lookup_hnd,
DDS_SampleInfoSeq &  sample_info 
) [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::read_without_instance ( typename DDS_TYPE::dds_seq_type &  data,
DDS_SampleInfoSeq &  sample_info 
) [inline, private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::set_contentfilteredtopic_data ( const char *  libary_name,
const char *  profile_name,
Getter_T< DDS_TYPE, CCM_TYPE, FIXED > *  dds_get = 0 
) [inline]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
void CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::set_impl ( CCM_DDS_DataReader_i reader  )  [inline]

Member Data Documentation

template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
::DDSContentFilteredTopic* CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::cft_ [private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
Getter_T<DDS_TYPE, CCM_TYPE, FIXED>* CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::dds_get_ [private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
ACE_CString CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::library_name_ [private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
ACE_CString CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::profile_name_ [private]
template<typename DDS_TYPE , typename CCM_TYPE , bool FIXED>
CCM_DDS_DataReader_i* CIAO::DDS4CCM::DDS_CCM::Reader_T< DDS_TYPE, CCM_TYPE, FIXED >::reader_ [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by  doxygen 1.6.2