TAO  2.2.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TAO_IIOP_Transport Class Reference

Specialization of the base TAO_Transport class to handle the IIOP protocol. More...

#include <IIOP_Transport.h>

Inheritance diagram for TAO_IIOP_Transport:
Inheritance graph
Collaboration diagram for TAO_IIOP_Transport:
Collaboration graph

Public Member Functions

 TAO_IIOP_Transport (TAO_IIOP_Connection_Handler *handler, TAO_ORB_Core *orb_core)
 Constructor. More...
 
- Public Member Functions inherited from TAO_Transport
 TAO_Transport (CORBA::ULong tag, TAO_ORB_Core *orb_core, size_t input_cdr_size=ACE_CDR::DEFAULT_BUFSIZE)
 Default creator, requires the tag value be supplied. More...
 
virtual ~TAO_Transport (void)
 Destructor. More...
 
CORBA::ULong tag (void) const
 Return the protocol tag. More...
 
TAO_ORB_Coreorb_core (void) const
 Access the ORB that owns this connection. More...
 
TAO_Transport_Mux_Strategytms (void) const
 Get the TAO_Tranport_Mux_Strategy used by this object. More...
 
TAO_Wait_Strategywait_strategy (void) const
 Return the TAO_Wait_Strategy used by this object. More...
 
Drain_Result handle_output (TAO::Transport::Drain_Constraints const &c)
 Callback method to reactively drain the outgoing data queue. More...
 
int bidirectional_flag (void) const
 Get the bidirectional flag. More...
 
void bidirectional_flag (int flag)
 Set the bidirectional flag. More...
 
void cache_map_entry (TAO::Transport_Cache_Manager::HASH_MAP_ENTRY *entry)
 Set the Cache Map entry. More...
 
TAO::Transport_Cache_Manager::HASH_MAP_ENTRYcache_map_entry (void)
 Get the Cache Map entry. More...
 
size_t id (void) const
 Set and Get the identifier for this transport instance. More...
 
void id (size_t id)
 
TAO::Connection_Role opened_as (void) const
 
void opened_as (TAO::Connection_Role)
 
unsigned long purging_order (void) const
 
void purging_order (unsigned long value)
 
bool queue_is_empty (void)
 Check if there are messages pending in the queue. More...
 
bool register_if_necessary (void)
 Register with the reactor via the wait strategy. More...
 
void provide_handler (TAO::Connection_Handler_Set &handlers)
 Added event handler to the handlers set. More...
 
bool provide_blockable_handler (TAO::Connection_Handler_Set &handlers)
 
virtual int register_handler (void)
 Register the handler with the reactor. More...
 
virtual int remove_handler (void)
 Remove the handler from the reactor. More...
 
bool idle_after_send (void)
 
bool idle_after_reply (void)
 
virtual void close_connection (void)
 Call the implementation method after obtaining the lock. More...
 
void messaging_init (TAO_GIOP_Message_Version const &version)
 
virtual bool post_connect_hook (void)
 Hooks that can be overridden in concrete transports. More...
 
ACE_Event_Handler::Reference_Count add_reference (void)
 Memory management routines. More...
 
ACE_Event_Handler::Reference_Count remove_reference (void)
 
TAO_GIOP_Message_Basemessaging_object (void)
 
bool is_connected (void) const
 Is this transport really connected. More...
 
bool connection_closed_on_read (void) const
 Was a connection seen as closed during a read. More...
 
bool post_open (size_t id)
 Perform all the actions when this transport get opened. More...
 
void pre_close (void)
 do what needs to be done when closing the transport More...
 
TAO_Connection_Handlerconnection_handler (void)
 Get the connection handler for this transport. More...
 
TAO_OutputCDRout_stream (void)
 Accessor for the output CDR stream. More...
 
TAO_SYNCH_MUTEXoutput_cdr_lock (void)
 Accessor for synchronizing Transport OutputCDR access. More...
 
bool can_be_purged (void)
 Can the transport be purged? More...
 
int generate_locate_request (TAO_Target_Specification &spec, TAO_Operation_Details &opdetails, TAO_OutputCDR &output)
 
virtual int generate_request_header (TAO_Operation_Details &opd, TAO_Target_Specification &spec, TAO_OutputCDR &msg)
 
int recache_transport (TAO_Transport_Descriptor_Interface *desc)
 Recache ourselves in the cache. More...
 
virtual int handle_input (TAO_Resume_Handle &rh, ACE_Time_Value *max_wait_time=0)
 Callback to read incoming data. More...
 
