00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_PROTOCOLS_HOOKS_H
00014 #define TAO_PROTOCOLS_HOOKS_H
00015
00016 #include "ace/pre.h"
00017 #include "ace/CORBA_macros.h"
00018
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif
00022
00023 #include "ace/Service_Object.h"
00024
00025 #include "tao/TAO_Export.h"
00026 #include "tao/Basic_Types.h"
00027 #include "tao/IOP_IORC.h"
00028 #include "ace/SString.h"
00029
00030
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033 namespace CORBA
00034 {
00035 class Policy;
00036 class Environment;
00037 }
00038
00039 class TAO_ORB_Core;
00040 class TAO_Service_Context;
00041 class TAO_Connection_Handler;
00042 class TAO_Stub;
00043
00044 class TAO_Export TAO_IIOP_Protocol_Properties
00045 {
00046 public:
00047
00048 TAO_IIOP_Protocol_Properties (void);
00049
00050 CORBA::Long send_buffer_size_;
00051 CORBA::Long recv_buffer_size_;
00052 int keep_alive_;
00053 int dont_route_;
00054 int no_delay_;
00055 CORBA::Boolean enable_network_priority_;
00056 };
00057
00058 class TAO_Export TAO_UIOP_Protocol_Properties
00059 {
00060 public:
00061
00062 TAO_UIOP_Protocol_Properties (void);
00063
00064 CORBA::Long send_buffer_size_;
00065 CORBA::Long recv_buffer_size_;
00066 };
00067
00068 class TAO_Export TAO_SHMIOP_Protocol_Properties
00069 {
00070 public:
00071
00072 TAO_SHMIOP_Protocol_Properties (void);
00073
00074 CORBA::Long send_buffer_size_;
00075 CORBA::Long recv_buffer_size_;
00076 int keep_alive_;
00077 int dont_route_;
00078 int no_delay_;
00079 CORBA::Long preallocate_buffer_size_;
00080 ACE_CString mmap_filename_;
00081 ACE_CString mmap_lockname_;
00082 };
00083
00084 class TAO_Export TAO_DIOP_Protocol_Properties
00085 {
00086 public:
00087
00088 TAO_DIOP_Protocol_Properties (void);
00089
00090 CORBA::Boolean enable_network_priority_;
00091 };
00092
00093 class TAO_Export TAO_SCIOP_Protocol_Properties
00094 {
00095 public:
00096
00097 TAO_SCIOP_Protocol_Properties (void);
00098
00099 CORBA::Long send_buffer_size_;
00100 CORBA::Long recv_buffer_size_;
00101 int keep_alive_;
00102 int dont_route_;
00103 int no_delay_;
00104 CORBA::Boolean enable_network_priority_;
00105 };
00106
00107 class TAO_Export TAO_Protocols_Hooks : public ACE_Service_Object
00108 {
00109 public:
00110
00111 virtual ~TAO_Protocols_Hooks (void);
00112
00113
00114 virtual void init_hooks (TAO_ORB_Core *orb_core
00115 ACE_ENV_ARG_DECL) = 0;
00116
00117 virtual CORBA::Boolean set_client_network_priority (IOP::ProfileId protocol_tag,
00118 TAO_Stub *stub
00119 ACE_ENV_ARG_DECL) = 0;
00120
00121 virtual CORBA::Boolean set_server_network_priority (IOP::ProfileId protocol_tag,
00122 CORBA::Policy *policy
00123 ACE_ENV_ARG_DECL) = 0;
00124
00125 virtual void server_protocol_properties_at_orb_level (TAO_IIOP_Protocol_Properties &protocol_properties
00126 ACE_ENV_ARG_DECL) = 0;
00127
00128 virtual void client_protocol_properties_at_orb_level (TAO_IIOP_Protocol_Properties &protocol_properties
00129 ACE_ENV_ARG_DECL) = 0;
00130
00131 virtual void server_protocol_properties_at_orb_level (TAO_UIOP_Protocol_Properties &protocol_properties
00132 ACE_ENV_ARG_DECL) = 0;
00133
00134 virtual void client_protocol_properties_at_orb_level (TAO_UIOP_Protocol_Properties &protocol_properties
00135 ACE_ENV_ARG_DECL) = 0;
00136
00137 virtual void server_protocol_properties_at_orb_level (TAO_SHMIOP_Protocol_Properties &protocol_properties
00138 ACE_ENV_ARG_DECL) = 0;
00139
00140 virtual void client_protocol_properties_at_orb_level (TAO_SHMIOP_Protocol_Properties &protocol_properties
00141 ACE_ENV_ARG_DECL) = 0;
00142
00143 virtual void server_protocol_properties_at_orb_level (TAO_DIOP_Protocol_Properties &protocol_properties
00144 ACE_ENV_ARG_DECL) = 0;
00145
00146 virtual void client_protocol_properties_at_orb_level (TAO_DIOP_Protocol_Properties &protocol_properties
00147 ACE_ENV_ARG_DECL) = 0;
00148
00149 virtual void server_protocol_properties_at_orb_level (TAO_SCIOP_Protocol_Properties &protocol_properties
00150 ACE_ENV_ARG_DECL) = 0;
00151
00152 virtual void client_protocol_properties_at_orb_level (TAO_SCIOP_Protocol_Properties &protocol_properties
00153 ACE_ENV_ARG_DECL) = 0;
00154
00155 virtual CORBA::Long get_dscp_codepoint (void) = 0;
00156
00157 virtual void rt_service_context (TAO_Stub *stub,
00158 TAO_Service_Context &service_context,
00159 CORBA::Boolean restart
00160 ACE_ENV_ARG_DECL) = 0;
00161
00162 virtual void add_rt_service_context_hook (
00163 TAO_Service_Context &service_context,
00164 CORBA::Policy *model_policy,
00165 CORBA::Short &client_priority
00166 ACE_ENV_ARG_DECL) = 0;
00167
00168 virtual void get_selector_hook (CORBA::Policy *model_policy,
00169 CORBA::Boolean
00170 &is_client_propagated,
00171 CORBA::Short &server_priority) = 0;
00172
00173 virtual void get_selector_bands_policy_hook (CORBA::Policy *bands_policy,
00174 CORBA::Short priority,
00175 CORBA::Short &min_priority,
00176 CORBA::Short &max_priority,
00177 int &in_range) = 0;
00178
00179
00180
00181
00182
00183
00184
00185
00186 virtual int get_thread_CORBA_priority (CORBA::Short &
00187 ACE_ENV_ARG_DECL) = 0;
00188
00189 virtual int get_thread_native_priority (CORBA::Short &
00190 ACE_ENV_ARG_DECL) = 0;
00191
00192 virtual int get_thread_CORBA_and_native_priority (
00193 CORBA::Short &,
00194 CORBA::Short &
00195 ACE_ENV_ARG_DECL) = 0;
00196
00197 virtual int set_thread_CORBA_priority (CORBA::Short
00198 ACE_ENV_ARG_DECL) = 0;
00199
00200 virtual int set_thread_native_priority (CORBA::Short
00201 ACE_ENV_ARG_DECL) = 0;
00202
00203
00204 };
00205
00206 TAO_END_VERSIONED_NAMESPACE_DECL
00207
00208 #include "ace/post.h"
00209
00210 #endif