NAME
ACE_Handler - This base class defines the interface for receiving the results of asynchronous operations.
SYNOPSIS
class ACE_Handler
{
public:
ACE_Handler (void);
ACE_Handler (ACE_Proactor *p);
virtual ~ACE_Handler (void);
virtual void handle_read_stream (
const ACE_Asynch_Read_Stream::Result &result
);
virtual void handle_write_stream (
const ACE_Asynch_Write_Stream::Result &result
);
virtual void handle_read_file (
const ACE_Asynch_Read_File::Result &result
);
virtual void handle_write_file (
const ACE_Asynch_Write_File::Result &result
);
virtual void handle_accept (
const ACE_Asynch_Accept::Result &result
);
virtual void handle_transmit_file (
const ACE_Asynch_Transmit_File::Result &result
);
virtual void handle_time_out (
const ACE_Time_Value &tv,
const void *act = 0
);
virtual void handle_wakeup (void);
ACE_Proactor *proactor (void);
void proactor (ACE_Proactor *p);
virtual ACE_HANDLE handle (void) const;
protected:
ACE_Proactor *proactor_;
};
DESCRIPTION
This works on Win32 (#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) platforms and on POSIX4 platforms with aio_* routines (#if defined (ACE_HAS_AIO_CALLS))
On Win32 platforms, the implementation of ACE_Asynch_Transmit_File and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0 or higher.
PUBLIC MEMBERS
ACE_Handler (void);
A do nothing constructor.
ACE_Handler (ACE_Proactor *p);
A do nothing constructor which allows proactor to be set to p.
virtual ~ACE_Handler (void);
Virtual destruction.
virtual void handle_read_stream (
const ACE_Asynch_Read_Stream::Result &result
);
This method will be called when an asynchronous read completes on a stream.
virtual void handle_write_stream (
const ACE_Asynch_Write_Stream::Result &result
);
This method will be called when an asynchronous write completes on a stream.
virtual void handle_read_file (
const ACE_Asynch_Read_File::Result &result
);
This method will be called when an asynchronous read completes on a file.
virtual void handle_write_file (
const ACE_Asynch_Write_File::Result &result
);
This method will be called when an asynchronous write completes on a file.
virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
This method will be called when an asynchronous accept completes.
virtual void handle_transmit_file (
const ACE_Asynch_Transmit_File::Result &result
);
This method will be called when an asynchronous transmit file completes.
virtual void handle_time_out (
const ACE_Time_Value &tv,
const void *act = 0
);
Called when timer expires. tv was the requested time value and act is the ACT passed when scheduling the timer.
virtual void handle_wakeup (void);
This is method works with the run_event_loop of the ACE_Proactor. A special Wake_Up_Completion is used to wake up all the threads that are blocking for completions.
ACE_Proactor *proactor (void);
Get the proactor associated with this handler.
void proactor (ACE_Proactor *p);
Set the proactor.
virtual ACE_HANDLE handle (void) const;
Get the I/O handle used by this handler. This method will be called by the ACE_Asynch_* classes when an ACE_INVALID_HANDLE is passed to open.
PROTECTED MEMBERS
ACE_Proactor *proactor_;
The proactor associated with this handler.
AUTHOR
Irfan Pyarali [email protected], Tim Harrison [email protected] and Alexander Babu Arulanthu [email protected]
LIBRARY
ace