summaryrefslogtreecommitdiff
path: root/TAO/tao/Pluggable.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Pluggable.h')
-rw-r--r--TAO/tao/Pluggable.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/TAO/tao/Pluggable.h b/TAO/tao/Pluggable.h
index d09997219ae..a5f94b17f54 100644
--- a/TAO/tao/Pluggable.h
+++ b/TAO/tao/Pluggable.h
@@ -53,6 +53,7 @@ class TAO_Operation_Details;
class TAO_Connection_Descriptor_Interface;
class TAO_Connection_Handler;
+
typedef ACE_Message_Queue<ACE_NULL_SYNCH> TAO_Transport_Buffering_Queue;
class TAO_Export TAO_Transport
@@ -98,9 +99,11 @@ public:
int two_way,
const ACE_Message_Block *mblk,
const ACE_Time_Value *s = 0) = 0;
+
virtual ssize_t send (const ACE_Message_Block *mblk,
const ACE_Time_Value *s = 0,
size_t *bytes_transferred = 0) = 0;
+
// Write the complete Message_Block chain to the connection.
// @@ The ACE_Time_Value *s is just a place holder for now. It is
// not clear this this is the best place to specify this. The actual
@@ -155,6 +158,13 @@ public:
// This is a request for the transport object to write a request
// header before it sends out a request
+ virtual int send_message (TAO_OutputCDR &stream,
+ TAO_Stub *stub = 0,
+ int twoway = 1,
+ ACE_Time_Value *max_time_wait = 0) = 0;
+ // This method formats the stream and then sends the message on the
+ // transport.
+
TAO_ORB_Core *orb_core (void) const;
// Access the ORB that owns this connection.
@@ -164,12 +174,12 @@ public:
TAO_Wait_Strategy *wait_strategy (void) const;
// Return the Wait strategy used by the Transport.
- virtual int handle_client_input (int block = 0,
- ACE_Time_Value *max_wait_time = 0);
- // Read and handle the reply. Returns 0 when there is Short Read on
- // the connection. Returns 1 when the full reply is read and
- // handled. Returns -1 on errors.
- // If <block> is 1, then reply is read in a blocking manner.
+ virtual int read_process_message (ACE_Time_Value *max_wait_time = 0,
+ int block = 0);
+ // Read and process the message on the connection. If <block> is 1,
+ // then reply is read in a blocking manner. Once the message has
+ // been successfully read, the message is processed by delegating
+ // the responsibility to the underlying messaging object.
virtual int register_handler (void);
// Register the handler with the reactor. Will be called by the Wait
@@ -215,6 +225,10 @@ public:
// would take care of the messaging objects.
void dequeue_all (void);
+
+ /// Return the TAO_ORB_Core
+ TAO_ORB_Core *orb_core (void);
+
protected:
void dequeue_head (void);
@@ -228,7 +242,6 @@ protected:
void reset_message (ACE_Message_Block *message_block,
size_t bytes_delivered,
int queued_message);
-
private:
// Prohibited
ACE_UNIMPLEMENTED_FUNC (TAO_Transport (const TAO_Transport&))