summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-04 22:51:24 +0000
committernaga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-04 22:51:24 +0000
commitdbdd52520e29c3d3386e78c0942d5ccdb5ee8769 (patch)
treea49c37bb056a5c19c82b21f35f0fcf27e1b59bc3
parenta0089ab62c9f95cda93a4618ad8fa45fd4c4acf5 (diff)
downloadATCD-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.cpp35
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h16
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/server.cpp16
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/server.h12
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
{