summaryrefslogtreecommitdiff
path: root/TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp')
-rw-r--r--TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp162
1 files changed, 0 insertions, 162 deletions
diff --git a/TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp b/TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp
deleted file mode 100644
index f63bc493769..00000000000
--- a/TAO/DevGuideExamples/NotifyService/Filtering/Messenger_i.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-// $Id$
-
-#include "orbsvcs/CosNotifyChannelAdminC.h"
-#include "orbsvcs/CosNotifyCommC.h"
-#include "orbsvcs/CosNamingC.h"
-
-#include "Messenger_i.h"
-#include "StructuredEventSupplier_i.h"
-
-#include <iostream>
-
-Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
- : orb_ (CORBA::ORB::_duplicate(orb))
-
-{
- try
- {
- CORBA::Object_var poa_obj = orb->resolve_initial_references("RootPOA");
- PortableServer::POA_var poa = PortableServer::POA::_narrow(poa_obj.in());
-
- CORBA::Object_var naming_obj =
- orb_->resolve_initial_references ("NameService");
-
- if (CORBA::is_nil(naming_obj.in())) {
- std::cerr << "Unable to find naming service" << std::endl;
- }
-
- CosNaming::NamingContext_var naming_context =
- CosNaming::NamingContext::_narrow(naming_obj.in());
-
- CosNaming::Name name(1);
- name.length (1);
- name[0].id = CORBA::string_dup("NotifyEventChannelFactory");
-
- CORBA::Object_var obj = naming_context->resolve(name);
-
- CosNotifyChannelAdmin::EventChannelFactory_var notify_factory =
- CosNotifyChannelAdmin::EventChannelFactory::_narrow(obj.in());
-
- if (CORBA::is_nil(notify_factory.in())) {
- std::cerr << "Unable to find notify factory" << std::endl;
- }
-
- CosNotifyChannelAdmin::ChannelID id;
- CosNotification::QoSProperties initial_qos;
- CosNotification::AdminProperties initial_admin;
-
- CosNotifyChannelAdmin::EventChannel_var ec =
- notify_factory->create_channel (initial_qos,
- initial_admin,
- id);
-
- if (CORBA::is_nil (ec.in())) {
- std::cerr << "Unable to crete event channel" << std::endl;
- }
-
- name.length(1);
- name[0].id = CORBA::string_dup("MyEventChannel");
-
- naming_context->rebind(name, ec.in());
-
- CosNotifyChannelAdmin::AdminID adminid;
- CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::AND_OP;
-
- CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
- ec->new_for_suppliers (ifgop, adminid);
-
- if (CORBA::is_nil (supplier_admin.in())) {
- std::cerr << "Unable to find supplier admin" << std::endl;
- }
-
- CosNotifyChannelAdmin::ProxyID supplieradmin_proxy_id;
-
- CosNotifyChannelAdmin::ProxyConsumer_var proxy_consumer =
- supplier_admin->obtain_notification_push_consumer(
- CosNotifyChannelAdmin::STRUCTURED_EVENT,
- supplieradmin_proxy_id);
-
- StructuredEventSupplier_i *servant =
- new StructuredEventSupplier_i(orb_.in());
-
- PortableServer::ObjectId_var oid = poa->activate_object(servant);
- CORBA::Object_var supplier_obj = poa->id_to_reference(oid.in());
- CosNotifyComm::StructuredPushSupplier_var supplier =
- CosNotifyComm::StructuredPushSupplier::_narrow(supplier_obj.in());
-
- consumer_proxy_ =
- CosNotifyChannelAdmin::StructuredProxyPushConsumer::
- _narrow(proxy_consumer.in());
-
- if (CORBA::is_nil (consumer_proxy_.in())) {
- std::cerr << "Unable to find structured proxy push consumer" << std::endl;
- }
-
- consumer_proxy_->connect_structured_push_supplier(supplier.in());
-
- }
- catch(const CORBA::Exception& ex) {
- std::cerr << ex << std::endl;
- }
-
-}
-
-
-// Implementation skeleton destructor
-Messenger_i::~Messenger_i (void)
-{
-}
-
-CORBA::Boolean Messenger_i::send_message (
- const char * user_name,
- const char * subject,
- char *& message
- )
-{
-
- std::cout << "Message from: " << user_name << std::endl;
- std::cout << "Subject: " << subject << std::endl;
- std::cout << "Message: " << message << std::endl;
-
- try
- {
-
- // Event Definition
- CosNotification::StructuredEvent event;
-
- event.header.fixed_header.event_type.domain_name =
- CORBA::string_dup("OCI_TAO");
- // string
- event.header.fixed_header.event_type.type_name =
- CORBA::string_dup("examples");
- // string
- event.header.fixed_header.event_name =
- CORBA::string_dup("myevent");
-
- // sequence<Property>: string name, any value
- event.filterable_data.length (1);
- event.filterable_data[0].name = CORBA::string_dup("From");
- event.filterable_data[0].value <<= (const char *)user_name;
- event.filterable_data.length (2);
- event.filterable_data[1].name = CORBA::string_dup("Subject");
- event.filterable_data[1].value <<= (const char *)subject;
- event.filterable_data.length (3);
- event.filterable_data[2].name = CORBA::string_dup("Message");
- event.filterable_data[2].value <<= (const char *)message;
-
- consumer_proxy_->push_structured_event(event);
- }
-
- catch(const CosNotifyComm::InvalidEventType&) {
- std::cerr << "Invalid Event Type Exception " << std::endl;
- return 1;
- }
-
- catch(const CORBA::Exception& ex) {
- std::cerr << ex << std::endl;
- return 1;
- }
- return 0;
-}
-