00001 #ifndef _BULKDATA_DISTRIBUTER_STREAM_CB_H 00002 #define _BULKDATA_DISTRIBUTER_STREAM_CB_H 00003 00004 #ifndef __cplusplus 00005 #error This is a C++ include file and cannot be used from plain C 00006 #endif 00007 00008 #include "orbsvcs/AV/AVStreams_i.h" 00009 #include "orbsvcs/AV/Endpoint_Strategy.h" 00010 #include "orbsvcs/AV/Protocol_Factory.h" 00011 #include "orbsvcs/AV/Flows_T.h" 00012 #include "orbsvcs/AV/Transport.h" 00013 #include "orbsvcs/AV/Policy.h" 00014 00015 #include <baci.h> 00016 00017 #include "ACSBulkDataError.h" 00018 00019 #include <iostream> 00020 00021 #include "bulkDataDistributerImpl.h" 00022 00023 class BulkDataDistributerStreamCb : public TAO_AV_Callback 00024 { 00025 00026 public: 00027 00028 BulkDataDistributerStreamCb(); 00029 00030 BulkDataDistributerStreamCb(TAO_StreamCtrl * stream_p); 00031 00032 ~BulkDataDistributerStreamCb(); 00033 00034 virtual int handle_start(void); 00035 00036 virtual int handle_stop (void); 00037 00038 virtual int handle_destroy (void); 00039 00040 virtual int receive_frame (ACE_Message_Block *frame_p, TAO_AV_frame_info *frame_info, const ACE_Addr &); 00041 00042 virtual void setFlowname (const char*); 00043 00044 virtual void setDistributerImpl(BulkDataDistributerImpl<BulkDataDistributerStreamCb> *distr_p); 00045 00046 ACE_HANDLE getHandle(); 00047 00048 CORBA::Boolean isFepAlive() 00049 { 00050 return isFepAlive_m; 00051 } 00052 00053 protected: 00054 00055 ACE_CString flowname_m; 00056 00057 CORBA::ULong flowNumber_m; 00058 00059 private: 00060 00061 BulkDataDistributerImpl<BulkDataDistributerStreamCb> *distr_m; 00062 00063 CORBA::Boolean isFepAlive_m; 00064 }; 00065 00066 00067 #endif