An abstraction for managing a bi-directional flow of messages. More...
#include <Module.h>


Public Member Functions | |
| ACE_Module (void) | |
| Create an empty Module.   | |
| virtual | ~ACE_Module (void) | 
| Shutdown the Module.   | |
| ACE_Module (const ACE_TCHAR *module_name, ACE_Task< ACE_SYNCH_USE > *writer=0, ACE_Task< ACE_SYNCH_USE > *reader=0, void *args=0, int flags=M_DELETE) | |
| int | open (const ACE_TCHAR *module_name, ACE_Task< ACE_SYNCH_USE > *writer=0, ACE_Task< ACE_SYNCH_USE > *reader=0, void *a=0, int flags=M_DELETE) | 
| int | close (int flags=M_DELETE_NONE) | 
| ACE_Task< ACE_SYNCH_USE > * | writer (void) | 
| Get the writer task.   | |
| void | writer (ACE_Task< ACE_SYNCH_USE > *q, int flags=M_DELETE_WRITER) | 
| ACE_Task< ACE_SYNCH_USE > * | reader (void) | 
| Get the reader task.   | |
| void | reader (ACE_Task< ACE_SYNCH_USE > *q, int flags=M_DELETE_READER) | 
| ACE_Task< ACE_SYNCH_USE > * | sibling (ACE_Task< ACE_SYNCH_USE > *orig) | 
| Set and get pointer to sibling ACE_Task in an ACE_Module.   | |
| const ACE_TCHAR * | name (void) const | 
| Get the module name.   | |
| void | name (const ACE_TCHAR *) | 
| Set the module name.   | |
| void * | arg (void) const | 
| Get the argument passed to the tasks.   | |
| void | arg (void *) | 
| Set the argument passed to the tasks.   | |
| void | link (ACE_Module< ACE_SYNCH_USE > *m) | 
| Link to other modules in the ustream stack.   | |
| ACE_Module< ACE_SYNCH_USE > * | next (void) | 
| Get the next pointer to the module above in the stream.   | |
| void | next (ACE_Module< ACE_SYNCH_USE > *m) | 
| Set the next pointer to the module above in the stream.   | |
| void | dump (void) const | 
| Dump the state of an object.   | |
Public Attributes | |
| ACE_ALLOC_HOOK_DECLARE | |
| Declare the dynamic allocation hooks.   | |
Private Member Functions | |
| int | close_i (int which, int flags) | 
Private Attributes | |
| ACE_Task< ACE_SYNCH_USE > * | q_pair_ [2] | 
| ACE_TCHAR | name_ [MAXPATHLEN+1] | 
| Name of the ACE_Module.   | |
| ACE_Module< ACE_SYNCH_USE > * | next_ | 
| Next ACE_Module in the stack.   | |
| void * | arg_ | 
| int | flags_ | 
An abstraction for managing a bi-directional flow of messages.
This is based on the Module concept in System V Streams, which contains a pair of Tasks, one for handling upstream processing, one for handling downstream processing. In general, you shouldn't subclass from this class, but instead subclass from the ACE_Task.
| ACE_Module< ACE_SYNCH_DECL >::ACE_Module | ( | void | ) | 
Create an empty Module.
| virtual ACE_Module< ACE_SYNCH_DECL >::~ACE_Module | ( | void | ) |  [virtual] | 
        
Shutdown the Module.
| ACE_Module< ACE_SYNCH_DECL >::ACE_Module | ( | const ACE_TCHAR * | module_name, | |
| ACE_Task< ACE_SYNCH_USE > * |  writer = 0,  | 
        |||
| ACE_Task< ACE_SYNCH_USE > * |  reader = 0,  | 
        |||
| void * |  args = 0,  | 
        |||
| int |  flags = M_DELETE | |||
| ) | 
Create an initialized module with module_name as its identity and reader and writer as its tasks.
| void ACE_Module< ACE_SYNCH_DECL >::arg | ( | void * | ) | 
Set the argument passed to the tasks.
| void* ACE_Module< ACE_SYNCH_DECL >::arg | ( | void | ) | const | 
Get the argument passed to the tasks.
| int ACE_Module< ACE_SYNCH_DECL >::close | ( | int |  flags = M_DELETE_NONE | 
          ) | 
