#ifndef _BULKDATA_SENDER_DEFAULTCB_H #define _BULKDATA_SENDER_DEFAULTCB_H /** @file bulkDataSenderDefaultCb.h */ /** @defgroup BULKDATASENDERDEFAULTCBDOC Bulk Data Sender Default Cb * @{ * @htmlonly

Description

Data can be send in an asynchronous way using a callback. This file provides a default callback. In order to use it, the user must provide his own implementation following this template. The get_timeout(...) method sets the time interval between two successive handel_timeout(...) calls.

Links

@endhtmlonly * @} */ class BulkDataSenderDefaultCallback : public TAO_AV_Callback { public: /** * Constructor * @param stream established stream on which data are sent */ BulkDataSenderDefaultCallback (TAO_StreamCtrl * stream_p) { ACS_TRACE("BulkDataSenderDefaultCallback::BulkDataSenderDefaultCallback"); isFepAlive_m = true; } /** * Method called with a period determined by the the timeout tv parameter * (see method get_timeout(...). * @return void * @htmlonly

@endhtmlonly */ virtual int handle_timeout (void *arg) { ACS_TRACE("BulkDataSenderDefaultCallback::handle_timeout"); return 0; } virtual int handle_end_stream (void) { ACS_TRACE("BulkDataSenderDefaultCallback::handle_end_stream"); return 0; } /** * Sets the timeout tv which determines the period of sending data. * (zoer means that the callback is never activated). * @return void * @htmlonly

@endhtmlonly */ virtual void get_timeout (ACE_Time_Value *&tv, void *&arg) { ACS_TRACE("BulkDataSenderDefaultCallback::get_timeout"); tv = 0; /* ACE_Time_Value *timeout; ACE_NEW (timeout,ACE_Time_Value(0,500000)); tv = timeout; */ } void set_protocol_object (TAO_AV_Protocol_Object * prtclObject_p) { ACS_TRACE("BulkDataSenderDefaultCallback::set_protocol_object"); protocolObject_p = prtclObject_p; } virtual int handle_destroy (void) { ACS_TRACE("BulkDataSenderDefaultCallback::handle_destroy"); isFepAlive_m = false; return 0; } ACE_HANDLE getHandle() { ACE_Event_Handler *event_handler = handler_->event_handler(); ACE_HANDLE handle = event_handler->get_handle(); return handle; } CORBA::Boolean isFepAlive() { return isFepAlive_m; } private: TAO_StreamCtrl * stream_p; TAO_AV_Protocol_Object * protocolObject_p; CORBA::Boolean isFepAlive_m; }; #endif /* _BULKDATA_SENDER_DEFAULTCB_H */