3 // ===================================================================
5 * @file SCIOP_Transport.h
7 * @author Jason Cohen, Lockheed Martin ATL <jcohen@atl.lmco.com>
8 * @author Keith O'Hara, Lockheed Martin ATL
10 // ===================================================================
12 #ifndef TAO_SCIOP_TRANSPORT_H
13 #define TAO_SCIOP_TRANSPORT_H
14 #include /**/ "ace/pre.h"
16 #include "tao/orbconf.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #if TAO_HAS_SCIOP == 1
24 #include "tao/Strategies/strategies_export.h"
25 #include "tao/Transport.h"
26 #include "tao/IIOPC.h"
27 #include "ace/SOCK_SEQPACK_Association.h"
29 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
32 class TAO_SCIOP_Connection_Handler
;
34 class TAO_Operation_Details
;
38 * @class TAO_SCIOP_Transport
40 * @brief Specialization of the base TAO_Transport class to handle the
43 * Specialization of the base TAO_Transport class to handle the SCIOP
46 class TAO_Strategies_Export TAO_SCIOP_Transport
: public TAO_Transport
50 TAO_SCIOP_Transport (TAO_SCIOP_Connection_Handler
*handler
,
51 TAO_ORB_Core
*orb_core
);
56 * Protected destructor to enforce proper memory management through
57 * the reference counting mechanism.
59 virtual ~TAO_SCIOP_Transport ();
61 /** @name Overridden Template Methods
63 * Please check the documentation in "tao/Transport.h" for more
67 virtual ACE_Event_Handler
* event_handler_i ();
69 virtual ssize_t
send (iovec
*iov
, int iovcnt
,
70 size_t &bytes_transferred
,
71 const ACE_Time_Value
*timeout
= 0);
73 virtual ssize_t
recv (char *buf
,
75 const ACE_Time_Value
*s
= 0);
79 /// @todo These methods IMHO should have more meaningful
80 /// names. The names seem to indicate nothing.
81 virtual int send_request (TAO_Stub
*stub
,
82 TAO_ORB_Core
*orb_core
,
83 TAO_OutputCDR
&association
,
84 TAO_Message_Semantics message_semantics
,
85 ACE_Time_Value
*max_wait_time
);
87 virtual int send_message (TAO_OutputCDR
&association
,
89 TAO_ServerRequest
*request
= 0,
90 TAO_Message_Semantics message_semantics
= TAO_Message_Semantics (),
91 ACE_Time_Value
*max_time_wait
= 0);
93 /*virtual int send_reply (TAO_OutputCDR &stream,
94 TAO_Adapter *poa = 0);*/
96 virtual int tear_listen_point_list (TAO_InputCDR
&cdr
);
98 virtual TAO_Connection_Handler
* connection_handler_i ();
103 /// Set the Bidirectional context info in the service context list
104 void set_bidir_context_info (TAO_Operation_Details
&opdetails
);
106 /// Add the listen points in <acceptor> to the <listen_point_list>
107 /// if this connection is in the same interface as that of the
108 /// endpoints in the <acceptor>
109 int get_listen_point (IIOP::ListenPointList
&listen_point_list
,
110 TAO_Acceptor
*acceptor
);
112 /// The connection service handler used for accessing lower layer
113 /// communication protocols.
114 TAO_SCIOP_Connection_Handler
*connection_handler_
;
117 TAO_END_VERSIONED_NAMESPACE_DECL
119 #endif /* TAO_HAS_SCIOP == 1 */
121 #include /**/ "ace/post.h"
123 #endif /* TAO_SCIOP_TRANSPORT_H */