Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_SCIOP_TRANSPORT_H
00014 #define TAO_SCIOP_TRANSPORT_H
00015 #include "ace/pre.h"
00016
00017 #include "tao/orbconf.h"
00018
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif
00022
00023 #if TAO_HAS_SCIOP == 1
00024
00025 #include "tao/Strategies/strategies_export.h"
00026 #include "tao/Transport.h"
00027 #include "tao/IIOPC.h"
00028 #include "ace/SOCK_SEQPACK_Association.h"
00029
00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00031
00032
00033 class TAO_SCIOP_Connection_Handler;
00034 class TAO_ORB_Core;
00035 class TAO_Operation_Details;
00036 class TAO_Acceptor;
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 class TAO_Strategies_Export TAO_SCIOP_Transport : public TAO_Transport
00048 {
00049 public:
00050
00051
00052 TAO_SCIOP_Transport (TAO_SCIOP_Connection_Handler *handler,
00053 TAO_ORB_Core *orb_core);
00054
00055 protected:
00056
00057
00058
00059
00060
00061
00062 virtual ~TAO_SCIOP_Transport (void);
00063
00064
00065
00066
00067
00068
00069
00070
00071 virtual ACE_Event_Handler * event_handler_i (void);
00072
00073 virtual ssize_t send (iovec *iov, int iovcnt,
00074 size_t &bytes_transferred,
00075 const ACE_Time_Value *timeout = 0);
00076
00077 virtual ssize_t recv (char *buf,
00078 size_t len,
00079 const ACE_Time_Value *s = 0);
00080
00081
00082 public:
00083
00084
00085 virtual int send_request (TAO_Stub *stub,
00086 TAO_ORB_Core *orb_core,
00087 TAO_OutputCDR &association,
00088 TAO_Message_Semantics message_semantics,
00089 ACE_Time_Value *max_wait_time);
00090
00091 virtual int send_message (TAO_OutputCDR &association,
00092 TAO_Stub *stub = 0,
00093 TAO_Message_Semantics message_semantics = TAO_TWOWAY_REQUEST,
00094 ACE_Time_Value *max_time_wait = 0);
00095
00096
00097
00098
00099 virtual int tear_listen_point_list (TAO_InputCDR &cdr);
00100
00101 virtual TAO_Connection_Handler * connection_handler_i (void);
00102
00103
00104
00105 private:
00106
00107
00108 void set_bidir_context_info (TAO_Operation_Details &opdetails);
00109
00110
00111
00112
00113 int get_listen_point (IIOP::ListenPointList &listen_point_list,
00114 TAO_Acceptor *acceptor);
00115 private:
00116
00117
00118
00119 TAO_SCIOP_Connection_Handler *connection_handler_;
00120 };
00121
00122 TAO_END_VERSIONED_NAMESPACE_DECL
00123
00124 #endif
00125
00126 #include "ace/post.h"
00127
00128 #endif