#include <Svc_Handler.h>
Inheritance diagram for ACE_Buffered_Svc_Handler
Public Methods | |
ACE_Buffered_Svc_Handler (ACE_Thread_Manager *thr_mgr = 0, ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0, ACE_Reactor *reactor = ACE_Reactor::instance (), size_t max_buffer_size = 0, ACE_Time_Value *relative_timeout = 0) | |
virtual | ~ACE_Buffered_Svc_Handler (void) |
Destructor, which calls <flush>. | |
virtual int | put (ACE_Message_Block *message_block, ACE_Time_Value *timeout = 0) |
virtual int | flush (void) |
Flush the , which writes all the queued s to the <PEER_STREAM>. | |
virtual int | handle_timeout (const ACE_Time_Value &time, const void *) |
This method is not currently implemented -- this is where the integration with the <Reactor> would occur. | |
void | dump (void) const |
Dump the state of an object. | |
Protected Attributes | |
size_t | maximum_buffer_size_ |
Maximum size the <Message_Queue> can be before we have to flush the buffer. | |
size_t | current_buffer_size_ |
Current size in bytes of the <Message_Queue> contents. | |
ACE_Time_Value | next_timeout_ |
Timeout value used to control when the buffer is flushed. | |
ACE_Time_Value | interval_ |
Interval of the timeout. | |
ACE_Time_Value* | timeoutp_ |
Timeout pointer. |
The buffering feature makes it possible to queue up in an until (1) the queue is "full" or (2) a period of time elapses, at which point the queue is "flushed" via <sendv_n> to the peer.
|
Constructor initializes the <thr_mgr> and <mq> by passing them down to the base class. The <reactor> is passed to the . The <max_buffer_size> and <relative_timeout> are used to determine at what point to flush the <mq>. By default, there's no buffering at all. The <relative_timeout> value is interpreted to be in a unit that's relative to the current time returned by . |
|
Destructor, which calls <flush>.
|
|
Dump the state of an object.
Reimplemented from ACE_Svc_Handler. |
|
Flush the , which writes all the queued s to the <PEER_STREAM>.
|
|
This method is not currently implemented -- this is where the integration with the <Reactor> would occur.
Reimplemented from ACE_Svc_Handler. |
|
Insert the chain rooted at <message_block> into the with the designated <timeout>. The <flush> method will be called if this <put> causes the number of bytes to exceed the maximum buffer size or if the timeout period has elapsed. Reimplemented from ACE_Task_Base. |
|
Current size in bytes of the <Message_Queue> contents.
|
|
Interval of the timeout.
|
|
Maximum size the <Message_Queue> can be before we have to flush the buffer.
|
|
Timeout value used to control when the buffer is flushed.
|
|
Timeout pointer.
|