summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp276
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h87
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp131
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/server.h64
4 files changed, 119 insertions, 439 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
index ae09d9d3b26..f38853f6450 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
@@ -2,17 +2,21 @@
#include "ftp.h"
-FTP_SFP_Object::FTP_SFP_Object (FTP_Client_SFP_Flow_Handler *handler)
+FTP_Client_Callback::FTP_Client_Callback (FTP_Client_Flow_Handler *handler)
:handler_ (handler)
{
- handler_->set_sfp_object (this);
}
int
-FTP_SFP_Object::start (void)
+FTP_Client_Callback::handle_start (void)
{
- this->handler_->start ();
- return 0;
+ return this->handler_->start ();
+}
+
+int
+FTP_Client_Callback::handle_stop (void)
+{
+ return this->handler_->stop ();
}
FTP_Client_StreamEndPoint::FTP_Client_StreamEndPoint (TAO_ORB_Manager *orb_manager)
@@ -22,134 +26,97 @@ FTP_Client_StreamEndPoint::FTP_Client_StreamEndPoint (TAO_ORB_Manager *orb_manag
}
int
-FTP_Client_StreamEndPoint::make_udp_flow_handler (TAO_AV_UDP_Flow_Handler *&handler)
+FTP_Client_StreamEndPoint::get_callback (const char *flowname,
+ TAO_AV_Callback *&callback)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::make_udp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Client_UDP_Flow_Handler (this->orb_manager_),
+ ACE_Time_Value timeout (2);
+ ACE_NEW_RETURN (this->handler_,
+ FTP_Client_Flow_Handler (this->orb_manager_,
+ timeout),
-1);
-}
-
-int
-FTP_Client_StreamEndPoint::make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&handler)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::make_tcp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Client_TCP_Flow_Handler (this->orb_manager_),
+ ACE_NEW_RETURN (this->callback_,
+ FTP_Client_Callback (this->handler_),
-1);
+ callback = this->callback_;
+ return 0;
}
int
-FTP_Client_StreamEndPoint::make_dgram_mcast_flow_handler (TAO_AV_UDP_MCast_Flow_Handler *&handler)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::make_udp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Client_UDP_MCast_Flow_Handler (this->orb_manager_),
- -1);
-}
-
-int
-FTP_Client_StreamEndPoint::get_sfp_object (const char *flowname,
- TAO_SFP_Object *&sfp_object)
+FTP_Client_StreamEndPoint::set_protocol_object (const char *flowname,
+ TAO_AV_Protocol_Object *object)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::set_sfp_object\n"));
- FTP_Client_SFP_Flow_Handler *handler;
- ACE_NEW_RETURN (handler,
- FTP_Client_SFP_Flow_Handler (this->orb_manager_),
- -1);
- ACE_NEW_RETURN (sfp_object,
- FTP_SFP_Object (handler),
- -1);
+ int result = this->handler_->set_protocol_object (object);
+ ACE_CString flow_string (flowname);
+ if (flow_string.find ("RTP") != flow_string.npos)
+ {
+ // Set the policies.
+ TAO_AV_Policy_Manager policy_manager;
+ CORBA::ULong ssrc = 25;
+ int payload_type = 1;
+ PolicyList list (2);
+ list.length (2);
+ list [0] = policy_manager.create_policy (TAO_AV_Policy::TAO_AV_SSRC_POLICY,
+ &ssrc);
+ list [1] = policy_manager.create_policy (TAO_AV_Policy::TAO_AV_PAYLOAD_TYPE_POLICY,
+ &payload_type);
+ object->set_policies (list);
+ }
return 0;
}
-FTP_Client_Flow_Handler::FTP_Client_Flow_Handler (TAO_ORB_Manager *orb_manager)
+FTP_Client_Flow_Handler::FTP_Client_Flow_Handler (TAO_ORB_Manager *orb_manager,
+ ACE_Time_Value &timeout)
:orb_manager_ (orb_manager),
- count_ (0)
+ count_ (0),
+ protocol_object_ (0),
+ timeout_ (timeout)
{
}
int
-FTP_Client_UDP_Flow_Handler::start (void)
+FTP_Client_Flow_Handler::start (void)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::start"));
- ACE_Time_Value interval (2);
+ ACE_DEBUG ((LM_DEBUG,"FTP_Client_Flow_Handler::start"));
ACE_Time_Value delta = ACE_Time_Value::zero;
this->timer_id_ =
TAO_AV_CORE::instance ()->reactor ()->schedule_timer (this,
0,
delta,
- interval);
+ this->timeout_);
return 0;
}
int
-FTP_Client_TCP_Flow_Handler::start (void)
+FTP_Client_Flow_Handler::stop (void)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::start"));
- ACE_Time_Value interval (2);
- ACE_Time_Value delta = ACE_Time_Value::zero;
- this->timer_id_ =
- TAO_AV_CORE::instance ()->reactor ()->schedule_timer (this,
- 0,
- delta,
- interval);
+ ACE_DEBUG ((LM_DEBUG,"FTP_Client_Flow_Handler::start"));
+ int result = TAO_AV_CORE::instance ()->reactor ()->cancel_timer (this->timer_id_);
+ if (result < 0)
+ ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_Flow_Handler::stop cancel timer failed\n"),-1);
return 0;
}
int
-FTP_Client_UDP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- return FTP_Client_Flow_Handler::handle_timeout (tv,arg);
-}
-
-int
-FTP_Client_TCP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- return FTP_Client_Flow_Handler::handle_timeout (tv,arg);
-}
-
-FTP_Client_UDP_MCast_Flow_Handler::FTP_Client_UDP_MCast_Flow_Handler (TAO_ORB_Manager *orb_manager)
- :FTP_Client_Flow_Handler (orb_manager)
-{
-}
-
-int
-FTP_Client_UDP_MCast_Flow_Handler::start (void)
+FTP_Client_Flow_Handler::set_protocol_object (TAO_AV_Protocol_Object *object)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::start"));
- ACE_Time_Value interval (2);
- ACE_Time_Value delta = ACE_Time_Value::zero;
- this->timer_id_ =
- TAO_AV_CORE::instance ()->reactor ()->schedule_timer (this,
- 0,
- delta,
- interval);
+ this->protocol_object_ = object;
return 0;
}
-
-int
-FTP_Client_UDP_MCast_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- return FTP_Client_Flow_Handler::handle_timeout (tv,arg);
-}
-
int
FTP_Client_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
const void *arg)
{
ACE_DEBUG ((LM_DEBUG,"FTP_Client_StreamEndPoint::handle_timeout"));
- char buf [BUFSIZ];
- int result = ACE_OS::fread(buf,BUFSIZ,1,CLIENT::instance ()->file ());
- if (result < 0)
+ ACE_Message_Block mb (BUFSIZ);
+ char *buf = mb.rd_ptr ();
+ cerr << "message block size" << mb.size () << endl;
+ int n = ACE_OS::fread(buf,mb.size (),1,CLIENT::instance ()->file ());
+ if (n < 0)
{
TAO_AV_CORE::instance ()->reactor ()->cancel_timer (this->timer_id_);
ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_Flow_Handler::fread end of file\n"),-1);
}
- if (result == 0)
+ if (n == 0)
{
if (::feof (CLIENT::instance ()->file ()))
{
@@ -161,7 +128,7 @@ FTP_Client_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
AVStreams::flowSpec stop_spec (1);
stop_spec.length (1);
ACE_DECLARE_NEW_CORBA_ENV;
- stop_spec [0] = CORBA::string_dup ("Data");
+ stop_spec [0] = CORBA::string_dup (CLIENT::instance ()->flowname ());
CLIENT::instance ()->streamctrl ()->stop (stop_spec,ACE_TRY_ENV);
ACE_CHECK_RETURN (-1);
}
@@ -171,96 +138,14 @@ FTP_Client_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
else
ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_Flow_Handler::fread error\n"),-1);
}
- u_int len = BUFSIZ;
- result = this->transport_->send (buf,
- len);
+ cerr << "read bytes = " << n << endl;
+ mb.wr_ptr (n*BUFSIZ);
+ int result = this->protocol_object_->send_frame (&mb);
if (result < 0)
ACE_ERROR_RETURN ((LM_ERROR,"send failed:%p","FTP_Client_Flow_Handler::send \n"),-1);
- if (result != len)
- ACE_DEBUG ((LM_DEBUG,"transport->send failed:%p",""));
ACE_DEBUG ((LM_DEBUG,"handle_timeout::buffer sent succesfully\n"));
}
-FTP_Client_UDP_Flow_Handler::FTP_Client_UDP_Flow_Handler (TAO_ORB_Manager *orb_manager)
- :FTP_Client_Flow_Handler (orb_manager)
-{
-}
-
-FTP_Client_TCP_Flow_Handler::FTP_Client_TCP_Flow_Handler (TAO_ORB_Manager *orb_manager)
- :FTP_Client_Flow_Handler (orb_manager)
-{
-}
-
-TAO_AV_Transport*
-FTP_Client_SFP_Flow_Handler::transport (void)
-{
- return 0;
-}
-
-void
-FTP_Client_SFP_Flow_Handler::set_sfp_object (TAO_SFP_Object *object)
-{
- this->sfp_object_ = object;
-}
-
-int
-FTP_Client_SFP_Flow_Handler::start (void)
-{
- ACE_Time_Value interval (2);
- ACE_Time_Value delta = ACE_Time_Value::zero;
- this->timer_id_ =
- TAO_AV_CORE::instance ()->reactor ()->schedule_timer (this,
- 0,
- delta,
- interval);
- if (this->timer_id_ < 0)
- return -1;
- return 0;
-}
-
-
-FTP_Client_SFP_Flow_Handler::FTP_Client_SFP_Flow_Handler (TAO_ORB_Manager *orb_manager)
- :FTP_Client_Flow_Handler (orb_manager)
-{
-}
-
-int
-FTP_Client_SFP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_SFP_Flow_Handler::handle_timeout"));
- ACE_Message_Block mb (BUFSIZ);
- char *buf = mb.rd_ptr ();
- int result = ACE_OS::fread(buf,BUFSIZ,1,CLIENT::instance ()->file ());
- if (result < 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_SFP_Flow_Handler::fread end of file\n"),-1);
- TAO_AV_CORE::instance ()->reactor ()->cancel_timer (this->timer_id_);
- return -1;
- }
- if (result == 0)
- {
- if (::feof (CLIENT::instance ()->file ()))
- {
- // wait for sometime for the data to be flushed to the other side.
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_SFP_Flow_Handler::handle_timeout:End of file\n"));
- result = this->sfp_object_->end_stream ();
- TAO_AV_CORE::instance ()->reactor ()->cancel_timer (this->timer_id_);
- if (result < 0)
- ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_SFP_Flow_Handler::end stream failed\n"),-1);
- return -1;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,"FTP_Client_SFP_Flow_Handler::fread error\n"),-1);
- }
- cerr << result << endl;
- mb.wr_ptr (BUFSIZ*result);
- result = this->sfp_object_->send_frame (&mb);
- if (result < 0)
- ACE_ERROR_RETURN ((LM_ERROR,"send failed:%p","FTP_Client_Flow_Handler::send \n"),-1);
- ACE_DEBUG ((LM_DEBUG,"FTP_Client_SFP_Flow_Handler::handle_timeout::buffer sent succesfully\n"));
- return 0;
-}
Endpoint_Reactive_Strategy::Endpoint_Reactive_Strategy (TAO_ORB_Manager *orb_manager,
Client *client)
@@ -318,6 +203,12 @@ Client::file (void)
return this->fp_;
}
+char*
+Client::flowname (void)
+{
+ return this->flowname_;
+}
+
TAO_StreamCtrl*
Client::streamctrl (void)
{
@@ -341,25 +232,12 @@ Client::bind_to_server (void)
ACE_TRY
{
- /*
- CORBA::Object_var naming_obj =
- this->orb_manager_->orb ()->resolve_initial_references ("NameService");
- if (CORBA::is_nil (naming_obj.in ()))
- ACE_ERROR_RETURN ((LM_ERROR,
- " (%P|%t) Unable to resolve the Name Service.\n"),
- -1);
- CosNaming::NamingContext_var naming_context =
- CosNaming::NamingContext::_narrow (naming_obj.in (),
- TAO_TRY_ENV);
- TAO_CHECK_ENV;
- */
-
// Initialize the naming services
if (my_naming_client_.init (this->orb_manager_->orb ()) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- " (%P|%t) Unable to initialize "
- "the TAO_Naming_Client. \n"),
- -1);
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize "
+ "the TAO_Naming_Client. \n"),
+ -1);
CosNaming::Name server_mmdevice_name (1);
server_mmdevice_name.length (1);
@@ -463,7 +341,13 @@ Client::run (void)
this->orb_manager_->activate_poa_manager (ACE_TRY_ENV);
ACE_TRY_CHECK;
ACE_INET_Addr addr (this->address_);
- TAO_Forward_FlowSpec_Entry entry ("Data",
+ ACE_NEW_RETURN (this->flowname_,
+ char [BUFSIZ],
+ 0);
+ ACE_OS::sprintf (this->flowname_,
+ "Data_%s",
+ this->protocol_);
+ TAO_Forward_FlowSpec_Entry entry (this->flowname_,
"IN",
"USER_DEFINED",
flow_protocol_str,
@@ -482,7 +366,7 @@ Client::run (void)
ACE_ERROR_RETURN ((LM_ERROR,"streamctrl::bind_devs failed\n"),-1);
AVStreams::flowSpec start_spec (1);
start_spec.length (1);
- start_spec [0] = "Data";
+ start_spec [0] = CORBA::string_dup (this->flowname_);
this->streamctrl_.start (start_spec,ACE_TRY_ENV);
ACE_TRY_CHECK;
// Schedule a timer for the for the flow handler.
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
index a5d8493e83a..df40377a781 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
@@ -14,74 +14,33 @@
#include "orbsvcs/AV/MCast.h"
class FTP_Client_Flow_Handler
- :public virtual TAO_AV_Flow_Handler
+ :public virtual ACE_Event_Handler
{
public:
- FTP_Client_Flow_Handler (TAO_ORB_Manager *orb_manager);
+ FTP_Client_Flow_Handler (TAO_ORB_Manager *orb_manager,
+ ACE_Time_Value &timeout);
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg = 0);
+ virtual int start (void);
+ virtual int stop (void);
+ virtual int set_protocol_object (TAO_AV_Protocol_Object *object);
protected:
TAO_ORB_Manager *orb_manager_;
long timer_id_;
int count_;
+ TAO_AV_Protocol_Object *protocol_object_;
+ ACE_Time_Value timeout_;
};
-class FTP_Client_UDP_Flow_Handler
-:public FTP_Client_Flow_Handler,
- public TAO_AV_UDP_Flow_Handler
-{
-public:
- FTP_Client_UDP_Flow_Handler (TAO_ORB_Manager *orb_manager = 0);
- virtual int start (void);
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg = 0);
-};
-
-class FTP_Client_TCP_Flow_Handler
-:public FTP_Client_Flow_Handler,
- public TAO_AV_TCP_Flow_Handler
-{
-public:
- FTP_Client_TCP_Flow_Handler (TAO_ORB_Manager *orb_manager = 0);
- virtual int start (void);
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg = 0);
-};
-
-class FTP_Client_SFP_Flow_Handler
- :public FTP_Client_Flow_Handler,
- public ACE_Event_Handler
-{
-public:
- FTP_Client_SFP_Flow_Handler (TAO_ORB_Manager *orb_manager);
- virtual int start (void);
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg = 0);
- virtual TAO_AV_Transport *transport (void);
- virtual void set_sfp_object (TAO_SFP_Object *object);
-protected:
- TAO_SFP_Object *sfp_object_;
-};
-
-class FTP_Client_UDP_MCast_Flow_Handler
- :public FTP_Client_Flow_Handler,
- public TAO_AV_UDP_MCast_Flow_Handler
-{
-public:
- FTP_Client_UDP_MCast_Flow_Handler (TAO_ORB_Manager *orb_manager = 0);
- virtual int start (void);
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg = 0);
-};
-
-class FTP_SFP_Object
- :public TAO_SFP_Object
+class FTP_Client_Callback
+ :public TAO_AV_Callback
{
public:
- FTP_SFP_Object (FTP_Client_SFP_Flow_Handler *handler);
- virtual int start (void);
+ FTP_Client_Callback (FTP_Client_Flow_Handler *handler);
+ virtual int handle_start (void);
+ virtual int handle_stop (void);
protected:
- FTP_Client_SFP_Flow_Handler *handler_;
+ FTP_Client_Flow_Handler *handler_;
};
class FTP_Client_StreamEndPoint
@@ -90,19 +49,15 @@ class FTP_Client_StreamEndPoint
public:
FTP_Client_StreamEndPoint (TAO_ORB_Manager *orb_manager = 0);
- virtual int make_udp_flow_handler (TAO_AV_UDP_Flow_Handler *&handler);
- // call to make a new flow handler for a dgram flow.
-
- virtual int make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&handler);
- // call to make a new flow handler for a dgram flow.
-
- virtual int make_dgram_mcast_flow_handler (TAO_AV_UDP_MCast_Flow_Handler *&handler);
- // call to make a new flow handler for a mcast dgram flow.
+ virtual int get_callback (const char *flowname,
+ TAO_AV_Callback *&callback);
- virtual int get_sfp_object (const char *flowname,
- TAO_SFP_Object *&sfp_object);
+ virtual int set_protocol_object (const char *flowname,
+ TAO_AV_Protocol_Object *object);
protected:
TAO_ORB_Manager *orb_manager_;
+ FTP_Client_Flow_Handler *handler_;
+ FTP_Client_Callback *callback_;
};
typedef TAO_AV_Endpoint_Reactive_Strategy_A<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl> ENDPOINT_STRATEGY;
@@ -132,6 +87,7 @@ public:
int init (int argc, char **argv);
int run (void);
FILE *file (void);
+ char *flowname (void);
TAO_StreamCtrl* streamctrl (void);
private:
int parse_args (int argc, char **argv);
@@ -151,6 +107,7 @@ private:
TAO_Naming_Client my_naming_client_;
FILE *fp_;
char *protocol_;
+ char *flowname_;
int use_sfp_;
};
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp
index fd1fff13d48..7948921f316 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp
@@ -8,139 +8,28 @@ FTP_Server_StreamEndPoint::FTP_Server_StreamEndPoint (void)
}
int
-FTP_Server_StreamEndPoint::make_udp_flow_handler (TAO_AV_UDP_Flow_Handler *&handler)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::make_udp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Server_UDP_Flow_Handler,
- -1);
-}
-
-int
-FTP_Server_StreamEndPoint::make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&handler)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::make_tcp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Server_TCP_Flow_Handler,
- -1);
-}
-
-int
-FTP_Server_StreamEndPoint::make_dgram_mcast_flow_handler (TAO_AV_UDP_MCast_Flow_Handler *&handler)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::make_udp_flow_handler"));
- ACE_NEW_RETURN (handler,
- FTP_Server_UDP_MCast_Flow_Handler,
- -1);
-}
-
-
-int
-FTP_Server_StreamEndPoint::get_sfp_callback (const char *flowname,
- TAO_SFP_Callback *&callback)
+FTP_Server_StreamEndPoint::get_callback (const char *flowname,
+ TAO_AV_Callback *&callback)
{
ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::get_sfp_callback\n"));
ACE_NEW_RETURN (callback,
- FTP_SFP_Callback,
+ FTP_Server_Callback,
-1);
return 0;
}
-
-FTP_Server_Flow_Handler::FTP_Server_Flow_Handler (void)
-{
-}
-
-int
-FTP_Server_Flow_Handler::start (void)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_Flow_Handler::start"));
- return 0;
-}
-
int
-FTP_Server_Flow_Handler::stop (void)
+FTP_Server_Callback::handle_stop (void)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::stop"));
+ ACE_DEBUG ((LM_DEBUG,"FTP_Server_Callback::stop"));
ACE_OS::fclose (SERVER::instance ()->file ());
- CORBA::ORB_var orb = TAO_AV_CORE::instance ()->orb_manager ()->orb ();
- orb->shutdown ();
- return 0;
-}
-
-int
-FTP_Server_Flow_Handler::input (ACE_HANDLE fd)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_StreamEndPoint::handle_input"));
- char buf[BUFSIZ];
- int result = this->transport_->recv (buf,
- BUFSIZ);
- if (result < 0)
- ACE_ERROR_RETURN ((LM_ERROR,"FTP_Server_Flow_Handler::recv failed\n"),-1);
- result = ACE_OS::fwrite (buf,BUFSIZ,1,SERVER::instance ()->file ());
- if (result == 0)
- ACE_ERROR_RETURN ((LM_ERROR,"FTP_Server_Flow_Handler::fwrite failed\n"),-1);
- return 0;
-}
-
-int
-FTP_Server_UDP_Flow_Handler::handle_input (ACE_HANDLE fd)
-{
- return FTP_Server_Flow_Handler::input (fd);
-}
-
-int
-FTP_Server_TCP_Flow_Handler::handle_input (ACE_HANDLE fd)
-{
- return FTP_Server_Flow_Handler::input (fd);
-}
-
-int
-FTP_Server_UDP_MCast_Flow_Handler::handle_input (ACE_HANDLE fd)
-{
- return FTP_Server_Flow_Handler::input (fd);
-}
-
-int
-FTP_Server_TCP_Flow_Handler::get_handle (void) const
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_TCP_Flow_Handler::get_handle\n"));
- return this->peer ().get_handle ();
-}
-
-int
-FTP_Server_TCP_Flow_Handler::start (void)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_TCP_Flow_Handler::start "));
- ACE_HANDLE handle = this->peer ().get_handle ();
- ACE_Event_Handler *handler = 0;
- int result = TAO_AV_CORE::instance ()->orb_manager ()->orb ()->orb_core ()->reactor ()->handler (handle,
- ACE_Event_Handler::READ_MASK,
- &handler);
- if (handler == 0)
- ACE_DEBUG ((LM_DEBUG,"FTP_Server_Flow_Handler::start:handler is null\n"));
- return 0;
-}
-
-
-int
-FTP_SFP_Callback::start_failed (void)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_SFP_Callback::start_failed\n"));
return 0;
}
int
-FTP_SFP_Callback::stream_established (void)
+FTP_Server_Callback::receive_frame (ACE_Message_Block *frame)
{
- ACE_DEBUG ((LM_DEBUG,"FTP_SFP_Callback::stream_established\n"));
- return 0;
-}
-
-int
-FTP_SFP_Callback::receive_frame (ACE_Message_Block *frame)
-{
- ACE_DEBUG ((LM_DEBUG,"FTP_SFP_Callback::receive_frame\n"));
+ ACE_DEBUG ((LM_DEBUG,"FTP_Server_Callback::receive_frame\n"));
while (frame != 0)
{
int result = ACE_OS::fwrite (frame->rd_ptr (),
@@ -154,13 +43,13 @@ FTP_SFP_Callback::receive_frame (ACE_Message_Block *frame)
return 0;
}
-void
-FTP_SFP_Callback::end_stream (void)
+int
+FTP_Server_Callback::handle_end_stream (void)
{
ACE_DEBUG ((LM_DEBUG,"FTP_SFP_Callback::end_stream\n"));
- ACE_OS::fclose (SERVER::instance ()->file ());
CORBA::ORB_var orb = TAO_AV_CORE::instance ()->orb_manager ()->orb ();
orb->shutdown ();
+ return 0;
}
Server::Server (void)
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h
index a7cb395e5e3..9329bf29e11 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h
@@ -9,74 +9,24 @@
#include "orbsvcs/AV/Transport.h"
#include "orbsvcs/AV/sfp.h"
#include "orbsvcs/AV/MCast.h"
+#include "orbsvcs/AV/Policy.h"
class FTP_Server_StreamEndPoint
:public TAO_Server_StreamEndPoint
{
public:
FTP_Server_StreamEndPoint (void);
- virtual int make_udp_flow_handler (TAO_AV_UDP_Flow_Handler *&handler);
- // call to make a new flow handler for a dgram flow.
- virtual int make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&handler);
- // call to make a new flow handler for a dgram flow.
- virtual int make_dgram_mcast_flow_handler (TAO_AV_UDP_MCast_Flow_Handler *&handler);
- // call to make a new flow handler for a mcast dgram flow.
-
- virtual int get_sfp_callback (const char *flowname,
- TAO_SFP_Callback *&callback);
-};
-
-class FTP_Server_Flow_Handler
- :public virtual TAO_AV_Flow_Handler
-{
-public:
- FTP_Server_Flow_Handler (void);
- virtual int input (ACE_HANDLE fd);
- virtual int start (void);
- virtual int stop (void);
+ virtual int get_callback (const char *flowname,
+ TAO_AV_Callback *&callback);
};
-class FTP_Server_UDP_Flow_Handler
- :public TAO_AV_UDP_Flow_Handler,
- public FTP_Server_Flow_Handler
+class FTP_Server_Callback
+ :public TAO_AV_Callback
{
public:
- virtual int handle_input (ACE_HANDLE fd);
-};
-
-class FTP_Server_TCP_Flow_Handler
- :public TAO_AV_TCP_Flow_Handler,
- public FTP_Server_Flow_Handler
-{
-public:
- virtual int start (void);
- virtual int handle_input (ACE_HANDLE fd);
- virtual int get_handle (void) const;
-};
-
-class FTP_Server_UDP_MCast_Flow_Handler
- :public TAO_AV_UDP_MCast_Flow_Handler,
- public FTP_Server_Flow_Handler
-{
-public:
- virtual int handle_input (ACE_HANDLE fd);
-};
-
-class FTP_SFP_Callback
- :public TAO_SFP_Callback
-{
- virtual int start_failed (void);
- // This is called for both active and passive start.
-
- virtual int stream_established (void);
- // This is a callback for both active and passive stream
- // establshment.
-
+ virtual int handle_stop (void);
virtual int receive_frame (ACE_Message_Block *frame);
- // upcall to the application to receive a frame.
-
- virtual void end_stream (void);
- // called when the EndofStream message is received.
+ virtual int handle_end_stream (void);
};
class Server