ACE_Buffered_Svc_Handler<, > Class Template ReferenceDefines the interface for a service that exchanges data with its connected peer and supports buffering. More...
Inheritance diagram for ACE_Buffered_Svc_Handler<, >:
Collaboration diagram for ACE_Buffered_Svc_Handler<, >:
Detailed Descriptiontemplate<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
Defines the interface for a service that exchanges data with its connected peer and supports buffering.
|
ACE_Buffered_Svc_Handler<, >::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 | |||
) | [inline] |
Constructor initializes the thr_mgr and mq by passing them down to the ACE_Task base class. The reactor is passed to the ACE_Event_Handler. 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 <ACE_OS::gettimeofday>.
ACE_Buffered_Svc_Handler<, >::~ACE_Buffered_Svc_Handler | ( | void | ) | [inline, virtual] |
Destructor, which calls <flush>.
int ACE_Buffered_Svc_Handler<, >::put | ( | ACE_Message_Block * | message_block, | |
ACE_Time_Value * | timeout = 0 | |||
) | [inline, virtual] |
Insert the ACE_Message_Block chain rooted at message_block into the ACE_Message_Queue 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.
int ACE_Buffered_Svc_Handler<, >::flush | ( | void | ) | [inline, virtual] |
Flush the ACE_Message_Queue, which writes all the queued ACE_Message_Blocks to the <PEER_STREAM>.
int ACE_Buffered_Svc_Handler<, >::handle_timeout | ( | const ACE_Time_Value & | time, | |
const void * | ||||
) | [inline, virtual] |
This method is not currently implemented -- this is where the integration with the <Reactor> would occur.
Reimplemented from ACE_Svc_Handler< ACE_PEER_STREAM_2, ACE_SYNCH_USE >.
void ACE_Buffered_Svc_Handler<, >::dump | ( | void | ) | const [inline] |
Dump the state of an object.
Reimplemented from ACE_Svc_Handler< ACE_PEER_STREAM_2, ACE_SYNCH_USE >.
int ACE_Buffered_Svc_Handler<, >::flush_i | ( | void | ) | [inline, protected, virtual] |
Implement the flush operation on the ACE_Message_Queue, which writes all the queued ACE_Message_Blocks to the <PEER_STREAM>. Assumes that the caller holds the lock.
size_t ACE_Buffered_Svc_Handler<, >::maximum_buffer_size_ [protected] |
Maximum size the <Message_Queue> can be before we have to flush the buffer.
size_t ACE_Buffered_Svc_Handler<, >::current_buffer_size_ [protected] |
Current size in bytes of the <Message_Queue> contents.
ACE_Time_Value ACE_Buffered_Svc_Handler<, >::next_timeout_ [protected] |
Timeout value used to control when the buffer is flushed.
ACE_Time_Value ACE_Buffered_Svc_Handler<, >::interval_ [protected] |
Interval of the timeout.
ACE_Time_Value* ACE_Buffered_Svc_Handler<, >::timeoutp_ [protected] |
Timeout pointer.