echoeventconsumer_i.cpp

来自「corbar RTEC_Federated」· C++ 代码 · 共 50 行

CPP
50
字号
// EchoEventConsumer_i.cpp// Implements a PushConsumer.#include "EchoEventConsumer_i.h"// Constructor duplicates the ORB reference.EchoEventConsumer_i::EchoEventConsumer_i(CORBA::ORB_ptr orb, int event_limit)  : orb_(CORBA::ORB::_duplicate(orb))  , event_limit_(event_limit){  // Nothing to do.}// Implement the push() operation.void EchoEventConsumer_i::push(const RtecEventComm::EventSet& events) throw(CORBA::SystemException){  // Loop through the events, looking for shutdown events.  for (u_int i = 0; i < events.length (); ++i) {    //ACE_OS::printf(".");    // Extract event data from the any.    const char* eventData;    ostrstream out;    out << "Received event,"         << "  type: "   << events[i].header.type         << "  source: " << events[i].header.source;    if (events[i].data.any_value >>= eventData) {      out << "  text: "   << eventData;    }    out << ends;    ACE_OS::printf("%s\n", out.str()); // printf is synchronized   }  if (--event_limit_ <= 0) {    orb_->shutdown(0);  }}// Implement the disconnect_push_consumer() operation.void EchoEventConsumer_i::disconnect_push_consumer() throw(CORBA::SystemException){  // Deactivate this object.  CORBA::Object_var obj = orb_->resolve_initial_references("POACurrent");  PortableServer::Current_var current = PortableServer::Current::_narrow(obj.in());  PortableServer::POA_var poa = current->get_POA();  PortableServer::ObjectId_var objectId = current->get_object_id();  poa->deactivate_object(objectId.in());}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?