ACE  6.1.0
Public Member Functions | Protected Member Functions
ACE_Msg_WFMO_Reactor Class Reference

An OO event demultiplexor and event handler dispatcher for Win32 <MsgWaitForMultipleObjects>. More...

#include <Msg_WFMO_Reactor.h>

Inheritance diagram for ACE_Msg_WFMO_Reactor:
Inheritance graph
[legend]
Collaboration diagram for ACE_Msg_WFMO_Reactor:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ACE_Msg_WFMO_Reactor (ACE_Sig_Handler *=0, ACE_Timer_Queue *=0)
 Initialize <ACE_Msg_WFMO_Reactor> with the default size.
 ACE_Msg_WFMO_Reactor (size_t size, int unused=0, ACE_Sig_Handler *=0, ACE_Timer_Queue *=0)
virtual ~ACE_Msg_WFMO_Reactor (void)
 Close down the ACE_Msg_WFMO_Reactor and release all of its resources.
virtual int handle_events (ACE_Time_Value *max_wait_time=0)
virtual int alertable_handle_events (ACE_Time_Value *max_wait_time=0)
virtual int handle_events (ACE_Time_Value &max_wait_time)
virtual int alertable_handle_events (ACE_Time_Value &max_wait_time)

Protected Member Functions

virtual DWORD wait_for_multiple_events (int timeout, int alertable)
 Wait for timer and I/O events to occur.
virtual DWORD poll_remaining_handles (DWORD index)
 Check for activity on remaining handles.
virtual int dispatch_window_messages (void)
 Dispatches window messages.

Detailed Description

An OO event demultiplexor and event handler dispatcher for Win32 <MsgWaitForMultipleObjects>.

The ACE_Msg_WFMO_Reactor is an OO event demultiplexor and event handler Reactor. It differs from <ACE_WFMO_Reactor> by its ability to react on Windows messages. It is needed when the task should serve also as a COM/DCOM server.


Constructor & Destructor Documentation

ACE_Msg_WFMO_Reactor::ACE_Msg_WFMO_Reactor ( ACE_Sig_Handler sh = 0,
ACE_Timer_Queue tq = 0 
)

Initialize <ACE_Msg_WFMO_Reactor> with the default size.

ACE_Msg_WFMO_Reactor::ACE_Msg_WFMO_Reactor ( size_t  size,
int  unused = 0,
ACE_Sig_Handler sh = 0,
ACE_Timer_Queue tq = 0 
)

Initialize <ACE_Msg_WFMO_Reactor> with size size. Two slots will be added to the size parameter which will store handles used for internal management purposes.

ACE_Msg_WFMO_Reactor::~ACE_Msg_WFMO_Reactor ( void  ) [virtual]

Close down the ACE_Msg_WFMO_Reactor and release all of its resources.


Member Function Documentation

int ACE_Msg_WFMO_Reactor::alertable_handle_events ( ACE_Time_Value max_wait_time = 0) [inline, virtual]

Reimplemented from ACE_WFMO_Reactor.

int ACE_Msg_WFMO_Reactor::alertable_handle_events ( ACE_Time_Value max_wait_time) [inline, virtual]

Reimplemented from ACE_WFMO_Reactor.

int ACE_Msg_WFMO_Reactor::dispatch_window_messages ( void  ) [protected, virtual]

Dispatches window messages.

Reimplemented from ACE_WFMO_Reactor.

int ACE_Msg_WFMO_Reactor::handle_events ( ACE_Time_Value max_wait_time = 0) [inline, virtual]

This event loop driver blocks for up to max_wait_time before returning. It will return earlier if timer events, I/O events, window events, or signal events occur. Note that max_wait_time can be 0, in which case this method blocks indefinitely until events occur.

max_wait_time is decremented to reflect how much time this call took. For instance, if a time value of 3 seconds is passed to handle_events and an event occurs after 2 seconds, max_wait_time will equal 1 second. This can be used if an application wishes to handle events for some fixed amount of time.

<MsgWaitForMultipleObjects> is used as the demultiplexing call

Returns the total number of ACE_Event_Handlers that were dispatched, 0 if the max_wait_time elapsed without dispatching any handlers, or -1 if an error occurs.

The only difference between <alertable_handle_events> and <handle_events> is that in the alertable case, MWMO_ALERTABLE is passed to <MsgWaitForMultipleObjects> for the <bAlertable> option.

Reimplemented from ACE_WFMO_Reactor.

int ACE_Msg_WFMO_Reactor::handle_events ( ACE_Time_Value max_wait_time) [inline, virtual]

This method is just like the one above, except the max_wait_time value is a reference and can therefore never be NULL.

Reimplemented from ACE_WFMO_Reactor.

DWORD ACE_Msg_WFMO_Reactor::poll_remaining_handles ( DWORD  index) [protected, virtual]

Check for activity on remaining handles.

Reimplemented from ACE_WFMO_Reactor.

DWORD ACE_Msg_WFMO_Reactor::wait_for_multiple_events ( int  timeout,
int  alertable 
) [protected, virtual]

Wait for timer and I/O events to occur.

Reimplemented from ACE_WFMO_Reactor.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines