diff options
author | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-04 22:51:24 +0000 |
---|---|---|
committer | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-04 22:51:24 +0000 |
commit | dbdd52520e29c3d3386e78c0942d5ccdb5ee8769 (patch) | |
tree | a49c37bb056a5c19c82b21f35f0fcf27e1b59bc3 | |
parent | a0089ab62c9f95cda93a4618ad8fa45fd4c4acf5 (diff) | |
download | ATCD-dbdd52520e29c3d3386e78c0942d5ccdb5ee8769.tar.gz |
Added handler for Multicast Pluggable Data Protocol and if given a multicast
address on the command line to ftp it will multicast the file to that address.
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp | 35 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h | 16 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp | 16 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/Pluggable/server.h | 12 |
4 files changed, 79 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp index 0ccac13c00c..ae09d9d3b26 100644 --- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp @@ -39,6 +39,15 @@ FTP_Client_StreamEndPoint::make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&hand -1); } +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) @@ -102,6 +111,32 @@ FTP_Client_TCP_Flow_Handler::handle_timeout (const ACE_Time_Value &tv, 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) +{ + 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); + 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) diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h index aba712f8f71..a5d8493e83a 100644 --- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h @@ -11,6 +11,7 @@ #include "orbsvcs/AV/Endpoint_Strategy.h" #include "orbsvcs/AV/Transport.h" #include "orbsvcs/AV/sfp.h" +#include "orbsvcs/AV/MCast.h" class FTP_Client_Flow_Handler :public virtual TAO_AV_Flow_Handler @@ -62,6 +63,17 @@ 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 { @@ -83,6 +95,10 @@ public: 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_object (const char *flowname, TAO_SFP_Object *&sfp_object); protected: diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp index ebac5bd599a..fd1fff13d48 100644 --- a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp @@ -26,6 +26,16 @@ FTP_Server_StreamEndPoint::make_tcp_flow_handler (TAO_AV_TCP_Flow_Handler *&hand } 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) { @@ -86,6 +96,12 @@ FTP_Server_TCP_Flow_Handler::handle_input (ACE_HANDLE 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")); diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h index 9bed48e0804..a7cb395e5e3 100644 --- a/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h +++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/server.h @@ -8,6 +8,7 @@ #include "orbsvcs/AV/Endpoint_Strategy.h" #include "orbsvcs/AV/Transport.h" #include "orbsvcs/AV/sfp.h" +#include "orbsvcs/AV/MCast.h" class FTP_Server_StreamEndPoint :public TAO_Server_StreamEndPoint @@ -18,6 +19,9 @@ public: // 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); }; @@ -50,6 +54,14 @@ public: 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 { |