TAO_PortableGroup  2.2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TAO_UIPMC_Transport Class Reference

Specialization of the base TAO_Transport class to handle the client side MIOP protocol. More...

#include <UIPMC_Transport.h>

Inheritance diagram for TAO_UIPMC_Transport:
Inheritance graph
Collaboration diagram for TAO_UIPMC_Transport:
Collaboration graph

Public Member Functions

 TAO_UIPMC_Transport (TAO_UIPMC_Connection_Handler *handler, TAO_ORB_Core *orb_core)
 Constructor. More...
 
 ~TAO_UIPMC_Transport (void)
 Default destructor. More...
 
- Public Member Functions inherited from TAO_Transport
virtual int tear_listen_point_list (TAO_InputCDR &cdr)
 
virtual void set_bidir_context_info (TAO_Operation_Details &opdetails)
 

Private Member Functions

bool write_unique_id (TAO_OutputCDR &miop_hdr) const
 Construct and write a unique ID to the MIOP header. More...
 
void throttle_send_rate (ACE_UINT64 max_fragment_rate, u_long max_fragment_size, u_long this_send_size)
 

Private Attributes

TAO_UIPMC_Connection_Handlerconnection_handler_
 
u_long uuid_hash_
 This UUID used by client for making unique MIOP IDs. More...
 
u_long total_bytes_outstanding_
 
ACE_Time_Value time_last_sent_
 

Overridden Template Methods

These are implementations of template methods declared by TAO_Transport.

virtual int send_request (TAO_Stub *stub, TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, TAO_Message_Semantics message_semantics, ACE_Time_Value *max_wait_time)
 
virtual int send_message (TAO_OutputCDR &stream, TAO_Stub *stub=0, TAO_ServerRequest *request=0, TAO_Message_Semantics message_semantics=TAO_Message_Semantics(), ACE_Time_Value *max_time_wait=0)
 
virtual ACE_Event_Handlerevent_handler_i (void)
 
virtual TAO_Connection_Handlerconnection_handler_i (void)
 
virtual ssize_t send (iovec *iov, int iovcnt, size_t &bytes_transferred, const ACE_Time_Value *max_wait_time)
 Write the complete Message_Block chain to the connection. More...
 
virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value const *s=0)
 Shouldn't ever be called on the client side (read len bytes into buf). More...
 
virtual int register_handler (void)
 

Additional Inherited Members

Detailed Description

Specialization of the base TAO_Transport class to handle the client side MIOP protocol.

Constructor & Destructor Documentation

TAO_UIPMC_Transport::TAO_UIPMC_Transport ( TAO_UIPMC_Connection_Handler handler,
TAO_ORB_Core orb_core 
)

Constructor.

TAO_UIPMC_Transport::~TAO_UIPMC_Transport ( void  )

Default destructor.

Member Function Documentation

TAO_Connection_Handler * TAO_UIPMC_Transport::connection_handler_i ( void  )
protectedvirtual

@TODO: These methods IMHO should have more meaningful names. The names seem to indicate nothing.

Implements TAO_Transport.

ACE_Event_Handler * TAO_UIPMC_Transport::event_handler_i ( void  )
protectedvirtual

@TODO: These methods IMHO should have more meaningful names. The names seem to indicate nothing.

Implements TAO_Transport.

ssize_t TAO_UIPMC_Transport::recv ( char *  buf,
size_t  len,
ACE_Time_Value const *  s = 0 
)
protectedvirtual

Shouldn't ever be called on the client side (read len bytes into buf).

Implements TAO_Transport.

int TAO_UIPMC_Transport::register_handler ( void  )
protectedvirtual

@TODO: These methods IMHO should have more meaningful names. The names seem to indicate nothing.

ssize_t TAO_UIPMC_Transport::send ( iovec *  iov,
int  iovcnt,
size_t &  bytes_transferred,
const ACE_Time_Value max_wait_time 
)
protectedvirtual

Write the complete Message_Block chain to the connection.

Implements TAO_Transport.

int TAO_UIPMC_Transport::send_message ( TAO_OutputCDR stream,
TAO_Stub stub = 0,
TAO_ServerRequest request = 0,
TAO_Message_Semantics  message_semantics = TAO_Message_Semantics (),
ACE_Time_Value max_time_wait = 0 
)
virtual

@TODO: These methods IMHO should have more meaningful names. The names seem to indicate nothing.

Implements TAO_Transport.

int TAO_UIPMC_Transport::send_request ( TAO_Stub stub,
TAO_ORB_Core orb_core,
TAO_OutputCDR stream,
TAO_Message_Semantics  message_semantics,
ACE_Time_Value max_wait_time 
)
virtual

@TODO: These methods IMHO should have more meaningful names. The names seem to indicate nothing.

Implements TAO_Transport.

void TAO_UIPMC_Transport::throttle_send_rate ( ACE_UINT64  max_fragment_rate,
u_long  max_fragment_size,
u_long  this_send_size 
)
private

Throttle back clients send rate so as to not exceed client/server buffers and servant message processing time.

bool TAO_UIPMC_Transport::write_unique_id ( TAO_OutputCDR miop_hdr) const
private

Construct and write a unique ID to the MIOP header.

Member Data Documentation

TAO_UIPMC_Connection_Handler* TAO_UIPMC_Transport::connection_handler_
private

The connection service handler used for accessing lower layer communication protocols.

ACE_Time_Value TAO_UIPMC_Transport::time_last_sent_
private
u_long TAO_UIPMC_Transport::total_bytes_outstanding_
private

On the client side the total amount of outstanding data being transmitted and the time when this was last updated.

u_long TAO_UIPMC_Transport::uuid_hash_
private

This UUID used by client for making unique MIOP IDs.


The documentation for this class was generated from the following files: