OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | Private Attributes | List of all members
OpenDDS::Federator::UpdateListener< DataType, ReaderType > Class Template Reference

#include <UpdateListener_T.h>

Inheritance diagram for OpenDDS::Federator::UpdateListener< DataType, ReaderType >:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::Federator::UpdateListener< DataType, ReaderType >:
Collaboration graph
[legend]

Public Member Functions

 UpdateListener (UpdateProcessor< DataType > &processor)
 
virtual ~UpdateListener ()
 
virtual void on_requested_deadline_missed (DDS::DataReader_ptr reader, const DDS::RequestedDeadlineMissedStatus &status)
 
virtual void on_requested_incompatible_qos (DDS::DataReader_ptr reader, const DDS::RequestedIncompatibleQosStatus &status)
 
virtual void on_liveliness_changed (DDS::DataReader_ptr reader, const DDS::LivelinessChangedStatus &status)
 
virtual void on_subscription_matched (DDS::DataReader_ptr reader, const DDS::SubscriptionMatchedStatus &status)
 
virtual void on_sample_rejected (DDS::DataReader_ptr reader, const DDS::SampleRejectedStatus &status)
 
virtual void on_data_available (DDS::DataReader_ptr reader)
 
virtual void on_sample_lost (DDS::DataReader_ptr reader, const DDS::SampleLostStatus &status)
 
void federationId (const TAO_DDS_DCPSFederationId &id)
 Access our Federation Id value. More...
 
const TAO_DDS_DCPSFederationIdfederationId () const
 
void stop ()
 
void join ()
 
- Public Member Functions inherited from DDS::DataReaderListener
void on_requested_deadline_missed (in DataReader reader, in RequestedDeadlineMissedStatus status)
 
void on_requested_incompatible_qos (in DataReader reader, in RequestedIncompatibleQosStatus status)
 
void on_sample_rejected (in DataReader reader, in SampleRejectedStatus status)
 
void on_liveliness_changed (in DataReader reader, in LivelinessChangedStatus status)
 
void on_data_available (in DataReader reader)
 
void on_subscription_matched (in DataReader reader, in SubscriptionMatchedStatus status)
 
void on_sample_lost (in DataReader reader, in SampleLostStatus status)
 
- Public Member Functions inherited from OpenDDS::DCPS::LocalObjectBase
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
virtual CORBA::ULong _refcount_value () const
 
- Public Member Functions inherited from CORBA::LocalObject
virtual ~LocalObject (void)
 
virtual CORBA::Boolean _non_existent (void)
 
virtual char * _repository_id (void)
 
virtual CORBA::InterfaceDef_ptr _get_interface (void)
 
virtual CORBA::Object_ptr _get_component (void)
 
virtual void _create_request (CORBA::Context_ptr ctx, const char *operation, CORBA::NVList_ptr arg_list, CORBA::NamedValue_ptr result, CORBA::Request_ptr &request, CORBA::Flags req_flags)
 
virtual void _create_request (CORBA::Context_ptr ctx, const char *operation, CORBA::NVList_ptr arg_list, CORBA::NamedValue_ptr result, CORBA::ExceptionList_ptr exclist, CORBA::ContextList_ptr ctxtlist, CORBA::Request_ptr &request, CORBA::Flags req_flags)
 
virtual CORBA::Request_ptr _request (const char *operation)
 
CORBA::Policy_ptr _get_policy (CORBA::PolicyType type)
 
CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type)
 
CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add)
 
CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types)
 
CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies)
 
virtual CORBA::ULong _hash (CORBA::ULong maximum)
 
virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj)
 
virtual CORBA::ORB_ptr _get_orb (void)
 
virtual TAO::ObjectKey_key (void)
 
- Public Member Functions inherited from CORBA::Object
virtual ~Object (void)
 
virtual TAO_Abstract_ServantBase_servant (void) const
 
virtual CORBA::Boolean _is_collocated (void) const
 
