diff options
author | msmit <msmit@remedy.nl> | 2010-12-09 09:53:32 +0000 |
---|---|---|
committer | msmit <msmit@remedy.nl> | 2010-12-09 09:53:32 +0000 |
commit | d87b8af93d05aaae2b11939b9d8566342826b80f (patch) | |
tree | 2318c44d43ac74a27f709ac0dad6a12d4111852b | |
parent | 3a4602703105fc6b4cf3e1d6e6a5dacc5e2dd9e8 (diff) | |
download | ATCD-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.
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 \ |