diff options
Diffstat (limited to 'CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h')
-rw-r--r-- | CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h | 69 |
1 files changed, 46 insertions, 23 deletions
diff --git a/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h index 6b712bd005b..0016ca59dd1 100644 --- a/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h +++ b/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h @@ -13,30 +13,55 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "tao/LocalObject.h" -#include "ace/OS_NS_Thread.h" -#include "ace/Reactor.h" #include "ace/Task.h" +#include "ace/Reactor.h" namespace CIAO_SL_OneByOne_Receiver_Impl { - typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::Boolean> Atomic_Boolean; - typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, ACE_thread_t> Atomic_ThreadId; + typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::Boolean > Atomic_Boolean; class Receiver_exec_i; + class read_action_Generator + : public ACE_Event_Handler + { + public: + read_action_Generator (Receiver_exec_i &callback); + + ~read_action_Generator (); + + /// Handle the timeout. + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + + private: + /// Maintains a handle that actually process the event + Receiver_exec_i &pulse_callback_; + + }; + class RECEIVER_EXEC_Export PortStatusListener_exec_i + : public virtual ::CCM_DDS::CCM_PortStatusListener, + public virtual ::CORBA::LocalObject + { + public: + PortStatusListener_exec_i (void); + virtual ~PortStatusListener_exec_i (void); + + virtual void + on_requested_deadline_missed ( + ::DDS::DataReader_ptr the_reader, + const ::DDS::RequestedDeadlineMissedStatus & status); - //============================================================ - // StateListener_exec_i - //============================================================ + virtual void + on_sample_lost ( + ::DDS::DataReader_ptr the_reader, + const ::DDS::SampleLostStatus & status); + }; class RECEIVER_EXEC_Export StateListener_exec_i : public virtual ::CCM_DDS::TestTopic::CCM_StateListener, public virtual ::CORBA::LocalObject { public: - StateListener_exec_i (Atomic_Boolean &, - Atomic_Boolean &, - Atomic_Boolean &, - Atomic_Boolean &, - Atomic_ThreadId &); + StateListener_exec_i (Atomic_Boolean &, Atomic_Boolean &, Atomic_Boolean &, Atomic_Boolean &); virtual ~StateListener_exec_i (void); virtual void @@ -56,16 +81,12 @@ namespace CIAO_SL_OneByOne_Receiver_Impl const ::TestTopic & datum, const ::CCM_DDS::ReadInfo & info); private: - Atomic_Boolean &on_many_updates_; + Atomic_Boolean &no_operation_; Atomic_Boolean &on_creation_; Atomic_Boolean &on_one_update_; Atomic_Boolean &on_deletion_; - Atomic_ThreadId &thread_id_; - }; + }; - //============================================================ - // Receiver_exec_i - //============================================================ class RECEIVER_EXEC_Export Receiver_exec_i : public virtual Receiver_Exec, public virtual ::CORBA::LocalObject @@ -90,17 +111,19 @@ namespace CIAO_SL_OneByOne_Receiver_Impl virtual void ccm_activate (void); virtual void ccm_passivate (void); virtual void ccm_remove (void); + void read_all(void); private: ::SL_OneByOne::CCM_Receiver_Context_var context_; - - Atomic_Boolean on_many_updates_; - Atomic_Boolean updater_data_; + ::CCM_DDS::TestTopic::Reader_var reader_; + read_action_Generator * ticker_; + CORBA::ULong rate_; + Atomic_Boolean no_operation_; + Atomic_Boolean updater_data_; Atomic_Boolean on_creation_; Atomic_Boolean on_one_update_; Atomic_Boolean on_deletion_; - Atomic_ThreadId thread_id_listener_; - }; +}; extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr create_SL_OneByOne_Receiver_Impl (void); } |