virtual CORBA::Boolean _is_local (void) const
 
 Object (TAO_Stub *p, CORBA::Boolean collocated=false, TAO_Abstract_ServantBase *servant=0, TAO_ORB_Core *orb_core=0)
 
 Object (IOP::IOR *ior, TAO_ORB_Core *orb_core)
 
virtual TAO_Stub_stubobj (void) const
 
virtual TAO_Stub_stubobj (void)
 
virtual void _proxy_broker (TAO::Object_Proxy_Broker *proxy_broker)
 
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr)
 
CORBA::Boolean is_evaluated (void) const
 
TAO_ORB_Coreorb_core (void) const
 
IOP::IORsteal_ior (void)
 
const IOP::IORior (void) const
 
virtual bool can_convert_to_ior (void) const
 
virtual char * convert_to_ior (bool use_omg_ior_format, const char *ior_prefix) const
 
void _decr_refcount (void)
 
virtual CORBA::Boolean _is_a (const char *logical_type_id)
 
virtual const char * _interface_repository_id (void) const
 
CORBA::Policy_ptr _get_policy (CORBA::PolicyType type)
 
CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type)
 
CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add)
 
CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types)
 
CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies)
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Attributes

TAO_DDS_DCPSFederationId federationId_
 Our Federation Id value. More...
 
UpdateReceiver< DataType > receiver_
 Manager object to delegate sample processing to. More...
 

Additional Inherited Members

- Public Types inherited from OpenDDS::DCPS::LocalObject< DDS::DataReaderListener >
typedef DDS::DataReaderListener ::_ptr_type _ptr_type
 
typedef DDS::DataReaderListener ::_var_type _var_type
 
- Public Types inherited from CORBA::LocalObject
typedef LocalObject_ptr _ptr_type
 
typedef LocalObject_var _var_type
 
typedef LocalObject_out _out_type
 
- Public Types inherited from CORBA::Object
typedef Object_ptr _ptr_type
 
typedef Object_var _var_type
 
typedef Object_out _out_type
 
- Static Public Member Functions inherited from OpenDDS::DCPS::LocalObject< DDS::DataReaderListener >
static _ptr_type _narrow (CORBA::Object_ptr obj)
 
- Static Public Member Functions inherited from CORBA::LocalObject
static LocalObject_ptr _duplicate (LocalObject_ptr obj)
 
static LocalObject_ptr _nil (void)
 
static LocalObject_ptr _narrow (CORBA::Object_ptr obj)
 
- Static Public Member Functions inherited from CORBA::Object
static CORBA::Boolean marshal (const Object_ptr x, TAO_OutputCDR &cdr)
 
static void _tao_any_destructor (void *)
 
static CORBA::Boolean is_nil_i (CORBA::Object_ptr obj)
 
static void tao_object_initialize (Object *)
 
static CORBA::Object_ptr _duplicate (CORBA::Object_ptr obj)
 
static CORBA::Object_ptr _nil (void)
 
static CORBA::Object_ptr _narrow (CORBA::Object_ptr obj)
 
- Protected Member Functions inherited from CORBA::LocalObject
 LocalObject (void)
 
- Protected Member Functions inherited from CORBA::Object
 Object (int dummy=0)
 
TAO::Object_Proxy_Brokerproxy_broker () const
 
- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 
- Protected Attributes inherited from CORBA::Object
ACE_Atomic_Op< TAO_SYNCH_MUTEX, unsigned long > refcount_
 

Detailed Description

template<class DataType, class ReaderType>
class OpenDDS::Federator::UpdateListener< DataType, ReaderType >

Definition at line 26 of file UpdateListener_T.h.

Constructor & Destructor Documentation

◆ UpdateListener()

template<class DataType, class ReaderType >
OpenDDS::Federator::UpdateListener< DataType, ReaderType >::UpdateListener ( UpdateProcessor< DataType > &  processor)

Definition at line 18 of file UpdateListener_T.cpp.

