From 1adba473e6917b227e1b0a1118148101dca202e7 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Mon, 31 Mar 2014 16:53:55 +0200 Subject: add quellcode Signed-off-by: Manuel Traut --- quellcode/versuch2/CPXEventConsumer_i.cpp | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 quellcode/versuch2/CPXEventConsumer_i.cpp (limited to 'quellcode/versuch2/CPXEventConsumer_i.cpp') diff --git a/quellcode/versuch2/CPXEventConsumer_i.cpp b/quellcode/versuch2/CPXEventConsumer_i.cpp new file mode 100755 index 0000000..3cd3f18 --- /dev/null +++ b/quellcode/versuch2/CPXEventConsumer_i.cpp @@ -0,0 +1,44 @@ +#include "CPXEventConsumer_i.h" + +#include +#include + +#include +#include + +#include + +#include "cpx.h" + +const RtecEventComm::EventSourceID MY_SOURCE_ID = ACE_ES_EVENT_SOURCE_ANY + 1; +const RtecEventComm::EventType MY_EVENT_TYPE = ACE_ES_EVENT_UNDEFINED + 1; + +CPX cpx; + +CPXEventConsumer_i::CPXEventConsumer_i(CORBA::ORB_ptr orb/*, int event_limit*/) : orb_(CORBA::ORB::_duplicate(orb))/* , event_limit_(event_limit)*/ { + //nothing +} + +void CPXEventConsumer_i::push(const RtecEventComm::EventSet& events) throw (CORBA::SystemException) { + // loop through events + int value; + for(u_int i = 0; i < events.length(); ++i){ + if(events[i].header.type == MY_EVENT_TYPE){ + // std::cout<<"my event\n"; + events[i].data.any_value >>= value; + cpx.set(1, value); + } else { + // std::cout<<"your event\n"; + cpx.set(1, value-2); + } + } +// if(--event_limit_ <= 0) orb_->shutdown(0); +} + +void CPXEventConsumer_i::disconnect_push_consumer() throw (CORBA::SystemException){ + 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()); +} -- cgit v1.2.3