ACE_Stream_Head<> Class Template Reference

Standard task that acts as reader or writer at the head of an ACE_Stream. More...

#include <Stream_Modules.h>

Inheritance diagram for ACE_Stream_Head<>:

Inheritance graph
[legend]
Collaboration diagram for ACE_Stream_Head<>:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Stream_Head (void)
 Construction.
 ~ACE_Stream_Head (void)
 Destruction.
virtual int open (void *a=0)
virtual int close (u_long flags=0)
virtual int put (ACE_Message_Block *msg, ACE_Time_Value *=0)
virtual int svc (void)
 Run by a daemon thread to handle deferred processing.
virtual int init (int argc, ACE_TCHAR *argv[])
 Initializes object when dynamic linking occurs.
virtual int info (ACE_TCHAR **info_string, size_t length) const
 Returns information on a service object.
virtual int fini (void)
 Terminates object when dynamic unlinking occurs.
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 control (ACE_Message_Block *)
 Performs canonical flushing at the ACE_Stream Head.
int canonical_flush (ACE_Message_Block *)

Detailed Description

template<ACE_SYNCH_DECL>
class ACE_Stream_Head<>

Standard task that acts as reader or writer at the head of an ACE_Stream.

A ACE_Message_Block sent to this task (via its put() hook) triggers actions depending on the block type and whether the task is acting as a reader or a writer. If the block is of type ACE_Message_Block::MB_IOCTL, the block's is assumed to contain (beginning at its rd_ptr()) an ACE_IO_Cntl_Msg object and is processed accordingly. This is usually used to set the task's message queue high water and/or low water marks.

When the block is not ACE_Message_Block::MB_IOCTL, processing depends on the ACE_Stream_Head's role in the module:


Constructor & Destructor Documentation

template<ACE_SYNCH_DECL >
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Stream_Head<>::ACE_Stream_Head ( void   ) 

Construction.

template<ACE_SYNCH_DECL >
ACE_Stream_Head<>::~ACE_Stream_Head ( void   ) 

Destruction.


Member Function Documentation

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::canonical_flush ( ACE_Message_Block  )  [private]

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::close ( u_long  flags = 0  )  [virtual]

Hook called from ACE_Thread_Exit when during thread exit and from the default implementation of <module_closed>. In general, this method shouldn't be called directly by an application, particularly if the <Task> is running as an Active Object. Instead, a special message should be passed into the <Task> via the <put> method defined below, and the <svc> method should interpret this as a flag to shut down the <Task>.

Reimplemented from ACE_Task_Base.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::control ( ACE_Message_Block  )  [private]

Performs canonical flushing at the ACE_Stream Head.

template<ACE_SYNCH_DECL >
void ACE_Stream_Head<>::dump ( void   )  const

Dump the state of an object.

Reimplemented from ACE_Task< ACE_SYNCH_USE >.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::fini ( void   )  [virtual]

Terminates object when dynamic unlinking occurs.

Reimplemented from ACE_Shared_Object.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::info ( ACE_TCHAR **  info_string,
size_t  length 
) const [virtual]

Returns information on a service object.

Reimplemented from ACE_Shared_Object.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::init ( int  argc,
ACE_TCHAR argv[] 
) [virtual]

Initializes object when dynamic linking occurs.

Reimplemented from ACE_Shared_Object.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::open ( void *  a = 0  )  [virtual]

Hook called to initialize a task and prepare it for execution. args can be used to pass arbitrary information into <open>.

Reimplemented from ACE_Task_Base.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::put ( ACE_Message_Block msg,
ACE_Time_Value = 0 
) [virtual]

A hook method that can be used to pass a message to a task, where it can be processed immediately or queued for subsequent processing in the <svc> hook method.

Reimplemented from ACE_Task_Base.

template<ACE_SYNCH_DECL >
int ACE_Stream_Head<>::svc ( void   )  [virtual]

Run by a daemon thread to handle deferred processing.

Reimplemented from ACE_Task_Base.


Member Data Documentation

template<ACE_SYNCH_DECL >
ACE_Stream_Head<>::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Reimplemented from ACE_Task< ACE_SYNCH_USE >.


The documentation for this class was generated from the following files:
Generated on Tue Jan 30 13:43:46 2007 for ACE by  doxygen 1.4.7-1