20  receiver_(processor)
21 {
23  ACE_DEBUG((LM_DEBUG,
24  ACE_TEXT("(%P|%t) UpdateListener::UpdateListener\n")));
25  }
26 }
#define ACE_DEBUG(X)
UpdateReceiver< DataType > receiver_
Manager object to delegate sample processing to.
const RepoKey NIL_REPOSITORY
Definition: Federator.idl:36
TAO_DDS_DCPSFederationId federationId_
Our Federation Id value.
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ ~UpdateListener()

template<class DataType , class ReaderType >
OpenDDS::Federator::UpdateListener< DataType, ReaderType >::~UpdateListener ( )
virtual

Definition at line 29 of file UpdateListener_T.cpp.

30 {
32  ACE_DEBUG((LM_DEBUG,
33  ACE_TEXT("(%P|%t) UpdateListener::~UpdateListener\n")));
34  }
35 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

Member Function Documentation

◆ federationId() [1/2]

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::federationId ( const TAO_DDS_DCPSFederationId id)

Access our Federation Id value.

Definition at line 39 of file UpdateListener_T.cpp.

40 {
41  this->federationId_ = id;
42 }
TAO_DDS_DCPSFederationId federationId_
Our Federation Id value.

◆ federationId() [2/2]

template<class DataType , class ReaderType >
const TAO_DDS_DCPSFederationId & OpenDDS::Federator::UpdateListener< DataType, ReaderType >::federationId ( ) const

Definition at line 46 of file UpdateListener_T.cpp.

47 {
48  return this->federationId_;
49 }
TAO_DDS_DCPSFederationId federationId_
Our Federation Id value.

◆ join()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::join ( )

Definition at line 186 of file UpdateListener_T.cpp.

187 {
188  this->receiver_.wait();
189 }
UpdateReceiver< DataType > receiver_
Manager object to delegate sample processing to.

◆ on_data_available()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_data_available ( DDS::DataReader_ptr  reader)
virtual

Definition at line 53 of file UpdateListener_T.cpp.

55 {
57  ACE_DEBUG((LM_DEBUG,
58  ACE_TEXT("(%P|%t) UpdateListener::on_data_available\n")));
59  }
60 
61  try {
62  // Get the type specific reader.
63  typename ReaderType::_var_type dataReader = ReaderType::_narrow(reader);
64 
65  if (CORBA::is_nil(dataReader.in())) {
66  ACE_ERROR((LM_ERROR,
67  ACE_TEXT("(%P|%t) UpdateListener::on_data_available - _narrow failed.\n")));
68  return;
69  }
70 
71  // Process all available data.
72  while (true) {
73  using namespace OpenDDS::DCPS;
74  unique_ptr<DataType> sample(new DataType);
76  DDS::ReturnCode_t status = dataReader->read_next_sample(*sample, *info);
77 
78  if (status == DDS::RETCODE_OK) {
79  // Check if we should process the sample.
80  if (this->federationId_.overridden() &&
81  this->federationId_.id() != sample->sender) {
82 
83  // Delegate processing to the federation manager.
84  this->receiver_.add(move(sample), move(info));
85  }
86 
87  } else if (status == DDS::RETCODE_NO_DATA) {
88  break;
89 
90  } else {
91  ACE_ERROR((LM_ERROR,
92  ACE_TEXT("(%P|%t) ERROR: UpdateListener::on_data_available: read status==%d\n"),
93  status));
94  break;
95  }
96  }
97 
98  } catch (const CORBA::Exception& ex) {
99  ex._tao_print_exception("(%P|%t) UpdateListener::read - ");
100  }
101 }
#define ACE_DEBUG(X)
UpdateReceiver< DataType > receiver_
Manager object to delegate sample processing to.
#define ACE_ERROR(X)
T::rv_reference move(T &p)
Definition: unique_ptr.h:141
TAO_DDS_DCPSFederationId federationId_
Our Federation Id value.
ACE_TEXT("TCP_Factory")
const ReturnCode_t RETCODE_NO_DATA
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
const ReturnCode_t RETCODE_OK
void _tao_print_exception(const char *info, FILE *f=stdout) const
Definition: Exception.cpp:82
Boolean is_nil(T x)
void id(RepoKey fedId)

