/* -*- C++ -*- */ // $Id: Proactor.h,v // ============================================================================ // // = LIBRARY // ace // // = FILENAME // Proactor.h // // = AUTHOR // Irfan Pyarali (irfan@cs.wustl.edu) // Tim Harrison (harrison@cs.wustl.edu) // // ============================================================================ #if !defined (ACE_PROACTOR_H) #define ACE_PROACTOR_H #include "ace/Asynch_IO.h" #include "ace/Thread_Manager.h" #if defined (ACE_WIN32) // This only works on Win32 platforms class ACE_Timer_Queue; class ACE_Asynch_Result; class ACE_Proactor_Timer_Handler; class ACE_Export ACE_Proactor // // = TITLE // // A Proactor for asynchronous I/O events. // // = DESCRIPTION // // A manager for the I/O completion port. { friend class ACE_Proactor_Timer_Handler; // Timer Handler has special privileges public: ACE_Proactor (size_t number_of_threads = 0, ACE_Timer_Queue *tq = 0); // A do nothing constructor. virtual ~ACE_Proactor (void); // Virtual destruction. virtual int close (void); // Close the IO completion port virtual int register_handle (ACE_HANDLE handle, const void *completion_key); // This method adds the to the I/O completion port // = Timer management. virtual int schedule_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &time); // Schedule a that will expire after