summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2010-12-09 09:53:32 +0000
committermsmit <msmit@remedy.nl>2010-12-09 09:53:32 +0000
commitd87b8af93d05aaae2b11939b9d8566342826b80f (patch)
tree2318c44d43ac74a27f709ac0dad6a12d4111852b
parent3a4602703105fc6b4cf3e1d6e6a5dacc5e2dd9e8 (diff)
downloadATCD-d87b8af93d05aaae2b11939b9d8566342826b80f.tar.gz
Thu Dec 9 09:54:08 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl: * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc: * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h: * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp: * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h: * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp: * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl: * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc: * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp: * connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp: Resolved test errors by checking whether the last sample is available on the receiver side. * connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc: Resolved unresolved externals on windows builds.
-rw-r--r--CIAO/ChangeLog18
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl3
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc31
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp108
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h44
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp161
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h37
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl3
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc25
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp18
-rw-r--r--CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp27
-rwxr-xr-xCIAO/connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc2
12 files changed, 346 insertions, 131 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index aa9f3b3b006..14fd468dae2 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,21 @@
+Thu Dec 9 09:54:08 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp:
+ * connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp:
+ Resolved test errors by checking whether the last sample is available on the
+ receiver side.
+
+ * connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc:
+ Resolved unresolved externals on windows builds.
+
Thu Dec 9 08:19:14 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
* tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl
index 9736cd74bac..2bc1cfea791 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.idl
@@ -9,6 +9,7 @@
#define RECEIVER_IDL
#include "Connector/RG_LateBinding_Connector.idl"
+#include "Base/Reader_Starter.idl"
module RG_LateBinding
{
@@ -17,7 +18,7 @@ module RG_LateBinding
port RG_LateBindingTestConnector::DDS_Get info_get;
port RG_LateBindingTestConnector::DDS_Read info_read;
- attribute unsigned short iterations;
+ provides ReaderStarter start_reading;
};
};
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc
index 6d0f39b0a37..0f30d0f6602 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver.mpc
@@ -30,8 +30,10 @@ project (RG_LateBindingReceiver_lem_gen) : ciaoidldefaults, dds4ccm {
}
project (RG_LateBindingReceiver_lem_stub) : ccm_svnt, dds4ccm_base {
- after += RG_LateBindingReceiver_lem_gen RG_LateBindingReceiver_stub RG_LateBindingConnector_stub RG_LateBindingBase_stub
- libs += Receiver_stub RG_LateBindingConnector_stub RG_LateBindingBase_stub
+ after += RG_LateBindingReceiver_lem_gen RG_LateBindingReceiver_stub RG_LateBindingConnector_stub \
+ RG_LateBindingBase_stub Reader_Starter_stub
+ libs += Receiver_stub RG_LateBindingConnector_stub RG_LateBindingBase_stub \
+ Reader_Starter_stub
libpaths += ../lib
libout = ../lib
includes += ..
@@ -56,8 +58,11 @@ project (RG_LateBindingReceiver_lem_stub) : ccm_svnt, dds4ccm_base {
}
project (RG_LateBindingReceiver_stub) : ccm_stub, dds4ccm_base {
- after += RG_LateBindingReceiver_idl_gen RG_LateBindingConnector_stub RG_LateBindingBase_stub RG_LateBindingConnector_lem_gen
- libs += RG_LateBindingConnector_stub RG_LateBindingBase_stub
+ after += RG_LateBindingReceiver_idl_gen RG_LateBindingConnector_stub \
+ RG_LateBindingBase_stub RG_LateBindingConnector_lem_gen \
+ Reader_Starter_stub Reader_Starter_lem_stub
+ libs += RG_LateBindingConnector_stub RG_LateBindingBase_stub \
+ Reader_Starter_stub
libpaths += ../lib
libout = ../lib
includes += ..
@@ -84,10 +89,12 @@ project (RG_LateBindingReceiver_stub) : ccm_stub, dds4ccm_base {
project (RG_LateBindingReceiver_exec) : ciao_executor, dds4ccm_lem_stub {
after += RG_LateBindingReceiver_lem_stub RG_LateBindingReceiver_stub \
RG_LateBindingBase_stub RG_LateBindingConnector_stub \
- RG_LateBindingConnector_lem_stub
+ RG_LateBindingConnector_lem_stub \
+ Reader_Starter_lem_stub Reader_Starter_stub
sharedname = Receiver_exec
libs += Receiver_stub Receiver_lem_stub RG_LateBindingBase_stub \
- RG_LateBindingConnector_stub RG_LateBindingConnector_lem_stub
+ RG_LateBindingConnector_stub RG_LateBindingConnector_lem_stub \
+ Reader_Starter_lem_stub Reader_Starter_stub
libpaths += ../lib
libout = ../lib
includes += ..
@@ -113,9 +120,17 @@ project (RG_LateBindingReceiver_exec) : ciao_executor, dds4ccm_lem_stub {
project (RG_LateBindingReceiver_svnt) : ciao_servant, dds4ccm_lem_stub, dds4ccm_skel {
- after += RG_LateBindingReceiver_lem_stub RG_LateBindingBase_stub RG_LateBindingConnector_stub RG_LateBindingConnector_svnt RG_LateBindingReceiver_exec RG_LateBindingConnector_lem_stub
+ after += RG_LateBindingReceiver_lem_stub RG_LateBindingBase_stub \
+ RG_LateBindingConnector_stub RG_LateBindingConnector_svnt \
+ RG_LateBindingReceiver_exec RG_LateBindingConnector_lem_stub \
+ Reader_Starter_stub \
+ Reader_Starter_svnt Reader_Starter_lem_stub
sharedname = Receiver_svnt
- libs += Receiver_stub Receiver_lem_stub RG_LateBindingBase_stub RG_LateBindingConnector_stub RG_LateBindingConnector_svnt Receiver_exec RG_LateBindingConnector_lem_stub
+ libs += Receiver_stub Receiver_lem_stub RG_LateBindingBase_stub \
+ RG_LateBindingConnector_stub RG_LateBindingConnector_svnt \
+ Receiver_exec RG_LateBindingConnector_lem_stub \
+ Reader_Starter_stub Reader_Starter_svnt \
+ Reader_Starter_lem_stub
libpaths += ../lib
libout = ../lib
includes += ..
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp
index 5cffcb10e03..ae5f460f826 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.cpp
@@ -96,12 +96,46 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
}
/**
+ * Facet Executor Implementation Class: reader_start_exec_i
+ */
+
+ reader_start_exec_i::reader_start_exec_i (
+ ::RG_LateBinding::CCM_Receiver_Context_ptr ctx,
+ Receiver_exec_i &callback)
+ : ciao_context_ (
+ ::RG_LateBinding::CCM_Receiver_Context::_duplicate (ctx))
+ , callback_ (callback)
+ {
+ }
+
+ reader_start_exec_i::~reader_start_exec_i (void)
+ {
+ }
+
+ // Operations from ::ReaderStarter
+
+ void
+ reader_start_exec_i::start_read (void)
+ {
+ this->callback_.start_read ();
+ }
+
+ void
+ reader_start_exec_i::set_reader_properties (::CORBA::UShort nr_keys,
+ ::CORBA::UShort nr_iterations)
+ {
+ this->callback_.keys (nr_keys);
+ this->callback_.iterations (nr_iterations);
+ }
+
+ /**
* Component Executor Implementation Class: Receiver_exec_i
*/
Receiver_exec_i::Receiver_exec_i (void)
: impl_ (0)
- , iterations_ (0)
+ , keys_ (5)
+ , iterations_ (0)
{
}
@@ -111,27 +145,30 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
}
// Supported operations and attributes.
- ACE_Reactor*
- Receiver_exec_i::reactor (void)
+
+ void
+ Receiver_exec_i::start_read (void)
{
- ACE_Reactor* reactor = 0;
- ::CORBA::Object_var ccm_object =
- this->ciao_context_->get_CCM_object();
- if (! ::CORBA::is_nil (ccm_object.in ()))
- {
- ::CORBA::ORB_var orb = ccm_object->_get_orb ();
- if (! ::CORBA::is_nil (orb.in ()))
- {
- reactor = orb->orb_core ()->reactor ();
- }
- }
- if (reactor == 0)
- {
- throw ::CORBA::INTERNAL ();
- }
- return reactor;
+ ACE_NEW_THROW_EX (this->impl_,
+ RG_LateBinding_Receiver_impl (
+ this->ciao_context_.in (),
+ this->iterations_,
+ this->keys_),
+ ::CORBA::INTERNAL ());
+ this->impl_->start ();
+ }
+
+ void
+ Receiver_exec_i::keys (::CORBA::UShort keys)
+ {
+ this->keys_ = keys;
}
+ void
+ Receiver_exec_i::iterations (::CORBA::UShort iterations)
+ {
+ this->iterations_ = iterations;
+ }
// Component attributes and port operations.
::CCM_DDS::CCM_PortStatusListener_ptr
@@ -174,17 +211,25 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
this->ciao_info_read_status_.in ());
}
- ::CORBA::UShort
- Receiver_exec_i::iterations (void)
+ ::CCM_ReaderStarter_ptr
+ Receiver_exec_i::get_start_reading (void)
{
- return this->iterations_;
- }
+ if ( ::CORBA::is_nil (this->ciao_reader_start_.in ()))
+ {
+ reader_start_exec_i *tmp = 0;
+ ACE_NEW_RETURN (
+ tmp,
+ reader_start_exec_i (
+ this->ciao_context_.in (),
+ *this),
+ ::CCM_ReaderStarter::_nil ());
- void
- Receiver_exec_i::iterations (
- const ::CORBA::UShort iterations)
- {
- this->iterations_ = iterations;
+ this->ciao_reader_start_ = tmp;
+ }
+
+ return
+ ::CCM_ReaderStarter::_duplicate (
+ this->ciao_reader_start_.in ());
}
// Operations from Components::SessionComponent.
@@ -211,12 +256,7 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
void
Receiver_exec_i::ccm_activate (void)
{
- ACE_NEW_THROW_EX (this->impl_,
- RG_LateBinding_Receiver_impl (
- this->ciao_context_.in (),
- this->iterations ()),
- ::CORBA::INTERNAL ());
- this->impl_->start (this->reactor ());
+ /* Your code here. */
}
void
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h
index b4290a25119..9f7a3d81bc4 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_exec.h
@@ -41,6 +41,8 @@
namespace CIAO_RG_LateBinding_Receiver_Impl
{
class RG_LateBinding_Receiver_impl;
+ class Receiver_exec_i;
+
/**
* Provider Executor Implementation Class: info_get_status_exec_i
*/
@@ -100,6 +102,36 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
};
/**
+ * Provider Executor Implementation Class: reader_start_exec_i
+ */
+
+ class reader_start_exec_i
+ : public virtual ::CCM_ReaderStarter,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ reader_start_exec_i (
+ ::RG_LateBinding::CCM_Receiver_Context_ptr ctx,
+ Receiver_exec_i &callback);
+ virtual ~reader_start_exec_i (void);
+
+ //@{
+ /** Operations and attributes from ::ReaderStarter. */
+
+ virtual
+ void start_read (void);
+
+ virtual
+ void set_reader_properties (::CORBA::UShort nr_keys,
+ ::CORBA::UShort nr_iterations);
+ //@}
+
+ private:
+ ::RG_LateBinding::CCM_Receiver_Context_var ciao_context_;
+ Receiver_exec_i &callback_;
+ };
+
+ /**
* Component Executor Implementation Class: Receiver_exec_i
*/
@@ -125,9 +157,8 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
virtual ::CCM_DDS::CCM_PortStatusListener_ptr
get_info_read_status (void);
- virtual ::CORBA::UShort iterations (void);
-
- virtual void iterations (::CORBA::UShort iterations);
+ virtual ::CCM_ReaderStarter_ptr
+ get_start_reading (void);
//@}
//@{
@@ -141,7 +172,10 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
//@{
/** User defined public operations. */
+ void keys (::CORBA::UShort keys);
+ void iterations (::CORBA::UShort iterations);
+ void start_read (void);
//@}
private:
@@ -151,14 +185,16 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
/** Component attributes. */
::CCM_DDS::CCM_PortStatusListener_var ciao_info_get_status_;
::CCM_DDS::CCM_PortStatusListener_var ciao_info_read_status_;
+ ::CCM_ReaderStarter_var ciao_reader_start_;
RG_LateBinding_Receiver_impl *impl_;
- ::CORBA::UShort iterations_;
//@}
//@{
/** User defined members. */
+ ::CORBA::UShort keys_;
+ ::CORBA::UShort iterations_;
//@}
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp
index 6ec82cd2208..21f2513058a 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.cpp
@@ -1,34 +1,33 @@
// $Id$
#include "RG_LateBinding_Receiver_impl.h"
+#include "tao/ORB_Core.h"
#include "ace/Reactor.h"
namespace CIAO_RG_LateBinding_Receiver_Impl
{
+
/**
- * Timeout_Handler
+ * Check last
*/
-
- Timeout_Handler::Timeout_Handler (RG_LateBinding_Receiver_impl &callback)
+ LastSampleChecker::LastSampleChecker (RG_LateBinding_Receiver_impl &callback,
+ const ::CORBA::UShort &iterations)
: callback_ (callback)
+ , iterations_ (iterations)
+ {
+ }
+
+ LastSampleChecker::~LastSampleChecker ()
{
}
int
- Timeout_Handler::handle_timeout (const ACE_Time_Value &, const void *arg)
+ LastSampleChecker::handle_timeout (const ACE_Time_Value &, const void *)
{
- unsigned long assingment = reinterpret_cast<unsigned long> (arg);
- if (assingment == 0)
- {
- this->callback_.test_exception ();
- this->callback_.set_topic_name_reader ();
- this->callback_.start_reading ();
- }
- else if (assingment == 1)
+ ACE_DEBUG ((LM_DEBUG, "Checking if last sample "
+ "is available in DDS...\n"));
+ if (this->callback_.check_last ())
{
- this->callback_.set_topic_name_getter ();
- this->callback_.start_getting ();
- this->callback_.set_topic_name_reader (true);
- this->callback_.set_topic_name_getter (true);
+ this->callback_.start_read ();
}
return 0;
}
@@ -38,23 +37,109 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
*/
RG_LateBinding_Receiver_impl::RG_LateBinding_Receiver_impl (
::RG_LateBinding::CCM_Receiver_Context_ptr ctx,
- ::CORBA::UShort expected)
+ const ::CORBA::UShort & iterations,
+ const ::CORBA::UShort & keys)
: ciao_context_ (
::RG_LateBinding::CCM_Receiver_Context::_duplicate (ctx))
- , expected_ (expected)
+ , iterations_ (iterations)
+ , keys_ (keys)
{
- ACE_NEW_THROW_EX (this->to_handler_read_,
- Timeout_Handler (*this),
- ::CORBA::INTERNAL ());
- ACE_NEW_THROW_EX (this->to_handler_get_,
- Timeout_Handler (*this),
- ::CORBA::INTERNAL ());
}
RG_LateBinding_Receiver_impl::~RG_LateBinding_Receiver_impl ()
{
- delete this->to_handler_read_;
- delete this->to_handler_get_;
+ delete this->checker_;
+ }
+
+ ACE_Reactor*
+ RG_LateBinding_Receiver_impl::reactor (void)
+ {
+ ACE_Reactor* reactor = 0;
+ ::CORBA::Object_var ccm_object =
+ this->ciao_context_->get_CCM_object();
+ if (! ::CORBA::is_nil (ccm_object.in ()))
+ {
+ ::CORBA::ORB_var orb = ccm_object->_get_orb ();
+ if (! ::CORBA::is_nil (orb.in ()))
+ {
+ reactor = orb->orb_core ()->reactor ();
+ }
+ }
+ if (reactor == 0)
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ return reactor;
+ }
+
+ bool
+ RG_LateBinding_Receiver_impl::check_last (void)
+ {
+ ::RG_LateBinding::RG_LateBindingTestConnector::Reader_var reader =
+ this->ciao_context_->get_connection_info_read_data ();
+ try
+ {
+ RG_LateBindingTest datum;
+ ::CCM_DDS::ReadInfo readinfo;
+ char key[10];
+ ACE_OS::sprintf (key, "KEY_%d", this->keys_);
+ datum.key = CORBA::string_dup (key);
+ reader->read_one_last (
+ datum,
+ readinfo,
+ ::DDS::HANDLE_NIL);
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::check_last - "
+ "last iteration <%02d> - <%02d>\n",
+ datum.iteration,
+ this->iterations_));
+ return datum.iteration >= this->iterations_;
+ }
+ catch (const ::CCM_DDS::InternalError &)
+ {
+ }
+ catch (const ::CCM_DDS::NonExistent &)
+ {
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Receiver_exec_i::check_last: "
+ "ERROR: Unexpected exception caught\n"));
+ }
+ return false;
+ }
+
+ void
+ RG_LateBinding_Receiver_impl::start (void)
+ {
+ this->test_exception ();
+ this->set_topic_name_reader ();
+
+ ACE_NEW_THROW_EX (this->checker_,
+ LastSampleChecker (*this,
+ this->iterations_),
+ ::CORBA::NO_MEMORY ());
+ if (this->reactor ()->schedule_timer (this->checker_,
+ 0,
+ ACE_Time_Value (1, 0),
+ ACE_Time_Value (1, 0)) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "Receiver_exec_i::schedule_timer - "
+ "ERROR: Error while starting LastSampleChecker\n"));
+ }
+ }
+
+ void
+ RG_LateBinding_Receiver_impl::start_read ()
+ {
+ if (this->checker_)
+ {
+ this->reactor ()->cancel_timer (this->checker_);
+ }
+ this->start_reading ();
+ this->set_topic_name_getter ();
+ this->start_getting ();
+ this->set_topic_name_reader (true);
+ this->set_topic_name_getter (true);
}
void
@@ -153,7 +238,7 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
RG_LateBindingTestSeq samples;
::CCM_DDS::ReadInfoSeq readinfo_seq;
reader->read_all (samples, readinfo_seq);
- this->check_samples ("read", samples, this->expected_);
+ this->check_samples ("read", samples, this->iterations_ * this->keys_);
}
catch (const CORBA::Exception &e)
{
@@ -314,26 +399,4 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
}
}
}
-
- void
- RG_LateBinding_Receiver_impl::start (
- ACE_Reactor *reactor)
- {
- if (reactor->schedule_timer (
- this->to_handler_read_,
- reinterpret_cast<const void *> (0),
- ACE_Time_Value (8, 0)) == -1)
- {
- ACE_ERROR ((LM_ERROR, "RG_LateBinding_Receiver_impl::start - "
- "Error scheduling timer"));
- }
- if (reactor->schedule_timer (
- this->to_handler_get_,
- reinterpret_cast<const void *> (1),
- ACE_Time_Value (10, 0)) == -1)
- {
- ACE_ERROR ((LM_ERROR, "RG_LateBinding_Receiver_impl::start - "
- "Error scheduling timer"));
- }
- }
}
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h
index 9d2b50b49bb..221603b4fa0 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h
@@ -10,17 +10,23 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
class RG_LateBinding_Receiver_impl;
/**
- * Timeout_Handler
+ * LastSampleChecker
*/
- class Timeout_Handler :
- public ACE_Event_Handler
+ class LastSampleChecker
+ : public ACE_Event_Handler
{
public:
- Timeout_Handler (RG_LateBinding_Receiver_impl &callback);
+ LastSampleChecker (RG_LateBinding_Receiver_impl &callback,
+ const ::CORBA::UShort &iterations);
+
+ virtual ~LastSampleChecker (void);
+
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
private:
RG_LateBinding_Receiver_impl &callback_;
+ const ::CORBA::UShort iterations_;
+
};
/**
@@ -31,11 +37,20 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
public:
RG_LateBinding_Receiver_impl (
::RG_LateBinding::CCM_Receiver_Context_ptr ctx,
- ::CORBA::UShort expected);
+ const ::CORBA::UShort & iterations,
+ const ::CORBA::UShort & keys);
~RG_LateBinding_Receiver_impl (void);
- void start (
- ACE_Reactor *reactor);
+ void start (void);
+ bool check_last (void);
+ void start_read (void);
+
+ private:
+ ::RG_LateBinding::CCM_Receiver_Context_var ciao_context_;
+ ::CORBA::UShort iterations_;
+ ::CORBA::UShort keys_;
+
+ LastSampleChecker * checker_;
void set_topic_name_reader (bool test_non_changeable=false);
void set_topic_name_getter (bool test_non_changeable=false);
@@ -43,17 +58,13 @@ namespace CIAO_RG_LateBinding_Receiver_Impl
void start_reading (void);
void start_getting (void);
void test_exception (void);
- private:
- ::RG_LateBinding::CCM_Receiver_Context_var ciao_context_;
- CORBA::UShort expected_;
-
- Timeout_Handler *to_handler_read_;
- Timeout_Handler *to_handler_get_;
void check_samples (
const char * test,
const RG_LateBindingTestSeq& samples,
const ::CORBA::UShort& expected);
+
+ ACE_Reactor* reactor (void);
};
};
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl
index f9e425becc1..8ccf43d8c12 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.idl
@@ -11,6 +11,7 @@
#define RG_LATEBINDING_SENDER_IDL
#include "Connector/RG_LateBinding_Connector.idl"
+#include "Base/Reader_Starter.idl"
module RG_LateBinding
{
@@ -20,6 +21,8 @@ module RG_LateBinding
attribute unsigned short iterations;
attribute unsigned short keys;
+
+ uses ReaderStarter reader_start;
};
};
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc
index b2989beeb35..18d523e7aa1 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender.mpc
@@ -32,8 +32,9 @@ project (RG_LateBindingSender_lem_gen) : ciaoidldefaults, dds4ccm {
}
project (RG_LateBindingSender_lem_stub) : ccm_svnt, dds4ccm_base {
- after += RG_LateBindingSender_lem_gen RG_LateBindingSender_stub RG_LateBindingBase_stub
- libs += RG_LateBindingBase_stub Sender_stub
+ after += RG_LateBindingSender_lem_gen RG_LateBindingSender_stub \
+ RG_LateBindingBase_stub Reader_Starter_stub
+ libs += RG_LateBindingBase_stub Sender_stub Reader_Starter_stub
libpaths += ../lib
libout = ../lib
includes += ..
@@ -58,8 +59,11 @@ project (RG_LateBindingSender_lem_stub) : ccm_svnt, dds4ccm_base {
}
project (RG_LateBindingSender_stub) : ccm_stub, dds4ccm_base {
- after += RG_LateBindingSender_idl_gen RG_LateBindingBase_stub RG_LateBindingConnector_stub
- libs += RG_LateBindingBase_stub RG_LateBindingConnector_stub
+ after += RG_LateBindingSender_idl_gen RG_LateBindingBase_stub \
+ RG_LateBindingConnector_stub Reader_Starter_stub \
+ Reader_Starter_lem_stub
+ libs += RG_LateBindingBase_stub RG_LateBindingConnector_stub \
+ Reader_Starter_stub
includes += ..
libpaths += ../lib
libout = ../lib
@@ -85,10 +89,12 @@ project (RG_LateBindingSender_stub) : ccm_stub, dds4ccm_base {
project (RG_LateBindingSender_exec) : ciao_executor, dds4ccm_lem_stub {
after += RG_LateBindingSender_lem_stub RG_LateBindingSender_stub \
- RG_LateBindingConnector_lem_stub RG_LateBindingConnector_stub
+ RG_LateBindingConnector_lem_stub RG_LateBindingConnector_stub \
+ Reader_Starter_svnt Reader_Starter_lem_stub
sharedname = Sender_exec
libs += Sender_stub Sender_lem_stub RG_LateBindingBase_stub \
- RG_LateBindingConnector_lem_stub RG_LateBindingConnector_stub
+ RG_LateBindingConnector_lem_stub RG_LateBindingConnector_stub \
+ Reader_Starter_stub Reader_Starter_svnt Reader_Starter_lem_stub
libpaths += ../lib
includes += ..
libout = ../lib
@@ -113,10 +119,13 @@ project (RG_LateBindingSender_exec) : ciao_executor, dds4ccm_lem_stub {
project (RG_LateBindingSender_svnt) : ciao_servant, dds4ccm_lem_stub, dds4ccm_skel {
after += RG_LateBindingBase_stub RG_LateBindingSender_lem_stub RG_LateBindingConnector_stub \
- RG_LateBindingConnector_svnt RG_LateBindingConnector_lem_stub
+ RG_LateBindingConnector_svnt RG_LateBindingConnector_lem_stub \
+ Reader_Starter_stub Reader_Starter_lem_stub Reader_Starter_svnt
sharedname = Sender_svnt
libs += Sender_stub Sender_lem_stub \
- RG_LateBindingBase_stub RG_LateBindingConnector_stub RG_LateBindingConnector_svnt RG_LateBindingConnector_lem_stub
+ RG_LateBindingBase_stub RG_LateBindingConnector_stub RG_LateBindingConnector_svnt \
+ RG_LateBindingConnector_lem_stub Reader_Starter_stub \
+ Reader_Starter_lem_stub Reader_Starter_svnt
libpaths += ../lib
libout = ../lib
includes += ..
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp
index 06351660dbf..74cdb536681 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Sender/RG_LateBinding_Sender_exec.cpp
@@ -105,10 +105,24 @@ namespace CIAO_RG_LateBinding_Sender_Impl
ACE_DEBUG ((LM_DEBUG, "Sender_exec_i::start_event_test - "
"Sample written : key <%C> - iteration <%d>\n",
tmp, iter));
- ACE_Time_Value tv (0, 50000);
- ACE_OS::sleep (tv);
}
}
+ ACE_Time_Value tv (2, 0);
+ ACE_OS::sleep (tv);
+ ReaderStarter_var starter =
+ this->ciao_context_->get_connection_reader_start ();
+ if (!::CORBA::is_nil (starter.in ()))
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_i::start_event_test - "
+ "Inform the receiver that all samples were written\n"));
+ starter->set_reader_properties (this->keys (), this->iterations ());
+ starter->start_read ();
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Sender_exec_i::start_event_test - "
+ "ERROR: unable to get connection to the ReaderStarter\n"));
+ }
}
catch (const ::CCM_DDS::NonChangeable &)
{
diff --git a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp
index b90b386dd37..fdb2be3ef1b 100644
--- a/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp
+++ b/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/descriptors/Plan.cdp
@@ -216,17 +216,6 @@
<node>ReceiverNode</node>
<source/>
<implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>iterations</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
</instance>
<instance xmi:id="LateBinding_SenderEventConnectorInstance">
@@ -346,6 +335,22 @@
</instance>
<connection>
+ <name>reader_starter</name>
+ <internalEndpoint>
+ <portName>reader_start</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>start_reading</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
<name>reader_connection</name>
<deployRequirement>
<name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
diff --git a/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc b/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc
index 190cf318c0c..7c717f65e73 100755
--- a/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc
+++ b/CIAO/connectors/dds4ccm/tests/QueryCondition/DDS/Base/Base.mpc
@@ -2,7 +2,7 @@
project(Base_stub) : taoidldefaults, ndds_ts_defaults, typecode, nddslib {
sharedname = Base_stub
- dynamicflags += BASE_STUB_BUILD_DLL
+ dynamicflags += BASE_STUB_BUILD_DLL NDDS_USER_DLL_EXPORT
libout = ../descriptors
idlflags += -SS -Sci \