ACE
6.4.2
|
This class is the primary abstraction for the ASX framework. It is moduled after System V Stream. More...
#include <Stream.h>
Public Types | |
enum | { M_DELETE = 3 } |
Public Member Functions | |
ACE_Stream (void *arg=0, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *head=0, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *tail=0) | |
virtual int | open (void *arg, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *head=0, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *tail=0) |
virtual int | close (int flags=M_DELETE) |
Close down the stream and release all the resources. More... | |
virtual | ~ACE_Stream (void) |
Close down the stream and release all the resources. More... | |
virtual int | push (ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *mod) |
virtual int | pop (int flags=M_DELETE) |
Remove the mod right below the Stream head and close it down. More... | |
virtual int | top (ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *&mod) |
virtual int | insert (const ACE_TCHAR *prev_name, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *mod) |
Insert a new module mod below the named module prev_name. More... | |
virtual int | replace (const ACE_TCHAR *replace_name, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *mod, int flags=M_DELETE) |
Replace the named module replace_name with a new module mod. More... | |
virtual int | remove (const ACE_TCHAR *mod, int flags=M_DELETE) |
virtual ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | head (void) |
Return current stream head. More... | |
virtual ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | tail (void) |
Return current stream tail. More... | |
virtual ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | find (const ACE_TCHAR *mod) |
Find a particular ACE_Module. More... | |
virtual int | link (ACE_Stream< ACE_SYNCH_USE, TIME_POLICY > &) |
Create a pipe between two Streams. More... | |
virtual int | unlink (void) |
Remove a pipe formed between two Streams. More... | |
virtual int | put (ACE_Message_Block *mb, ACE_Time_Value *timeout=0) |
virtual int | get (ACE_Message_Block *&mb, ACE_Time_Value *timeout=0) |
virtual int | control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd, void *args) |
Send control message down the stream. More... | |
virtual int | wait (void) |
Synchronize with the final close of the stream. More... | |
virtual 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 | unlink_i (void) |
int | link_i (ACE_Stream< ACE_SYNCH_USE, TIME_POLICY > &) |
int | push_module (ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *=0, ACE_Module< ACE_SYNCH_USE, TIME_POLICY > *=0) |
Must a new module onto the Stream. More... | |
Private Attributes | |
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | stream_head_ |
Pointer to the head of the stream. More... | |
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | stream_tail_ |
Pointer to the tail of the stream. More... | |
ACE_Stream< ACE_SYNCH_USE, TIME_POLICY > * | linked_us_ |
Pointer to an adjoining linked stream. More... | |
ACE_SYNCH_MUTEX_T | lock_ |
Protect the stream against race conditions. More... | |
ACE_Condition_Attributes_T< TIME_POLICY > | cond_attr_ |
Attributes to initialize condition with. More... | |
ACE_SYNCH_CONDITION_T | final_close_ |
Use to tell all threads waiting on the close that we are done. More... | |
Friends | |
class | ACE_Stream_Iterator< ACE_SYNCH_USE, TIME_POLICY > |
This class is the primary abstraction for the ASX framework. It is moduled after System V Stream.
A Stream consists of a stack of ACE_Modules
, each of which contains two ACE_Tasks
. Even though the methods in this class are virtual, this class isn't really intended for subclassing unless you know what you are doing. In particular, the ACE_Stream destructor calls <close>, which won't be overridden properly unless you call it in a subclass destructor.
anonymous enum |
Enumerator | |
---|---|
M_DELETE |
Indicates that |
ACE_Stream< ACE_SYNCH_DECL, TIME_POLICY >::ACE_Stream | ( | void * | arg = 0 , |
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | head = 0 , |
||
ACE_Module< ACE_SYNCH_USE, TIME_POLICY > * | tail = 0 |
||
) |
Create a Stream consisting of head and tail as the Stream head and Stream tail, respectively. If these are 0 then the ACE_Stream_Head and ACE_Stream_Tail are used, respectively. arg is the value past in to the <open> methods of the tasks.
|
virtual |
Close down the stream and release all the resources.
|
virtual |
Close down the stream and release all the resources.
|
virtual |
Send control message down the stream.
|
virtual |
Dump the state of an object.
|
virtual |
Find a particular ACE_Module.
|
virtual |
Read the message mb that is stored in the stream head. Wait for upto timeout amount of absolute time for the operation to complete (or block forever if timeout == 0).
|
inlinevirtual |
Return current stream head.
|
virtual |
Insert a new module mod below the named module prev_name.
|
virtual |
Create a pipe between two Streams.
|
private |
Actually perform the linking of two Streams (must be called with locks held).
|
virtual |
Create a Stream consisting of head and tail as the Stream head and Stream tail, respectively. If these are 0 then the ACE_Stream_Head and ACE_Stream_Tail are used, respectively. arg is the value past in to the open()
methods of the tasks.
|
virtual |
Remove the mod right below the Stream head and close it down.
are invoked to cleanup the tasks.
|
virtual |
Add a new module mod right below the Stream head. The open()
hook methods of the ACE_Tasks
in this ACE_Module are invoked to initialize the tasks.
|
private |
Must a new module onto the Stream.
|
virtual |
Send the message mb down the stream, starting at the Module below the Stream head. Wait for upto timeout amount of absolute time for the operation to complete (or block forever if timeout == 0).
|
virtual |
Remove the named module mod from the stream. This bypasses the strict LIFO ordering of push
and pop
.
|
virtual |
Replace the named module replace_name with a new module mod.
|
inlinevirtual |
Return current stream tail.
|
virtual |
Return the top module on the stream (right below the stream head).
|
virtual |
Remove a pipe formed between two Streams.
|
private |
Actually perform the unlinking of two Streams (must be called with locks held).
|
inlinevirtual |
Synchronize with the final close of the stream.
|
friend |
ACE_Stream< ACE_SYNCH_DECL, TIME_POLICY >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
|
private |
Attributes to initialize condition with.
|
private |
Use to tell all threads waiting on the close that we are done.
|
private |
Pointer to an adjoining linked stream.
|
private |
Protect the stream against race conditions.
|
private |
Pointer to the head of the stream.
|
private |
Pointer to the tail of the stream.