summaryrefslogtreecommitdiff
path: root/ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl')
-rw-r--r--ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl120
1 files changed, 120 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl b/ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl
new file mode 100644
index 00000000000..130b967dd1d
--- /dev/null
+++ b/ACE/TAO/orbsvcs/orbsvcs/Event/ECG_UDP_Receiver.inl
@@ -0,0 +1,120 @@
+// -*- C++ -*-
+//
+// $Id$
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE
+TAO_ECG_UDP_Receiver_Disconnect_Command::
+TAO_ECG_UDP_Receiver_Disconnect_Command (void)
+ : proxy_ ()
+{
+}
+
+ACE_INLINE
+TAO_ECG_UDP_Receiver_Disconnect_Command::
+TAO_ECG_UDP_Receiver_Disconnect_Command (
+ RtecEventChannelAdmin::ProxyPushConsumer_ptr proxy)
+ : proxy_ (RtecEventChannelAdmin::ProxyPushConsumer::_duplicate (proxy))
+{
+}
+
+ACE_INLINE
+TAO_ECG_UDP_Receiver_Disconnect_Command::
+TAO_ECG_UDP_Receiver_Disconnect_Command (
+ const TAO_ECG_UDP_Receiver_Disconnect_Command & rhs)
+ : proxy_ (RtecEventChannelAdmin::ProxyPushConsumer::_duplicate
+ (rhs.proxy_.in ()))
+{
+}
+
+ACE_INLINE
+TAO_ECG_UDP_Receiver_Disconnect_Command &
+TAO_ECG_UDP_Receiver_Disconnect_Command::operator= (
+ const TAO_ECG_UDP_Receiver_Disconnect_Command & rhs)
+{
+ this->proxy_ =
+ RtecEventChannelAdmin::ProxyPushConsumer::_duplicate (rhs.proxy_.in ());
+
+ return *this;
+}
+
+ACE_INLINE void
+TAO_ECG_UDP_Receiver_Disconnect_Command::
+execute (void)
+{
+ if (CORBA::is_nil (this->proxy_.in ()))
+ // We are not connected.
+ return;
+
+ RtecEventChannelAdmin::ProxyPushConsumer_var release_proxy =
+ this->proxy_._retn ();
+
+ release_proxy->disconnect_push_consumer ();
+}
+
+//***************************************************************************
+
+ACE_INLINE
+TAO_ECG_UDP_Receiver::TAO_ECG_UDP_Receiver (CORBA::Boolean perform_crc)
+ : lcl_ec_ ()
+ , addr_server_ ()
+ , consumer_proxy_ ()
+ , cdr_receiver_ (perform_crc)
+ , handler_rptr_ ()
+ , auto_proxy_disconnect_ ()
+{
+}
+
+ACE_INLINE TAO_EC_Servant_Var<TAO_ECG_UDP_Receiver>
+TAO_ECG_UDP_Receiver::create (CORBA::Boolean perform_crc)
+{
+ TAO_EC_Servant_Var<TAO_ECG_UDP_Receiver> r;
+ ACE_NEW_RETURN (r,
+ TAO_ECG_UDP_Receiver (perform_crc),
+ r);
+ return r;
+}
+
+ACE_INLINE void
+TAO_ECG_UDP_Receiver::set_handler_shutdown (
+ TAO_ECG_Refcounted_Handler handler_shutdown_rptr)
+{
+ this->handler_rptr_ = handler_shutdown_rptr;
+}
+
+ACE_INLINE void
+TAO_ECG_UDP_Receiver::get_addr (const RtecEventComm::EventHeader& header,
+ RtecUDPAdmin::UDP_Addr_out addr)
+{
+ if (CORBA::is_nil (this->addr_server_.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "TAO_ECG_UDP_Receiver::get_addr() called but "
+ "nil Address Server was supplied during "
+ "initialization through init().\n"));
+
+ throw CORBA::INTERNAL ();
+ }
+
+ this->addr_server_->get_addr (header, addr);
+}
+
+ACE_INLINE void
+TAO_ECG_UDP_Receiver::get_address (const RtecEventComm::EventHeader& header,
+ RtecUDPAdmin::UDP_Address_out addr)
+{
+ if (CORBA::is_nil (this->addr_server_.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "TAO_ECG_UDP_Receiver::get_addr() called but "
+ "nil Address Server was supplied during "
+ "initialization through init().\n"));
+
+ throw CORBA::INTERNAL ();
+ }
+
+ this->addr_server_->get_address (header, addr);
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL