Standard module that acts as the head of a stream. More...
#include <Stream_Modules.h>
Public Member Functions | |
ACE_Stream_Tail (void) | |
Construction. | |
~ACE_Stream_Tail (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 tail. | |
int | canonical_flush (ACE_Message_Block *) |
Standard module that acts as the head of a stream.
Definition at line 89 of file Stream_Modules.h.
ACE_Stream_Tail< ACE_SYNCH_DECL >::ACE_Stream_Tail | ( | void | ) |
Construction.
Definition at line 159 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::ACE_Stream_Tail"); }
ACE_Stream_Tail< ACE_SYNCH_DECL >::~ACE_Stream_Tail | ( | void | ) |
Destruction.
Definition at line 165 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::~ACE_Stream_Tail"); }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::canonical_flush | ( | ACE_Message_Block * | mb | ) | [private] |
Definition at line 227 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::canonical_flush"); char *cp = mb->rd_ptr (); if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHW)) { this->flush (ACE_Task_Flags::ACE_FLUSHALL); ACE_CLR_BITS (*cp, ACE_Task_Flags::ACE_FLUSHW); } if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHR)) { this->sibling ()->flush (ACE_Task_Flags::ACE_FLUSHALL); return this->reply (mb); } else mb->release (); return 0; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::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.
Definition at line 186 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::close"); return 0; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::control | ( | ACE_Message_Block * | mb | ) | [private] |
Performs canonical flushing at the ACE_Stream tail.
Definition at line 200 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::control"); ACE_IO_Cntl_Msg *ioc = (ACE_IO_Cntl_Msg *) mb->rd_ptr (); ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd; switch (cmd = ioc->cmd ()) { case ACE_IO_Cntl_Msg::SET_LWM: case ACE_IO_Cntl_Msg::SET_HWM: { size_t wm_size = *(size_t *) mb->cont ()->rd_ptr (); this->water_marks (cmd, wm_size); this->sibling ()->water_marks (cmd, wm_size); ioc->rval (0); break; } default: mb->msg_type (ACE_Message_Block::MB_IOCNAK); } return this->reply (mb); }
void ACE_Stream_Tail< ACE_SYNCH_DECL >::dump | ( | void | ) | const |
Dump the state of an object.
Reimplemented from ACE_Task< ACE_SYNCH_USE >.
Definition at line 171 of file Stream_Modules.cpp.
{ #if defined (ACE_HAS_DUMP) ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::dump"); #endif /* ACE_HAS_DUMP */ }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::fini | ( | void | ) | [virtual] |
Terminates object when dynamic unlinking occurs.
Reimplemented from ACE_Shared_Object.
Definition at line 293 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::fini"); return 0; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::info | ( | ACE_TCHAR ** | info_string, | |
size_t | length | |||
) | const [virtual] |
Returns information on a service object.
Reimplemented from ACE_Shared_Object.
Definition at line 280 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::info"); const ACE_TCHAR *name = this->name (); if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0) return -1; else ACE_OS::strsncpy (*strp, name, length); return static_cast<int> (ACE_OS::strlen (name)); }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::init | ( | int | argc, | |
ACE_TCHAR * | argv[] | |||
) | [virtual] |
Initializes object when dynamic linking occurs.
Reimplemented from ACE_Shared_Object.
Definition at line 273 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::init"); return 0; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::open | ( | void * | args = 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.
Definition at line 179 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::open"); return 0; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::put | ( | ACE_Message_Block * | , | |
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.
Definition at line 250 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::put"); if (this->is_writer ()) { switch (mb->msg_type ()) { case ACE_Message_Block::MB_IOCTL: return this->control (mb); /* NOTREACHED */ default: mb->release (); return 0; /* NOTREACHED */ } } return -1; }
int ACE_Stream_Tail< ACE_SYNCH_DECL >::svc | ( | void | ) | [virtual] |
Run by a daemon thread to handle deferred processing.
Reimplemented from ACE_Task_Base.
Definition at line 193 of file Stream_Modules.cpp.
{ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::svc"); return -1; }
ACE_Stream_Tail< ACE_SYNCH_DECL >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
Reimplemented from ACE_Task< ACE_SYNCH_USE >.
Definition at line 113 of file Stream_Modules.h.