diff options
| author | Manuel Traut <manut@mecka.net> | 2014-03-31 16:53:55 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2014-03-31 16:53:55 +0200 |
| commit | 1adba473e6917b227e1b0a1118148101dca202e7 (patch) | |
| tree | 13180ede9564ba50c528b274ee5719b4e030ef06 /quellcode/versuch2/CPXEventConsumer_i.cpp | |
| parent | eacbf5bb4d57af21c731f41251015d3b991ad490 (diff) | |
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'quellcode/versuch2/CPXEventConsumer_i.cpp')
| -rwxr-xr-x | quellcode/versuch2/CPXEventConsumer_i.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
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 <orbsvcs/RtecEventCommC.h> +#include <orbsvcs/Event_Utilities.h> +
+#include <tao/PortableServer/PS_CurrentC.h>
+#include <ace/OS_NS_stdio.h>
+
+#include <sstream>
+
+#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());
+}
|
