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