/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // ace // // = FILENAME // Proactor_Impl.h // // = AUTHOR // Alexander Babu Arulanthu // // ============================================================================ #if !defined (ACE_PROACTOR_IMPL_H) #define ACE_PROACTOR_IMPL_H #include "ace/OS.h" #if ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))) // This only works on Win32 platforms and on Unix platforms supporting // aio calls. #include "ace/Asynch_IO.h" #include "ace/Reactor.h" class ACE_Export ACE_Proactor_Impl : public ACE_Event_Handler { // = TITLE // // A manager for asynchronous event demultiplexing. This class // is the base class for all the concrete implementation // classes. // // = DESCRIPTION // // See the Proactor pattern description at // http://www.cs.wustl.edu/~schmidt/proactor.ps.gz for more // details. public: virtual ~ACE_Proactor_Impl (void) {} // Virtual destruction. virtual int close (void) = 0; // Close the IO completion port. virtual int register_handle (ACE_HANDLE handle, const void *completion_key) = 0; // This method adds the to the I/O completion port. This // function is a no-op function for Unix systems. // = Timer management. virtual long schedule_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &time) = 0; // Schedule a that will expire after