CEC_TypedConsumerAdmin.cpp

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: CEC_TypedConsumerAdmin.cpp 77001 2007-02-12 07:54:49Z johnnyw $
00004 
00005 #include "orbsvcs/CosEvent/CEC_TypedConsumerAdmin.h"
00006 
00007 #include "orbsvcs/CosEvent/CEC_TypedEventChannel.h"
00008 
00009 #if ! defined (__ACE_INLINE__)
00010 #include "orbsvcs/CosEvent/CEC_TypedConsumerAdmin.inl"
00011 #endif /* __ACE_INLINE__ */
00012 
00013 
00014 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00015 
00016 // Implementation skeleton constructor
00017 TAO_CEC_TypedConsumerAdmin::TAO_CEC_TypedConsumerAdmin (TAO_CEC_TypedEventChannel *ec)
00018   :  typed_event_channel_ (ec),
00019      typed_push_admin_ (ec)
00020 {
00021   this->default_POA_ =
00022     this->typed_event_channel_->typed_consumer_poa ();
00023 }
00024 
00025 // Implementation skeleton destructor
00026 TAO_CEC_TypedConsumerAdmin::~TAO_CEC_TypedConsumerAdmin (void)
00027 {
00028 }
00029 
00030 void
00031 TAO_CEC_TypedConsumerAdmin::invoke (const TAO_CEC_TypedEvent& typed_event)
00032 {
00033   TAO_CEC_Propagate_Typed_Event typed_event_worker (typed_event, this->typed_event_channel_);
00034 
00035   this->typed_push_admin_.for_each (&typed_event_worker);
00036 }
00037 
00038 void
00039 TAO_CEC_TypedConsumerAdmin::connected (TAO_CEC_ProxyPushSupplier *supplier)
00040 {
00041   this->typed_push_admin_.connected (supplier);
00042 }
00043 
00044 void
00045 TAO_CEC_TypedConsumerAdmin::reconnected (TAO_CEC_ProxyPushSupplier *supplier)
00046 {
00047   this->typed_push_admin_.reconnected (supplier);
00048 }
00049 
00050 void
00051 TAO_CEC_TypedConsumerAdmin::disconnected (TAO_CEC_ProxyPushSupplier *supplier)
00052 {
00053   this->typed_push_admin_.disconnected (supplier);
00054 }
00055 
00056 void
00057 TAO_CEC_TypedConsumerAdmin::shutdown (void)
00058 {
00059   this->typed_push_admin_.shutdown ();
00060 }
00061 
00062 CosTypedEventChannelAdmin::TypedProxyPullSupplier_ptr
00063 TAO_CEC_TypedConsumerAdmin::obtain_typed_pull_supplier (
00064     const char * /*supported_interface*/
00065   )
00066 {
00067   throw CosTypedEventChannelAdmin::InterfaceNotSupported ();
00068 }
00069 
00070 CosEventChannelAdmin::ProxyPushSupplier_ptr
00071 TAO_CEC_TypedConsumerAdmin::obtain_typed_push_supplier (
00072     const char * uses_interface
00073   )
00074 
00075 {
00076   // Register the consumer uses_interface with the EC
00077   int result = this->typed_event_channel_->consumer_register_uses_interace (uses_interface);
00078 
00079   if (result == -1)
00080     {
00081       throw CosTypedEventChannelAdmin::NoSuchImplementation ();
00082     }
00083 
00084   return this->typed_push_admin_.obtain ();
00085 }
00086 
00087 CosEventChannelAdmin::ProxyPushSupplier_ptr
00088 TAO_CEC_TypedConsumerAdmin::obtain_push_supplier (void)
00089 {
00090     throw CORBA::NO_IMPLEMENT ();
00091 }
00092 
00093 CosEventChannelAdmin::ProxyPullSupplier_ptr
00094 TAO_CEC_TypedConsumerAdmin::obtain_pull_supplier (void)
00095 {
00096     throw CORBA::NO_IMPLEMENT ();
00097 }
00098 
00099 PortableServer::POA_ptr
00100 TAO_CEC_TypedConsumerAdmin::_default_POA (void)
00101 {
00102   return PortableServer::POA::_duplicate (this->default_POA_.in ());
00103 }
00104 
00105 // ****************************************************************
00106 
00107 void
00108 TAO_CEC_Propagate_Typed_Event::work (TAO_CEC_ProxyPushSupplier *supplier)
00109 {
00110   supplier->invoke (this->typed_event_);
00111 }
00112 
00113 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Tue Feb 2 17:44:51 2010 for TAO_CosEvent by  doxygen 1.4.7