// $Id$ // ============================================================================ // // = LIBRARY // TAO/orbsvcs/tests/AVStreams/Latency // // = FILENAME // ping.h // // = AUTHOR // Carlos O'Ryan // // ============================================================================ #ifndef TAO_PONG_H #define TAO_PONG_H #include "orbsvcs/orbsvcs/AV/AVStreams_i.h" #include "orbsvcs/orbsvcs/AV/Policy.h" #include "orbsvcs/orbsvcs/AV/Flows_T.h" class Pong_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 Pong_Recv : public TAO_FlowConsumer { public: Pong_Recv (void); virtual int get_callback (const char *flowname, TAO_AV_Callback *&callback); private: Pong_Recv_Callback callback_; // The callback object... }; class Ping_Send_Callback : public TAO_AV_Callback { public: Ping_Send_Callback (void); virtual int handle_timeout (void *arg); virtual int handle_end_stream (void); virtual void get_timeout (ACE_Time_Value *&tv, void *&arg); private: ACE_Time_Value timeout_; // the timeout value ACE_Message_Block frame_; // Pre-allocate the message block to send... int count_; }; class Ping_Send : public TAO_FlowProducer { public: Ping_Send (void); virtual int get_callback (const char *flowname, TAO_AV_Callback *&callback); private: Ping_Send_Callback callback_; // The callback object... }; typedef TAO_AV_Endpoint_Reactive_Strategy_A Reactive_Strategy; typedef TAO_FDev Pong_Recv_FDev; typedef TAO_FDev Ping_Send_FDev; #endif /* TAO_PONG_H */