Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Buffered_Svc_Handler Class Template Reference

Defines the interface for a service that exchanges data with its connected peer and supports buffering. More...

#include <Svc_Handler.h>

Inheritance diagram for ACE_Buffered_Svc_Handler

Inheritance graph
[legend]
Collaboration diagram for ACE_Buffered_Svc_Handler:

Collaboration graph
[legend]
List of all members.

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_Valuetimeoutp_
 Timeout pointer.


Detailed Description

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL> template class ACE_Buffered_Svc_Handler

Defines the interface for a service that exchanges data with its connected peer and supports buffering.

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 & Destructor Documentation

template<PR_ST_1, ACE_SYNCH_DECL>
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 )
 

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 .

template<PR_ST_1, ACE_SYNCH_DECL>
ACE_Buffered_Svc_Handler<, >::~ACE_Buffered_Svc_Handler<, > ( void ) [virtual]
 

Destructor, which calls <flush>.


Member Function Documentation

template<PR_ST_1, ACE_SYNCH_DECL>
void ACE_Buffered_Svc_Handler<, >::dump ( void ) const
 

Dump the state of an object.

Reimplemented from ACE_Svc_Handler.

template<PR_ST_1, ACE_SYNCH_DECL>
int ACE_Buffered_Svc_Handler<, >::flush ( void ) [virtual]
 

Flush the , which writes all the queued s to the <PEER_STREAM>.

template<PR_ST_1, ACE_SYNCH_DECL>
int ACE_Buffered_Svc_Handler<, >::handle_timeout ( const ACE_Time_Value & time,
const void * arg ) [virtual]
 

This method is not currently implemented -- this is where the integration with the <Reactor> would occur.

Reimplemented from ACE_Svc_Handler.

template<PR_ST_1, ACE_SYNCH_DECL>
int ACE_Buffered_Svc_Handler<, >::put ( ACE_Message_Block * message_block,
ACE_Time_Value * timeout = 0 ) [virtual]
 

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.


Member Data Documentation

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
size_t ACE_Buffered_Svc_Handler<, >::current_buffer_size_ [protected]
 

Current size in bytes of the <Message_Queue> contents.

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
ACE_Time_Value ACE_Buffered_Svc_Handler<, >::interval_ [protected]
 

Interval of the timeout.

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
size_t ACE_Buffered_Svc_Handler<, >::maximum_buffer_size_ [protected]
 

Maximum size the <Message_Queue> can be before we have to flush the buffer.

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
ACE_Time_Value ACE_Buffered_Svc_Handler<, >::next_timeout_ [protected]
 

Timeout value used to control when the buffer is flushed.

template<ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
ACE_Time_Value * ACE_Buffered_Svc_Handler<, >::timeoutp_ [protected]
 

Timeout pointer.


The documentation for this class was generated from the following files:
Generated at Fri Oct 5 07:01:28 2001 for ACE by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000