summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp')
-rw-r--r--CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp354
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;
- }
-}