00001 // $Id: StructuredPushSupplier.cpp 84685 2009-03-02 22:49:17Z mesnier_p $ 00002 00003 #include "orbsvcs/Notify/Structured/StructuredPushSupplier.h" 00004 00005 ACE_RCSID(RT_Notify, TAO_Notify_StructuredPushSupplier, "$Id: StructuredPushSupplier.cpp 84685 2009-03-02 22:49:17Z mesnier_p $") 00006 #include "orbsvcs/Notify/Properties.h" 00007 00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00009 00010 TAO_Notify_StructuredPushSupplier::TAO_Notify_StructuredPushSupplier (TAO_Notify_ProxyConsumer* proxy) 00011 :TAO_Notify_Supplier (proxy) 00012 { 00013 } 00014 00015 TAO_Notify_StructuredPushSupplier::~TAO_Notify_StructuredPushSupplier () 00016 { 00017 } 00018 00019 void 00020 TAO_Notify_StructuredPushSupplier::init (CosNotifyComm::StructuredPushSupplier_ptr push_supplier) 00021 { 00022 // TODO: verify single init call 00023 // push_supplier is optional 00024 this->push_supplier_ = CosNotifyComm::StructuredPushSupplier::_duplicate (push_supplier); 00025 this->subscribe_ = CosNotifyComm::NotifySubscribe::_duplicate (push_supplier); 00026 } 00027 00028 void 00029 TAO_Notify_StructuredPushSupplier::release (void) 00030 { 00031 delete this; 00032 //@@ inform factory 00033 } 00034 00035 ACE_CString 00036 TAO_Notify_StructuredPushSupplier::get_ior (void) const 00037 { 00038 ACE_CString result; 00039 CORBA::ORB_var orb = TAO_Notify_PROPERTIES::instance()->orb(); 00040 try 00041 { 00042 CORBA::String_var ior = orb->object_to_string(this->push_supplier_.in()); 00043 result = static_cast<const char*> (ior.in ()); 00044 } 00045 catch (const CORBA::Exception&) 00046 { 00047 result.fast_clear(); 00048 } 00049 return result; 00050 } 00051 00052 CORBA::Object_ptr 00053 TAO_Notify_StructuredPushSupplier::get_supplier (void) 00054 { 00055 return CosNotifyComm::StructuredPushSupplier::_duplicate (this->push_supplier_.in ()); 00056 } 00057 00058 TAO_END_VERSIONED_NAMESPACE_DECL