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"
16 class FTP_Client_Callback
;
18 class FTP_Client_Producer
19 :public virtual TAO_FlowProducer
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
);
28 FTP_Client_Callback
*callback_
;
31 class FTP_Client_Callback
32 :public TAO_AV_Callback
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
,
40 void set_protocol_object (TAO_AV_Protocol_Object
*protocol_object
) {this->protocol_object_
= protocol_object
;}
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
;
53 int init (int argc
, ACE_TCHAR
*argv
[]);
56 const char *flowname ();
57 TAO_StreamCtrl
* streamctrl ();
58 AVStreams::protocolSpec
protocols ();
59 const char *format ();
60 const char *address ();
62 int parse_args (int argc
, ACE_TCHAR
*argv
[]);
63 ENDPOINT_STRATEGY endpoint_strategy_
;
64 TAO_StreamCtrl streamctrl_
;
65 // Video stream controller
69 const char *filename_
;
71 ACE_CString peer_addr_
;
75 ACE_CString flowname_
;
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 */