virtual int send_message_shared (TAO_Stub *stub, TAO_Message_Semantics message_semantics, const ACE_Message_Block *message_block, ACE_Time_Value *max_wait_time)
 Sent the contents of message_block. More...
 
int format_queue_message (TAO_OutputCDR &stream, ACE_Time_Value *max_wait_time, TAO_Stub *stub)
 
int send_message_block_chain (const ACE_Message_Block *message_block, size_t &bytes_transferred, ACE_Time_Value *max_wait_time=0)
 
int send_message_block_chain_i (const ACE_Message_Block *message_block, size_t &bytes_transferred, TAO::Transport::Drain_Constraints const &dc)
 Send a message block chain, assuming the lock is held. More...
 
int purge_entry (void)
 Cache management. More...
 
int make_idle (void)
 Cache management. More...
 
int update_transport (void)
 Cache management. More...
 
int handle_timeout (const ACE_Time_Value &current_time, const void *act)
 
size_t recv_buffer_size (void) const
 Accessor to recv_buffer_size_. More...
 
size_t sent_byte_count (void) const
 Accessor to sent_byte_count_. More...
 
TAO_Codeset_Translator_Basechar_translator (void) const
 CodeSet Negotiation - Get the char codeset translator factory. More...
 
TAO_Codeset_Translator_Basewchar_translator (void) const
 CodeSet Negotiation - Get the wchar codeset translator factory. More...
 
void char_translator (TAO_Codeset_Translator_Base *)
 CodeSet negotiation - Set the char codeset translator factory. More...
 
void wchar_translator (TAO_Codeset_Translator_Base *)
 CodeSet negotiation - Set the wchar codeset translator factory. More...
 
void assign_translators (TAO_InputCDR *, TAO_OutputCDR *)
 
void clear_translators (TAO_InputCDR *, TAO_OutputCDR *)
 
CORBA::Boolean is_tcs_set () const
 Return true if the tcs has been set. More...
 
void first_request_sent (bool flag=false)
 Set the state of the first_request_ to flag. More...
 
bool first_request () const
 Get the first request flag. More...
 
void send_connection_closed_notifications (void)
 
TAO::Transport::Statsstats (void) const
 Transport statistics. More...
 

Protected Member Functions

virtual ~TAO_IIOP_Transport (void)
 Destructor. More...
 
- Protected Member Functions inherited from TAO_Transport
int process_parsed_messages (TAO_Queued_Data *qd, TAO_Resume_Handle &rh)
 
int send_message_shared_i (TAO_Stub *stub, TAO_Message_Semantics message_semantics, const ACE_Message_Block *message_block, ACE_Time_Value *max_wait_time)
 
int queue_message_i (const ACE_Message_Block *message_block, ACE_Time_Value *max_wait_time, bool back=true)
 
ACE_Time_Value const * io_timeout (TAO::Transport::Drain_Constraints const &dc) const
 Re-factor computation of I/O timeouts based on operation timeouts. Depending on the wait strategy, we need to timeout I/O operations or not. For example, if we are using a non-blocking strategy, we want to pass 0 to all I/O operations, and rely on the ACE_NONBLOCK settings on the underlying sockets. However, for blocking strategies we want to pass the operation timeouts, to respect the application level policies. More...
 
int notify_reactor_now (void)
 

Private Member Functions

void set_bidir_context_info (TAO_Operation_Details &opdetails)
 Set the Bidirectional context info in the service context list. More...
 
int get_listen_point (IIOP::ListenPointList &listen_point_list, TAO_Acceptor *acceptor)
 

Private Attributes

TAO_IIOP_Connection_Handlerconnection_handler_
 

Overridden Template Methods

Please check the documentation in "tao/Transport.h" for more details.

void update_protocol_properties (int send_buffer_size, int recv_buffer_size, int no_delay, int enable_network_priority)
 Bridge method to call a similar method on the connection handler. More...
 
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)
 Bridge method to call a similar method on the connection handler. More...
 
virtual int tear_listen_point_list (TAO_InputCDR &cdr)
 Bridge method to call a similar method on the connection handler. More...
 
virtual TAO_Connection_Handlerconnection_handler_i (void)
 Bridge method to call a similar method on the connection handler. More...
 
virtual ACE_Event_Handlerevent_handler_i (void)
 Bridge method to call a similar method on the connection handler. More...
 
