diff options
Diffstat (limited to 'CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp')
-rw-r--r-- | CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp | 354 |
1 files changed, 0 insertions, 354 deletions
diff --git a/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp b/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp deleted file mode 100644 index 9554eaaa413..00000000000 --- a/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp +++ /dev/null @@ -1,354 +0,0 @@ -// -*- C++ -*- -/** - * Code generated by the The ACE ORB (TAO) IDL Compiler v1.8.3 - * TAO and the TAO IDL Compiler have been developed by: - * Center for Distributed Object Computing - * Washington University - * St. Louis, MO - * USA - * http://www.cs.wustl.edu/~schmidt/doc-center.html - * and - * Distributed Object Computing Laboratory - * University of California at Irvine - * Irvine, CA - * USA - * and - * Institute for Software Integrated Systems - * Vanderbilt University - * Nashville, TN - * USA - * http://www.isis.vanderbilt.edu/ - * - * Information about TAO is available at: - * http://www.dre.vanderbilt.edu/~schmidt/TAO.html - **/ - -#include "Distributor_exec.h" -#include "ace/OS_NS_time.h" -#include "tao/ORB_Core.h" -#include "ace/Reactor.h" - -namespace CIAO_Quoter_Distributor_Impl -{ - /** - * Write action generator - */ - - pulse_Generator::pulse_Generator (Distributor_exec_i &callback) - : pulse_callback_ (callback) - { - } - - pulse_Generator::~pulse_Generator () - { - } - - int - pulse_Generator::handle_timeout (const ACE_Time_Value &, const void *) - { - // Trigger the write action - this->pulse_callback_.tick (); - return 0; - } - - /** - * Facet Executor Implementation Class: info_out_connector_status_exec_i - */ - - info_out_connector_status_exec_i::info_out_connector_status_exec_i ( - ::Quoter::CCM_Distributor_Context_ptr ctx) - : ciao_context_ ( - ::Quoter::CCM_Distributor_Context::_duplicate (ctx)) - { - } - - info_out_connector_status_exec_i::~info_out_connector_status_exec_i (void) - { - } - - // Operations from ::CCM_DDS::ConnectorStatusListener - - void - info_out_connector_status_exec_i::on_inconsistent_topic (::DDS::Topic_ptr /* the_topic */, - const ::DDS::InconsistentTopicStatus & /* status */) - { - /* Your code here. */ - } - - void - info_out_connector_status_exec_i::on_requested_incompatible_qos (::DDS::DataReader_ptr /* the_reader */, - const ::DDS::RequestedIncompatibleQosStatus & /* status */) - { - /* Your code here. */ - } - - void - info_out_connector_status_exec_i::on_sample_rejected (::DDS::DataReader_ptr /* the_reader */, - const ::DDS::SampleRejectedStatus & /* status */) - { - /* Your code here. */ - } - - void - info_out_connector_status_exec_i::on_offered_deadline_missed (::DDS::DataWriter_ptr /* the_writer */, - const ::DDS::OfferedDeadlineMissedStatus & /* status */) - { - /* Your code here. */ - } - - void - info_out_connector_status_exec_i::on_offered_incompatible_qos (::DDS::DataWriter_ptr /* the_writer */, - const ::DDS::OfferedIncompatibleQosStatus & /* status */) - { - /* Your code here. */ - } - - void - info_out_connector_status_exec_i::on_unexpected_status (::DDS::Entity_ptr /* the_entity */, - ::DDS::StatusKind /* status_kind */) - { - /* Your code here. */ - } - - /** - * Component Executor Implementation Class: Distributor_exec_i - */ - - Distributor_exec_i::Distributor_exec_i (void) - : rate_ (1) - { - ACE_OS::srand (static_cast <u_int> (ACE_OS::time ())); - ACE_NEW_THROW_EX (this->ticker_, - pulse_Generator (*this), - ::CORBA::NO_MEMORY ()); - } - - Distributor_exec_i::~Distributor_exec_i (void) - { - delete this->ticker_; - } - - // Supported operations and attributes. - ACE_Reactor* - Distributor_exec_i::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; - } - - void - Distributor_exec_i::tick (void) - { - ACE_DEBUG ((LM_DEBUG, "Ticking\n")); - - for (Stock_Table::iterator i = this->stocks_.begin (); - i != this->stocks_.end (); - ++i) - { - if (ACE_OS::rand () % 2) - { - int const delta = (ACE_OS::rand () % 10) - 2; - - i->second->current += delta; - - if (i->second->current > i->second->high) - i->second->high = i->second->current; - - if (i->second->current < i->second->low) - i->second->low = i->second->current; - - ::Quoter::Writer_var writer = - this->ciao_context_->get_connection_info_in_data (); - - if (! ::CORBA::is_nil (writer.in ())) { - ACE_DEBUG ((LM_DEBUG, "WRITE AND CREATE stock_info for <%C> %u:%u:%u\n", - i->first.c_str (), - i->second->low, - i->second->current, - i->second->high)); - try - { - writer->write_one (i->second, ::DDS::HANDLE_NIL); - } - catch (const CCM_DDS::InternalError& ) - { - ACE_ERROR ((LM_ERROR, "Internal Error while writing Stock_info for <%C>.\n", - i->first.c_str ())); - } - } - else - ACE_ERROR ((LM_ERROR, "Writer reference is nil!\n")); - } - } - } - - void - Distributor_exec_i::add_stock (const char * stock) - { - ACE_DEBUG ((LM_DEBUG, "Distributor_exec_i::add_stock - Adding stock: %C\n", stock)); - - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard, - this->mutex_, CORBA::INTERNAL ()); - - Quoter::Stock_Info *new_stock = new Quoter::Stock_Info; - - new_stock->low = 50; - new_stock->high = 50; - new_stock->current = 50; - new_stock->symbol = stock; - - this->stocks_[stock] = new_stock; - } - - void - Distributor_exec_i::del_stock (const char * stock) - { - ACE_DEBUG ((LM_DEBUG, - "Distributor_exec_i::del_stock - Removing stock: %C\n", stock)); - - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard, - this->mutex_, CORBA::INTERNAL ()); - - Stock_Table::iterator pos = this->stocks_.find (stock); - - if (pos != this->stocks_.end ()) - { - this->stocks_.erase (pos); - } - else - { - ACE_ERROR ((LM_ERROR, - "Distributor_exec_i::del_stock - Stock not present: %C\n", - stock)); - } - } - - void - Distributor_exec_i::start (void) - { - // calculate the interval time - long const usec = 1000000 / this->rate_; - if (this->reactor ()->schedule_timer ( - this->ticker_, - 0, - ACE_Time_Value (0, usec), - ACE_Time_Value (0, usec)) == -1) - { - ACE_ERROR ((LM_ERROR, "Distributor_exec_i::start : error scheduling timer\n")); - } - } - - void - Distributor_exec_i::stop (void) - { - this->reactor ()->cancel_timer (this->ticker_); - ACE_DEBUG ((LM_DEBUG, "Distributor_exec_i::stop\n")); - } - - // Component attributes and port operations. - - ::CCM_DDS::CCM_ConnectorStatusListener_ptr - Distributor_exec_i::get_info_out_connector_status (void) - { - if ( ::CORBA::is_nil (this->ciao_info_out_connector_status_.in ())) - { - info_out_connector_status_exec_i *tmp = 0; - ACE_NEW_RETURN ( - tmp, - info_out_connector_status_exec_i ( - this->ciao_context_.in ()), - ::CCM_DDS::CCM_ConnectorStatusListener::_nil ()); - - this->ciao_info_out_connector_status_ = tmp; - } - - return - ::CCM_DDS::CCM_ConnectorStatusListener::_duplicate ( - this->ciao_info_out_connector_status_.in ()); - } - - ::CORBA::ULong - Distributor_exec_i::rate (void) - { - return this->rate_; - } - - void - Distributor_exec_i::rate ( - const ::CORBA::ULong rate) - { - this->rate_ = rate; - } - - // Operations from Components::SessionComponent. - - void - Distributor_exec_i::set_session_context ( - ::Components::SessionContext_ptr ctx) - { - this->ciao_context_ = - ::Quoter::CCM_Distributor_Context::_narrow (ctx); - - if ( ::CORBA::is_nil (this->ciao_context_.in ())) - { - throw ::CORBA::INTERNAL (); - } - } - - void - Distributor_exec_i::configuration_complete (void) - { - /* Your code here. */ - } - - void - Distributor_exec_i::ccm_activate (void) - { - this->start (); - this->add_stock ("MSFT"); - this->add_stock ("IBM"); - this->add_stock ("HP"); - this->add_stock ("DELL"); - this->add_stock ("ACER"); - this->add_stock ("ASUS"); - } - - void - Distributor_exec_i::ccm_passivate (void) - { - this->stop (); - } - - void - Distributor_exec_i::ccm_remove (void) - { - /* Your code here. */ - } - - extern "C" DISTRIBUTOR_EXEC_Export ::Components::EnterpriseComponent_ptr - create_Quoter_Distributor_Impl (void) - { - ::Components::EnterpriseComponent_ptr retval = - ::Components::EnterpriseComponent::_nil (); - - ACE_NEW_NORETURN ( - retval, - Distributor_exec_i); - - return retval; - } -} |