00001 // StructuredPushSupplier.cpp,v 1.15 2006/03/15 21:29:10 jtc Exp 00002 00003 #include "orbsvcs/Notify/Structured/StructuredPushSupplier.h" 00004 00005 ACE_RCSID(RT_Notify, TAO_Notify_StructuredPushSupplier, "StructuredPushSupplier.cpp,v 1.15 2006/03/15 21:29:10 jtc Exp") 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 ACE_ENV_ARG_DECL_NOT_USED) 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 ACE_DECLARE_NEW_CORBA_ENV; 00041 ACE_TRY 00042 { 00043 CORBA::String_var ior = orb->object_to_string(this->push_supplier_.in() ACE_ENV_ARG_PARAMETER); 00044 ACE_TRY_CHECK; 00045 result = static_cast<const char*> (ior.in ()); 00046 } 00047 ACE_CATCHANY 00048 { 00049 result.fast_clear(); 00050 } 00051 ACE_ENDTRY; 00052 return result; 00053 } 00054 00055 TAO_END_VERSIONED_NAMESPACE_DECL