CosEventChannelAdmin::ProxyPushConsumer_ptr TAO_CosEC_SupplierAdmin_i::obtain_push_consumer (void) { CosEventChannelAdmin::ProxyPushConsumer_ptr proxyconsumer_nil = CosEventChannelAdmin::ProxyPushConsumer::_nil (); RtecEventChannelAdmin::ProxyPushConsumer_var rtecproxypushconsumer = this->rtec_supplieradmin_->obtain_push_consumer (); TAO_CosEC_ProxyPushConsumer_i *proxypushconsumer; ACE_NEW_RETURN (proxypushconsumer, TAO_CosEC_ProxyPushConsumer_i (this->qos_, rtecproxypushconsumer.in ()), proxyconsumer_nil); auto_ptr <TAO_CosEC_ProxyPushConsumer_i> auto_proxyconsumer (proxypushconsumer); CosEventChannelAdmin::ProxyPushConsumer_ptr proxy_obj = auto_proxyconsumer.get ()->_this (); // give the ownership to the POA. auto_proxyconsumer.get ()->_remove_ref (); auto_proxyconsumer.release (); return proxy_obj; }
void Heartbeat_Application::connect_as_supplier (void) { // Obtain reference to SupplierAdmin. RtecEventChannelAdmin::SupplierAdmin_var supplier_admin = this->ec_->for_suppliers (); // Obtain ProxyPushConsumer and connect this supplier. RtecEventChannelAdmin::ProxyPushConsumer_var proxy = supplier_admin->obtain_push_consumer (); Consumer_Proxy_Disconnect new_proxy_disconnect (proxy.in ()); ACE_SupplierQOS_Factory qos; qos.insert (SOURCE_ID, HEARTBEAT, 0, 1); proxy->connect_push_supplier (RtecEventComm::PushSupplier::_nil (), qos.get_SupplierQOS ()); // Update resource managers. this->consumer_ = proxy._retn (); this->consumer_proxy_disconnect_.set_command (new_proxy_disconnect); }