Close down the module and its tasks. The flags argument can be used to override the default behaviour, which depends on previous flags values in calls to c'tor, <open>, <reader>, and <writer>. A previous value M_DELETE[_XXX] can not be overridden. Should not be called from within <ACE_Task::module_closed>.
| int ACE_Module< ACE_SYNCH_DECL >::close_i | ( | int | which, | |
| int | flags | |||
| ) |  [private] | 
        
Implements the close operation for either the reader or the writer task (depending on which).
| void ACE_Module< ACE_SYNCH_DECL >::dump | ( | void | ) | const | 
Dump the state of an object.
| void ACE_Module< ACE_SYNCH_DECL >::link | ( | ACE_Module< ACE_SYNCH_USE > * | m | ) | 
Link to other modules in the ustream stack.
| void ACE_Module< ACE_SYNCH_DECL >::name | ( | const ACE_TCHAR * | ) | 
Set the module name.
| const ACE_TCHAR* ACE_Module< ACE_SYNCH_DECL >::name | ( | void | ) | const | 
Get the module name.
| void ACE_Module< ACE_SYNCH_DECL >::next | ( | ACE_Module< ACE_SYNCH_USE > * | m | ) | 
Set the next pointer to the module above in the stream.
| ACE_Module<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::next | ( | void | ) | 
Get the next pointer to the module above in the stream.
| int ACE_Module< ACE_SYNCH_DECL >::open | ( | const ACE_TCHAR * | module_name, | |
| ACE_Task< ACE_SYNCH_USE > * |  writer = 0,  | 
        |||
| ACE_Task< ACE_SYNCH_USE > * |  reader = 0,  | 
        |||
| void * |  a = 0,  | 
        |||
| int |  flags = M_DELETE | |||
| ) | 
Initialize the module with module_name as its identity and reader> and writer as its tasks. Previously register reader or writers or closed down and deleted according to the value of flags_. Should not be called from within <ACE_Task::module_closed>.
| void ACE_Module< ACE_SYNCH_DECL >::reader | ( | ACE_Task< ACE_SYNCH_USE > * | q, | |
| int |  flags = M_DELETE_READER | |||
| ) | 
Set the reader task. flags can be used to indicate that the module should delete the reader during a call to close or to the destructor. If a previous reader exists, it is closed. It may also be deleted, depending on the old flags_ value. Should not be called from within <ACE_Task::module_closed>.
| ACE_Task<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::reader | ( | void | ) | 
Get the reader task.
| ACE_Task<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::sibling | ( | ACE_Task< ACE_SYNCH_USE > * | orig | ) | 
Set and get pointer to sibling ACE_Task in an ACE_Module.
| void ACE_Module< ACE_SYNCH_DECL >::writer | ( | ACE_Task< ACE_SYNCH_USE > * | q, | |
| int |  flags = M_DELETE_WRITER | |||
| ) | 
Set the writer task. flags can be used to indicate that the module should delete the writer during a call to close or to the destructor. If a previous writer exists, it is closed. It may also be deleted, depending on the old flags_ value. Should not be called from within <ACE_Task::module_closed>.
| ACE_Task<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::writer | ( | void | ) | 
Get the writer task.
| ACE_Module< ACE_SYNCH_DECL >::ACE_ALLOC_HOOK_DECLARE | 
Declare the dynamic allocation hooks.
void* ACE_Module< ACE_SYNCH_DECL >::arg_ [private] | 
        
Argument passed through to the reader and writer task when they are opened.
int ACE_Module< ACE_SYNCH_DECL >::flags_ [private] | 
        
Holds flags which are used to determine if the reader and writer task have to be deleted on exit
ACE_TCHAR ACE_Module< ACE_SYNCH_DECL >::name_[MAXPATHLEN+1] [private] | 
        
Name of the ACE_Module.
ACE_Module<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::next_ [private] | 
        
Next ACE_Module in the stack.
ACE_Task<ACE_SYNCH_USE>* ACE_Module< ACE_SYNCH_DECL >::q_pair_[2] [private] | 
        
Pair of Tasks that form the "read-side" and "write-side" of the ACE_Module partitioning.
 1.6.2