diff options
author | yamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-01-08 19:28:39 +0000 |
---|---|---|
committer | yamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-01-08 19:28:39 +0000 |
commit | 65e1bafe7abd90e0ac6b7b89591b3294b4f4af6f (patch) | |
tree | 1760c22fcce5ed7ce4145c9bd724b617cf35ff77 | |
parent | d12e48ef48cc6445159b3a5c405a2e9f294d2cb1 (diff) | |
download | ATCD-65e1bafe7abd90e0ac6b7b89591b3294b4f4af6f.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTCP.cpp | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTCP.h | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTP.cpp | 8 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTP.h | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/TCP.cpp | 73 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/TCP.h | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/UDP.cpp | 114 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/UDP.h | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/sfp.cpp | 8 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/sfp.h | 3 |
11 files changed, 174 insertions, 54 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h b/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h index 8ee289d554f..928de0f6726 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h +++ b/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h @@ -61,6 +61,9 @@ public: TAO_AV_frame_info *frame_info = 0) = 0; // send a frame in iovecs. + virtual int send_frame (const char *buf, + size_t len) = 0; + virtual void control_object (TAO_AV_Protocol_Object *object); virtual int destroy (void) = 0; // end the stream. diff --git a/TAO/orbsvcs/orbsvcs/AV/RTCP.cpp b/TAO/orbsvcs/orbsvcs/AV/RTCP.cpp index d834271aa29..a26d1144da9 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTCP.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/RTCP.cpp @@ -657,6 +657,13 @@ TAO_AV_RTCP_Object::send_frame (const iovec *iov, iovcnt); } +int +TAO_AV_RTCP_Object::send_frame (const char*, + size_t) +{ + return 0; +} + TAO_AV_RTCP_Object::TAO_AV_RTCP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport) :TAO_AV_Protocol_Object (callback,transport) diff --git a/TAO/orbsvcs/orbsvcs/AV/RTCP.h b/TAO/orbsvcs/orbsvcs/AV/RTCP.h index 0acc7e00e95..fbfba2a6790 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTCP.h +++ b/TAO/orbsvcs/orbsvcs/AV/RTCP.h @@ -224,6 +224,9 @@ public: TAO_AV_frame_info *frame_info = 0); // send a frame in iovecs. + virtual int send_frame (const char*buf, + size_t len); + virtual int destroy (void); // end the stream. }; diff --git a/TAO/orbsvcs/orbsvcs/AV/RTP.cpp b/TAO/orbsvcs/orbsvcs/AV/RTP.cpp index 4ee40b6e26f..dd768a8b499 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTP.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/RTP.cpp @@ -203,6 +203,14 @@ TAO_AV_RTP_Object::send_frame (const iovec *iov, return 0; } +int +TAO_AV_RTP_Object::send_frame (const char*, + size_t) +{ + return 0; +} + + TAO_AV_RTP_Object::TAO_AV_RTP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport) :TAO_AV_Protocol_Object (callback,transport), diff --git a/TAO/orbsvcs/orbsvcs/AV/RTP.h b/TAO/orbsvcs/orbsvcs/AV/RTP.h index 46cecbff24a..3b08b618f5c 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTP.h +++ b/TAO/orbsvcs/orbsvcs/AV/RTP.h @@ -265,6 +265,9 @@ public: int iovcnt, TAO_AV_frame_info *frame_info = 0); + virtual int send_frame (const char*buf, + size_t len); + virtual int destroy (void); virtual int set_policies (const TAO_AV_PolicyList &policy_list); virtual void control_object (TAO_AV_Protocol_Object *object); diff --git a/TAO/orbsvcs/orbsvcs/AV/TCP.cpp b/TAO/orbsvcs/orbsvcs/AV/TCP.cpp index 14cfb5ce261..12969aa5ae3 100644 --- a/TAO/orbsvcs/orbsvcs/AV/TCP.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/TCP.cpp @@ -216,9 +216,7 @@ TAO_AV_TCP_Object::send_frame (ACE_Message_Block *frame, TAO_AV_frame_info * /*frame_info*/) { int result = this->transport_->send (frame); - if (result < 0) - return result; - return 0; + return result; } int @@ -229,6 +227,15 @@ TAO_AV_TCP_Object::send_frame (const iovec *iov, return this->transport_->send (iov,iovcnt); } +int +TAO_AV_TCP_Object::send_frame (const char*buf, + size_t len) +{ + int result = this->transport_->send (buf, len, 0); + return result; +} + + TAO_AV_TCP_Object::TAO_AV_TCP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport) :TAO_AV_Protocol_Object (callback,transport) @@ -460,27 +467,25 @@ TAO_AV_TCP_Acceptor::~TAO_AV_TCP_Acceptor (void) int TAO_AV_TCP_Acceptor::make_svc_handler (TAO_AV_TCP_Flow_Handler *&tcp_handler) { - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_TCP_Acceptor::make_svc_handler\n")); - // TAO_AV_Callback *callback = 0; + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_TCP_Acceptor::make_svc_handler\n" + )); + if (this->endpoint_ != 0) { -// this->endpoint_->get_callback (this->flowname_.c_str (), -// callback); ACE_NEW_RETURN (tcp_handler, - // TAO_AV_TCP_Flow_Handler (callback), TAO_AV_TCP_Flow_Handler, -1); + TAO_AV_Protocol_Object *object = -// this->flow_protocol_factory_->make_protocol_object (callback, -// tcp_handler->transport ()); this->flow_protocol_factory_->make_protocol_object (this->entry_, this->endpoint_, tcp_handler, tcp_handler->transport ()); + tcp_handler->protocol_object (object); - // callback->protocol_object (object); -// this->endpoint_->set_protocol_object (this->flowname_.c_str (), -// object); + this->endpoint_->set_flow_handler (this->flowname_.c_str (),tcp_handler); this->entry_->protocol_object (object); this->entry_->handler (tcp_handler); @@ -495,26 +500,42 @@ TAO_AV_TCP_Acceptor::open (TAO_Base_StreamEndPoint *endpoint, TAO_AV_Flow_Protocol_Factory *factory) { this->flow_protocol_factory_ = factory; - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_TCP_Acceptor::open ")); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_TCP_Acceptor::open ")); + this->av_core_ = av_core; this->endpoint_ = endpoint; this->entry_ = entry; this->flowname_ = entry->flowname (); ACE_Addr *address = entry->address (); + ACE_INET_Addr *inet_addr = (ACE_INET_Addr *) address; + inet_addr->set (inet_addr->get_port_number (), inet_addr->get_host_name ()); + char buf[BUFSIZ]; inet_addr->addr_to_string (buf, BUFSIZ); - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_TCP_Acceptor::open: %s", - buf)); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_TCP_Acceptor::open: %s", + buf + )); + int result = this->acceptor_.open (this, av_core->reactor (), *inet_addr, entry); + if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_TCP_Acceptor::open failed"),-1); + ACE_ERROR_RETURN ((LM_ERROR, + "TAO_AV_TCP_Acceptor::open failed"), + -1); + entry->set_local_addr (address); return 0; } @@ -530,24 +551,38 @@ TAO_AV_TCP_Acceptor::open_default (TAO_Base_StreamEndPoint *endpoint, this->endpoint_ = endpoint; this->entry_ = entry; this->flowname_ = entry->flowname (); + ACE_INET_Addr *address; ACE_NEW_RETURN (address, ACE_INET_Addr ("0"), -1); + int result = this->acceptor_.open (this, av_core->reactor (), *address, entry); + if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_TCP_Acceptor::open failed"),-1); + ACE_ERROR_RETURN ((LM_ERROR, + "TAO_AV_TCP_Acceptor::open failed"), + -1); + this->acceptor_.acceptor ().get_local_addr (*address); + address->set (address->get_port_number (), address->get_host_name ()); + char buf[BUFSIZ]; address->addr_to_string (buf,BUFSIZ); - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_TCP_Acceptor::open_default: %s\n",buf)); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_TCP_Acceptor::open_default: %s\n", + buf)); + entry->set_local_addr (address); + return 0; } diff --git a/TAO/orbsvcs/orbsvcs/AV/TCP.h b/TAO/orbsvcs/orbsvcs/AV/TCP.h index 421b01f8254..587a02f3530 100644 --- a/TAO/orbsvcs/orbsvcs/AV/TCP.h +++ b/TAO/orbsvcs/orbsvcs/AV/TCP.h @@ -206,6 +206,9 @@ public: int iovcnt, TAO_AV_frame_info *frame_info = 0); + virtual int send_frame (const char*buf, + size_t len); + virtual int destroy (void); // end the stream. diff --git a/TAO/orbsvcs/orbsvcs/AV/UDP.cpp b/TAO/orbsvcs/orbsvcs/AV/UDP.cpp index 254d5488049..51701342798 100644 --- a/TAO/orbsvcs/orbsvcs/AV/UDP.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/UDP.cpp @@ -38,7 +38,7 @@ TAO_AV_UDP_Flow_Handler::handle_input (ACE_HANDLE /*fd*/) int TAO_AV_UDP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv, - const void *arg) + const void *arg) { return TAO_AV_Flow_Handler::handle_timeout (tv,arg); } @@ -46,10 +46,15 @@ TAO_AV_UDP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv, int TAO_AV_UDP_Flow_Handler::set_remote_address (ACE_Addr *address) { - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_Flow_Handler::set_remote_address\n")); - ACE_INET_Addr *inet_addr = ACE_dynamic_cast (ACE_INET_Addr*,address); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_Flow_Handler::set_remote_address\n")); + + ACE_INET_Addr *inet_addr = ACE_dynamic_cast (ACE_INET_Addr*, + address); this->peer_addr_ = *inet_addr; - TAO_AV_UDP_Transport *transport = ACE_dynamic_cast (TAO_AV_UDP_Transport*,this->transport_); + TAO_AV_UDP_Transport *transport = ACE_dynamic_cast (TAO_AV_UDP_Transport*, + this->transport_); + return transport->set_remote_address (*inet_addr); } @@ -57,7 +62,11 @@ TAO_AV_UDP_Flow_Handler::set_remote_address (ACE_Addr *address) ACE_HANDLE TAO_AV_UDP_Flow_Handler::get_handle (void) const { - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_Flow_Handler::get_handle:%d\n",this->sock_dgram_.get_handle ())); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_UDP_Flow_Handler::get_handle:%d\n", + this->sock_dgram_.get_handle ())); + return this->sock_dgram_.get_handle () ; } @@ -258,14 +267,18 @@ TAO_AV_UDP_Acceptor::open (TAO_Base_StreamEndPoint *endpoint, this->flow_protocol_factory_ = factory; this->flowname_ = entry->flowname (); ACE_INET_Addr *inet_addr = (ACE_INET_Addr *) entry->address (); -// inet_addr->set (inet_addr->get_port_number (), -// inet_addr->get_host_name ()); + char buf[BUFSIZ]; inet_addr->addr_to_string (buf, BUFSIZ); - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_Acceptor::open: %s", - buf)); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_UDP_Acceptor::open: %s", + buf)); + int result = this->open_i (inet_addr); + if (result < 0) return result; return 0; @@ -296,21 +309,25 @@ int TAO_AV_UDP_Acceptor::open_i (ACE_INET_Addr *inet_addr) { int result = -1; - // TAO_AV_Callback *callback = 0; - // this->endpoint_->get_callback (this->flowname_.c_str (), - // callback); + ACE_INET_Addr *local_addr; TAO_AV_Flow_Handler *flow_handler = 0; + if (this->entry_->is_multicast ()) { TAO_AV_UDP_MCast_Flow_Handler *handler; ACE_NEW_RETURN (handler, TAO_AV_UDP_MCast_Flow_Handler, -1); + flow_handler = handler; result = handler->get_mcast_socket ()->subscribe (*inet_addr); + if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_UDP_MCast_connector::subscribe failed\n"),-1); + ACE_ERROR_RETURN ((LM_ERROR, + "TAO_AV_UDP_MCast_connector::subscribe failed\n"), + -1); + // Now disable Multicast loopback. // @@Should we make this a policy? #ifdef ACE_HAS_IP_MULTICAST @@ -389,10 +406,15 @@ TAO_AV_UDP_Acceptor::open_i (ACE_INET_Addr *inet_addr) char buf[BUFSIZ]; local_addr->addr_to_string (buf,BUFSIZ); - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_CONNECTOR::connect:%s \n",buf)); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO_AV_UDP_ACCEPTOR::open:%s \n", + buf)); + this->entry_->set_local_addr (local_addr); this->entry_->handler (flow_handler); - // call activate svc handler. + +// call activate svc handler. return this->activate_svc_handler (flow_handler); } @@ -430,30 +452,29 @@ int TAO_AV_UDP_Connector::connect (TAO_FlowSpec_Entry *entry, TAO_AV_Transport *&transport) { + + ACE_INET_Addr *local_addr; + int result = -1; this->entry_ = entry; this->flowname_ = entry->flowname (); - ACE_Addr *remote_addr = entry->address (); - ACE_UNUSED_ARG (remote_addr); - ACE_INET_Addr *local_addr; - ACE_NEW_RETURN (local_addr, - ACE_INET_Addr ("0"), - -1); - // TAO_AV_Callback *callback = 0; -// this->endpoint_->get_callback (this->flowname_.c_str (), -// callback); - ACE_INET_Addr *inet_addr = ACE_dynamic_cast (ACE_INET_Addr*,entry->address ()); + ACE_INET_Addr *inet_addr = ACE_dynamic_cast (ACE_INET_Addr*, + entry->address ()); + TAO_AV_Flow_Handler *flow_handler = 0; + if (entry->is_multicast ()) { TAO_AV_UDP_MCast_Flow_Handler *handler; ACE_NEW_RETURN (handler, - // TAO_AV_UDP_MCast_Flow_Handler (callback), TAO_AV_UDP_MCast_Flow_Handler, -1); + flow_handler = handler; + result = handler->get_mcast_socket ()->subscribe (*inet_addr); + if (result < 0) ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_UDP_MCast_connector::open failed\n"),-1); // Now disable Multicast loopback. @@ -484,15 +505,23 @@ TAO_AV_UDP_Connector::connect (TAO_FlowSpec_Entry *entry, } else { + + ACE_NEW_RETURN (local_addr, + ACE_INET_Addr ("0"), + -1); + TAO_AV_UDP_Flow_Handler *handler; ACE_NEW_RETURN (handler, - // TAO_AV_UDP_Flow_Handler (callback), TAO_AV_UDP_Flow_Handler, -1); + flow_handler = handler; + result = handler->open (*local_addr); + if (result < 0) ACE_ERROR_RETURN ((LM_ERROR,"handler::open failed\n"),-1); + // set the socket buffer sizes to 64k. int sndbufsize = ACE_DEFAULT_MAX_SOCKET_BUFSIZ; int rcvbufsize = ACE_DEFAULT_MAX_SOCKET_BUFSIZ; @@ -512,33 +541,38 @@ TAO_AV_UDP_Connector::connect (TAO_FlowSpec_Entry *entry, return 0; handler->set_remote_address (inet_addr); - ACE_NEW_RETURN (local_addr, - ACE_INET_Addr, - -1); + result = handler->get_socket ()->get_local_addr (*local_addr); + if (result < 0) ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_Dgram_Connector::open: get_local_addr failed\n"),result); + local_addr->set (local_addr->get_port_number (), local_addr->get_host_name ()); } + TAO_AV_Protocol_Object *object = this->flow_protocol_factory_->make_protocol_object (this->entry_, this->endpoint_, flow_handler, flow_handler->transport ()); flow_handler->protocol_object (object); - // callback->protocol_object (object); -// this->endpoint_->set_protocol_object (this->flowname_.c_str (), -// object); - this->endpoint_->set_flow_handler (this->flowname_.c_str (),flow_handler); + + this->endpoint_->set_flow_handler (this->flowname_.c_str (), + flow_handler); + this->entry_->protocol_object (object); char buf[BUFSIZ]; local_addr->addr_to_string (buf,BUFSIZ); - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_CONNECTOR::connect:%s \n",buf)); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"TAO_AV_UDP_CONNECTOR::connect:%s \n",buf)); + entry->set_local_addr (local_addr); entry->handler (flow_handler); transport = flow_handler->transport (); + // call activate svc handler. return this->activate_svc_handler (flow_handler); } @@ -644,6 +678,16 @@ TAO_AV_UDP_Object::send_frame (const iovec *iov, return this->transport_->send (iov,iovcnt); } +int +TAO_AV_UDP_Object::send_frame (const char*buf, + size_t len) +{ + int result = this->transport_->send (buf, len, 0); + if (result < 0) + return result; + return 0; +} + TAO_AV_UDP_Object::TAO_AV_UDP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport) :TAO_AV_Protocol_Object (callback,transport) diff --git a/TAO/orbsvcs/orbsvcs/AV/UDP.h b/TAO/orbsvcs/orbsvcs/AV/UDP.h index 3d4f25278d4..71b3d3e5ce4 100644 --- a/TAO/orbsvcs/orbsvcs/AV/UDP.h +++ b/TAO/orbsvcs/orbsvcs/AV/UDP.h @@ -184,6 +184,9 @@ public: int iovcnt, TAO_AV_frame_info *frame_info = 0); + virtual int send_frame (const char*buf, + size_t len); + virtual int destroy (void); // end the stream. diff --git a/TAO/orbsvcs/orbsvcs/AV/sfp.cpp b/TAO/orbsvcs/orbsvcs/AV/sfp.cpp index 62e3ac58a3b..69206a8a420 100644 --- a/TAO/orbsvcs/orbsvcs/AV/sfp.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/sfp.cpp @@ -1030,6 +1030,14 @@ TAO_SFP_Object::send_frame (const iovec * /*iov*/, ACE_ERROR_RETURN ((LM_ERROR,"TAO_AV_SFP_Object::send_frame"),-1); } +int +TAO_SFP_Object::send_frame (const char*buf, + size_t len) +{ + return 0; +} + + ACE_Message_Block* TAO_SFP_Object::get_fragment (ACE_Message_Block *&mb, size_t initial_len, diff --git a/TAO/orbsvcs/orbsvcs/AV/sfp.h b/TAO/orbsvcs/orbsvcs/AV/sfp.h index c78e9e5a3ca..6338985a24f 100644 --- a/TAO/orbsvcs/orbsvcs/AV/sfp.h +++ b/TAO/orbsvcs/orbsvcs/AV/sfp.h @@ -213,6 +213,9 @@ public: int iovcnt, TAO_AV_frame_info *frame_info = 0); + virtual int send_frame (const char*buf, + size_t len); + virtual int destroy (void); virtual int set_policies (const TAO_AV_PolicyList &policies); |