virtual ssize_t send (iovec *iov, int iovcnt, size_t &bytes_transferred, const ACE_Time_Value *timeout=0)
 Bridge method to call a similar method on the connection handler. More...
 
virtual ssize_t recv (char *buf, size_t len, const ACE_Time_Value *s=0)
 Bridge method to call a similar method on the connection handler. More...
 

Additional Inherited Members

- Public Types inherited from TAO_Transport
enum  Drain_Result_Enum { DR_ERROR = -1, DR_OK = 0, DR_QUEUE_EMPTY = 1, DR_WOULDBLOCK = 2 }
 
- Protected Attributes inherited from TAO_Transport
CORBA::ULong const tag_
 IOP protocol tag. More...
 
TAO_ORB_Core *const orb_core_
 Global orbcore resource. More...
 
TAO::Transport_Cache_Manager::HASH_MAP_ENTRYcache_map_entry_
 
TAO_Transport_Mux_Strategytms_
 
TAO_Wait_Strategyws_
 Strategy for waiting for the reply after sending the request. More...
 
int bidirectional_flag_
 
TAO::Connection_Role opening_connection_role_
 
TAO_Queued_Messagehead_
 Implement the outgoing data queue. More...
 
TAO_Queued_Messagetail_
 
TAO_Incoming_Message_Queue incoming_message_queue_
 Queue of the consolidated, incoming messages.. More...
 
TAO::Incoming_Message_Stack incoming_message_stack_
 
ACE_Time_Value current_deadline_
 
long flush_timer_id_
 The timer ID. More...
 
TAO_Transport_Timer transport_timer_
 The adapter used to receive timeout callbacks from the Reactor. More...
 
ACE_Lockhandler_lock_
 
size_t id_
 A unique identifier for the transport. More...
 
unsigned long purging_order_
 Used by the LRU, LFU and FIFO Connection Purging Strategies. More...
 
size_t recv_buffer_size_
 Size of the buffer received. More...
 
size_t sent_byte_count_
 Number of bytes sent. More...
 
bool is_connected_
 
bool connection_closed_on_read_
 

Detailed Description

Specialization of the base TAO_Transport class to handle the IIOP protocol.

Specialization of the base TAO_Transport class to handle the IIOP protocol.

Constructor & Destructor Documentation

TAO_IIOP_Transport::TAO_IIOP_Transport ( TAO_IIOP_Connection_Handler handler,
TAO_ORB_Core orb_core 
)

Constructor.

TAO_IIOP_Transport::~TAO_IIOP_Transport ( void  )
protectedvirtual

Destructor.

Protected destructor to enforce proper memory management through the reference counting mechanism.

Member Function Documentation

TAO_Connection_Handler * TAO_IIOP_Transport::connection_handler_i ( void  )
virtual

Bridge method to call a similar method on the connection handler.

Implements TAO_Transport.

ACE_Event_Handler * TAO_IIOP_Transport::event_handler_i ( void  )
protectedvirtual

Bridge method to call a similar method on the connection handler.

Implements TAO_Transport.

int TAO_IIOP_Transport::get_listen_point ( IIOP::ListenPointList listen_point_list,
TAO_Acceptor acceptor 
)
private

Add the listen points in acceptor to the listen_point_list if this connection is in the same interface as that of the endpoints in the acceptor

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

Bridge method to call a similar method on the connection handler.

Implements TAO_Transport.

ssize_t TAO_IIOP_Transport::send ( iovec *  iov,
int  iovcnt,
size_t &  bytes_transferred,
const ACE_Time_Value timeout = 0 
)
protectedvirtual

Bridge method to call a similar method on the connection handler.

Implements TAO_Transport.

int TAO_IIOP_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

Bridge method to call a similar method on the connection handler.

Implements TAO_Transport.

int TAO_IIOP_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_IIOP_Transport::set_bidir_context_info ( TAO_Operation_Details opdetails)
privatevirtual

Set the Bidirectional context info in the service context list.

Reimplemented from TAO_Transport.

int TAO_IIOP_Transport::tear_listen_point_list ( TAO_InputCDR cdr)
virtual

Bridge method to call a similar method on the connection handler.

Reimplemented from TAO_Transport.

void TAO_IIOP_Transport::update_protocol_properties ( int  send_buffer_size,
int  recv_buffer_size,
int  no_delay,
int  enable_network_priority 
)

Bridge method to call a similar method on the connection handler.

Member Data Documentation

TAO_IIOP_Connection_Handler* TAO_IIOP_Transport::connection_handler_
private

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


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