ACE
6.2.5
|
An abstraction for managing a bi-directional flow of messages. More...
#include <Module.h>
Public Member Functions | |
ACE_Module (void) | |
Create an empty Module. More... | |
virtual | ~ACE_Module (void) |
Shutdown the Module. More... | |
ACE_Module (const ACE_TCHAR *module_name, ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *writer=0, ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *reader=0, void *args=0, int flags=M_DELETE) | |
int | open (const ACE_TCHAR *module_name, ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *writer=0, ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *reader=0, void *a=0, int flags=M_DELETE) |
int | close (int flags=M_DELETE_NONE) |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | writer (void) |
Get the writer task. More... | |
void | writer (ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *q, int flags=M_DELETE_WRITER) |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | reader (void) |
Get the reader task. More... | |
void | reader (ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *q, int flags=M_DELETE_READER) |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | sibling (ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *orig) |
Set and get pointer to sibling ACE_Task in an ACE_Module. More... | |
const ACE_TCHAR * | name (void) const |
Get the module name. More... | |
void | name (const ACE_TCHAR *) |
Set the module name. More... | |
void * | arg (void) const |
Get the argument passed to the tasks. More... | |
void | arg (void *) |
Set the argument passed to the tasks. More... | |
void | link (ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *m) |
Link to other modules in the ustream stack. More... | |
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | next (void) |
Get the next pointer to the module above in the stream. More... | |
void | next (ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *m) |
Set the next pointer to the module above in the stream. More... | |
void | dump (void) const |
Dump the state of an object. More... | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. More... | |
Private Member Functions | |
int | close_i (int which, int flags) |
Private Attributes | |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | q_pair_ [2] |
ACE_TCHAR | name_ [MAXPATHLEN+1] |
Name of the ACE_Module. More... | |
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | next_ |
Next ACE_Module in the stack. More... | |
void * | arg_ |
int | flags_ |
Additional Inherited Members | |
Public Types inherited from ACE_Module_Base | |
enum | { M_FLAGS_NOT_SET = 0, M_DELETE_READER = 1, M_DELETE_WRITER = 2, M_DELETE = 3, M_DELETE_NONE = 4 } |
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, TIME_POLICY >::ACE_Module | ( | void | ) |
Create an empty Module.
|
virtual |
Shutdown the Module.
ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::ACE_Module | ( | const ACE_TCHAR * | module_name, |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | writer = 0 , |
||
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | 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, TIME_POLICY >::arg | ( | void | ) | const |
Get the argument passed to the tasks.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::arg | ( | void * | ) |
Set the argument passed to the tasks.
int ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::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>.
|
private |
Implements the close operation for either the reader or the writer task (depending on which).
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::dump | ( | void | ) | const |
Dump the state of an object.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::link | ( | ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | m | ) |
Link to other modules in the ustream stack.
const ACE_TCHAR* ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::name | ( | void | ) | const |
Get the module name.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::name | ( | const ACE_TCHAR * | ) |
Set the module name.
ACE_Module<ACE_SYNCH_USE, TIME_POLICY>* ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::next | ( | void | ) |
Get the next pointer to the module above in the stream.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::next | ( | ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | m | ) |
Set the next pointer to the module above in the stream.
int ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::open | ( | const ACE_TCHAR * | module_name, |
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | writer = 0 , |
||
ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | 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>.
ACE_Task<ACE_SYNCH_USE, TIME_POLICY>* ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::reader | ( | void | ) |
Get the reader task.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::reader | ( | ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | 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, TIME_POLICY>* ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::sibling | ( | ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | orig | ) |
Set and get pointer to sibling ACE_Task in an ACE_Module.
ACE_Task<ACE_SYNCH_USE, TIME_POLICY>* ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::writer | ( | void | ) |
Get the writer task.
void ACE_Module< ACE_SYNCH_DECL, TIME_POLICY >::writer | ( | ACE_Task< ACE_SYNCH_USE, TIME_POLICY > * | 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_Module< ACE_SYNCH_DECL, TIME_POLICY >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
|
private |
Argument passed through to the reader and writer task when they are opened.
|
private |
Holds flags which are used to determine if the reader and writer task have to be deleted on exit
|
private |
Name of the ACE_Module.
|
private |
Next ACE_Module in the stack.
|
private |
Pair of Tasks that form the "read-side" and "write-side" of the ACE_Module partitioning.