summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/AVStreams/Latency/ping.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams/Latency/ping.h')
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Latency/ping.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/Latency/ping.h b/TAO/orbsvcs/tests/AVStreams/Latency/ping.h
new file mode 100644
index 00000000000..c9063f976e3
--- /dev/null
+++ b/TAO/orbsvcs/tests/AVStreams/Latency/ping.h
@@ -0,0 +1,73 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/AVStreams/Latency
+//
+// = FILENAME
+// ping.h
+//
+// = AUTHOR
+// Carlos O'Ryan
+//
+// ============================================================================
+
+#ifndef TAO_PING_H
+#define TAO_PING_H
+
+#include "orbsvcs/AV/AVStreams_i.h"
+#include "orbsvcs/AV/Policy.h"
+#include "orbsvcs/AV/Flows_T.h"
+
+class Ping_Recv_Callback : public TAO_AV_Callback
+{
+public:
+ virtual int handle_stop (void);
+ virtual int receive_frame (ACE_Message_Block *frame,
+ TAO_AV_frame_info *frame_info = 0,
+ const ACE_Addr &peer_address = ACE_Addr::sap_any);
+ virtual int handle_destroy (void);
+};
+
+class Ping_Recv : public TAO_FlowConsumer
+{
+public:
+ Ping_Recv (void);
+
+ virtual int get_callback (const char *flowname,
+ TAO_AV_Callback *&callback);
+
+private:
+ Ping_Recv_Callback callback_;
+ // The callback object...
+};
+
+class Pong_Send_Callback : public TAO_AV_Callback
+{
+public:
+
+ int send_response (ACE_hrtime_t stamp);
+ // Ad-hoc method to send a response outside the context of a
+ // handle_timeout.
+
+ virtual int handle_timeout (void *arg);
+ virtual int handle_end_stream (void);
+ virtual void get_timeout (ACE_Time_Value *&tv,
+ void *&arg);
+};
+
+class Pong_Send : public TAO_FlowProducer
+{
+public:
+ Pong_Send (void);
+ virtual int get_callback (const char *flowname,
+ TAO_AV_Callback *&callback);
+};
+
+typedef TAO_AV_Endpoint_Reactive_Strategy_B <TAO_StreamEndPoint_B,TAO_VDev,AV_Null_MediaCtrl> Reactive_Strategy;
+
+typedef TAO_FDev<TAO_FlowProducer,Ping_Recv> Ping_Recv_FDev;
+typedef TAO_FDev<Pong_Send,TAO_FlowConsumer> Pong_Send_FDev;
+
+#endif /* TAO_PING_H */