summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/tests/SLOneByOne/Receiver/SL_OneByOne_Receiver_exec.h
diff options
context:
space:
mode:
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.h69
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);
}