summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-01-08 19:28:39 +0000
committeryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-01-08 19:28:39 +0000
commit65e1bafe7abd90e0ac6b7b89591b3294b4f4af6f (patch)
tree1760c22fcce5ed7ce4145c9bd724b617cf35ff77
parentd12e48ef48cc6445159b3a5c405a2e9f294d2cb1 (diff)
downloadATCD-65e1bafe7abd90e0ac6b7b89591b3294b4f4af6f.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/RTCP.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/RTCP.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/RTP.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/RTP.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/TCP.cpp73
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/TCP.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/UDP.cpp114
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/UDP.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/sfp.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/sfp.h3
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);