Changes to attempt to silence bcc64x
[ACE_TAO.git] / TAO / orbsvcs / tests / AVStreams / Full_Profile / ftp.h
blob805f58fd42c6d47457c81a474b9a919b53fcaa75
1 /* -*- C++ -*- */
2 #ifndef TAO_AV_FTP_H
3 #define TAO_AV_FTP_H
5 #include "ace/Get_Opt.h"
6 #include "ace/High_Res_Timer.h"
7 #include "orbsvcs/AV/AVStreams_i.h"
8 #include "orbsvcs/AV/Flows_T.h"
9 #include "orbsvcs/AV/Endpoint_Strategy.h"
10 #include "orbsvcs/AV/Transport.h"
11 #include "orbsvcs/AV/sfp.h"
12 #include "orbsvcs/AV/MCast.h"
14 class Client;
16 class FTP_Client_Callback;
18 class FTP_Client_Producer
19 :public virtual TAO_FlowProducer
21 public:
22 FTP_Client_Producer ();
23 virtual int get_callback (const char *flowname,
24 TAO_AV_Callback *&callback);
25 int set_protocol_object (const char *flowname,
26 TAO_AV_Protocol_Object *object);
27 protected:
28 FTP_Client_Callback *callback_;
31 class FTP_Client_Callback
32 :public TAO_AV_Callback
34 public:
35 FTP_Client_Callback ();
36 virtual int handle_timeout (void *arg);
37 virtual int handle_end_stream ();
38 virtual void get_timeout (ACE_Time_Value *&tv,
39 void *&arg);
40 void set_protocol_object (TAO_AV_Protocol_Object *protocol_object) {this->protocol_object_ = protocol_object;}
42 protected:
43 int count_;
44 TAO_AV_Protocol_Object *protocol_object_;
47 typedef TAO_AV_Endpoint_Reactive_Strategy_A<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl> ENDPOINT_STRATEGY;
49 class Client
51 public:
52 Client ();
53 int init (int argc, ACE_TCHAR *argv[]);
54 int run ();
55 FILE *file ();
56 const char *flowname ();
57 TAO_StreamCtrl* streamctrl ();
58 AVStreams::protocolSpec protocols ();
59 const char *format ();
60 const char *address ();
61 private:
62 int parse_args (int argc, ACE_TCHAR *argv[]);
63 ENDPOINT_STRATEGY endpoint_strategy_;
64 TAO_StreamCtrl streamctrl_;
65 // Video stream controller
67 int argc_;
68 ACE_TCHAR **argv_;
69 const char *filename_;
70 ACE_CString address_;
71 ACE_CString peer_addr_;
73 FILE *fp_;
74 char *protocol_;
75 ACE_CString flowname_;
76 int use_sfp_;
77 CORBA::ORB_var orb_;
78 PortableServer::POA_ptr poa_;
79 TAO_StreamEndPoint_A *streamendpoint_a_;
80 AVStreams::StreamEndPoint_A_var sep_a_;
81 FTP_Client_Producer *fep_a_;
82 AVStreams::FlowProducer_var fep_a_obj_;
85 typedef ACE_Unmanaged_Singleton<Client,ACE_Null_Mutex> CLIENT;
87 #endif /* TAO_AV_FTP_H */