summaryrefslogtreecommitdiff
path: root/TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp')
-rw-r--r--TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp b/TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp
new file mode 100644
index 00000000000..d64c99f503e
--- /dev/null
+++ b/TAO/DevGuideExamples/NotifyService/EventSequence/EventSequenceConsumer_i.cpp
@@ -0,0 +1,50 @@
+#include "EventSequenceConsumer_i.h"
+#include <tao/PortableServer/PS_CurrentC.h>
+#include <iostream>
+
+EventSequenceConsumer_i::EventSequenceConsumer_i(CORBA::ORB_ptr orb)
+: orb_(CORBA::ORB::_duplicate(orb))
+{
+}
+
+void
+EventSequenceConsumer_i::push_structured_events (
+ const CosNotification::EventBatch& events
+ )
+ throw (CORBA::SystemException, CosEventComm::Disconnected)
+{
+
+ std::cout << "events received " << std::endl;
+
+ const char* value = 0;
+
+ for (unsigned int n = 0; n < events.length(); ++n) {
+ for (unsigned int i = 0; i < events[n].filterable_data.length(); ++i) {
+ events[n].filterable_data[i].value >>= value;
+ std::cout << events[n].filterable_data[i].name.in() << "\t" << value << std::endl;
+ }
+ }
+}
+
+void
+EventSequenceConsumer_i::disconnect_sequence_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());
+
+}
+
+void
+EventSequenceConsumer_i::offer_change (
+ const CosNotification::EventTypeSeq &,
+ const CosNotification::EventTypeSeq &
+ )
+ throw (CORBA::SystemException, CosNotifyComm::InvalidEventType)
+{
+}