◆ on_liveliness_changed()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_liveliness_changed ( DDS::DataReader_ptr  reader,
const DDS::LivelinessChangedStatus status 
)
virtual

Definition at line 131 of file UpdateListener_T.cpp.

134 {
136  ACE_DEBUG((LM_DEBUG,
137  ACE_TEXT("(%P|%t) UpdateListener::on_liveliness_changed\n")));
138  }
139 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ on_requested_deadline_missed()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_requested_deadline_missed ( DDS::DataReader_ptr  reader,
const DDS::RequestedDeadlineMissedStatus status 
)
virtual

Definition at line 105 of file UpdateListener_T.cpp.

108 {
110  ACE_DEBUG((LM_DEBUG,
111  ACE_TEXT("(%P|%t) ")
112  ACE_TEXT("Federatorer::on_requested_deadline_missed\n")));
113  }
114 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ on_requested_incompatible_qos()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_requested_incompatible_qos ( DDS::DataReader_ptr  reader,
const DDS::RequestedIncompatibleQosStatus status 
)
virtual

Definition at line 118 of file UpdateListener_T.cpp.

121 {
123  ACE_DEBUG((LM_DEBUG,
124  ACE_TEXT("(%P|%t) UpdateListener::")
125  ACE_TEXT("on_requested_incompatible_qos\n")));
126  }
127 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ on_sample_lost()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_sample_lost ( DDS::DataReader_ptr  reader,
const DDS::SampleLostStatus status 
)
virtual

Definition at line 167 of file UpdateListener_T.cpp.

170 {
172  ACE_DEBUG((LM_DEBUG,
173  ACE_TEXT("(%P|%t) UpdateListener::on_sample_lost\n")));
174  }
175 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ on_sample_rejected()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_sample_rejected ( DDS::DataReader_ptr  reader,
const DDS::SampleRejectedStatus status 
)
virtual

Definition at line 155 of file UpdateListener_T.cpp.

158 {
160  ACE_DEBUG((LM_DEBUG,
161  ACE_TEXT("(%P|%t) UpdateListener::on_sample_rejected\n")));
162  }
163 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ on_subscription_matched()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::on_subscription_matched ( DDS::DataReader_ptr  reader,
const DDS::SubscriptionMatchedStatus status 
)
virtual

Definition at line 143 of file UpdateListener_T.cpp.

146 {
148  ACE_DEBUG((LM_DEBUG,
149  ACE_TEXT("(%P|%t) UpdateListener::on_subscription_matched\n")));
150  }
151 }
#define ACE_DEBUG(X)
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ stop()

template<class DataType , class ReaderType >
void OpenDDS::Federator::UpdateListener< DataType, ReaderType >::stop ( void  )

Definition at line 179 of file UpdateListener_T.cpp.

Referenced by OpenDDS::Federator::UpdateListener< OpenDDS::Federator::ParticipantUpdate, ParticipantUpdateDataReader >::stop().

180 {
181  this->receiver_.stop();
182 }
UpdateReceiver< DataType > receiver_
Manager object to delegate sample processing to.

Member Data Documentation

◆ federationId_

template<class DataType, class ReaderType>
TAO_DDS_DCPSFederationId OpenDDS::Federator::UpdateListener< DataType, ReaderType >::federationId_
private

Our Federation Id value.

Definition at line 69 of file UpdateListener_T.h.

◆ receiver_

template<class DataType, class ReaderType>
UpdateReceiver<DataType> OpenDDS::Federator::UpdateListener< DataType, ReaderType >::receiver_
private

Manager object to delegate sample processing to.

Definition at line 72 of file UpdateListener_T.h.


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