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