Go to the documentation of this file.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/IOPC.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 CORBA::Long hop_limit_;
00054 };
00055
00056 class TAO_Export TAO_UIOP_Protocol_Properties
00057 {
00058 public:
00059
00060 TAO_UIOP_Protocol_Properties (void);
00061
00062 CORBA::Long send_buffer_size_;
00063 CORBA::Long recv_buffer_size_;
00064 };
00065
00066 class TAO_Export TAO_SHMIOP_Protocol_Properties
00067 {
00068 public:
00069
00070 TAO_SHMIOP_Protocol_Properties (void);
00071
00072 CORBA::Long send_buffer_size_;
00073 CORBA::Long recv_buffer_size_;
00074 int keep_alive_;
00075 int dont_route_;
00076 int no_delay_;
00077 CORBA::Long preallocate_buffer_size_;
00078 ACE_CString mmap_filename_;
00079 ACE_CString mmap_lockname_;
00080 };
00081
00082 class TAO_Export TAO_DIOP_Protocol_Properties
00083 {
00084 public:
00085
00086 TAO_DIOP_Protocol_Properties (void);
00087
00088 CORBA::Long send_buffer_size_;
00089 CORBA::Long recv_buffer_size_;
00090 CORBA::Boolean enable_network_priority_;
00091 CORBA::Long hop_limit_;
00092 CORBA::Boolean enable_multicast_loop_;
00093 };
00094
00095 class TAO_Export TAO_SCIOP_Protocol_Properties
00096 {
00097 public:
00098
00099 TAO_SCIOP_Protocol_Properties (void);
00100
00101 CORBA::Long send_buffer_size_;
00102 CORBA::Long recv_buffer_size_;
00103 int keep_alive_;
00104 int dont_route_;
00105 int no_delay_;
00106 CORBA::Boolean enable_network_priority_;
00107 CORBA::Long hop_limit_;
00108 };
00109
00110 class TAO_Export TAO_Protocols_Hooks : public ACE_Service_Object
00111 {
00112 public:
00113
00114 virtual ~TAO_Protocols_Hooks (void);
00115
00116
00117 virtual void init_hooks (TAO_ORB_Core *orb_core) = 0;
00118
00119 virtual CORBA::Boolean set_client_network_priority (
00120 IOP::ProfileId protocol_tag,
00121 TAO_Stub *stub) = 0;
00122
00123 virtual CORBA::Boolean set_server_network_priority (
00124 IOP::ProfileId protocol_tag,
00125 CORBA::Policy *policy) = 0;
00126
00127 virtual void server_protocol_properties_at_orb_level (
00128 TAO_IIOP_Protocol_Properties &protocol_properties) = 0;
00129
00130 virtual void client_protocol_properties_at_orb_level (
00131 TAO_IIOP_Protocol_Properties &protocol_properties) = 0;
00132
00133 virtual void server_protocol_properties_at_orb_level (
00134 TAO_UIOP_Protocol_Properties &protocol_properties) = 0;
00135
00136 virtual void client_protocol_properties_at_orb_level (
00137 TAO_UIOP_Protocol_Properties &protocol_properties) = 0;
00138
00139 virtual void server_protocol_properties_at_orb_level (
00140 TAO_SHMIOP_Protocol_Properties &protocol_properties) = 0;
00141
00142 virtual void client_protocol_properties_at_orb_level (
00143 TAO_SHMIOP_Protocol_Properties &protocol_properties) = 0;
00144
00145 virtual void server_protocol_properties_at_orb_level (
00146 TAO_DIOP_Protocol_Properties &protocol_properties) = 0;
00147
00148 virtual void client_protocol_properties_at_orb_level (
00149 TAO_DIOP_Protocol_Properties &protocol_properties) = 0;
00150
00151 virtual void server_protocol_properties_at_orb_level (
00152 TAO_SCIOP_Protocol_Properties &protocol_properties) = 0;
00153
00154 virtual void client_protocol_properties_at_orb_level (
00155 TAO_SCIOP_Protocol_Properties &protocol_properties) = 0;
00156
00157 virtual CORBA::Long get_dscp_codepoint (void) = 0;
00158
00159 virtual void get_selector_hook (CORBA::Policy *model_policy,
00160 CORBA::Boolean &is_client_propagated,
00161 CORBA::Short &server_priority) = 0;
00162
00163 virtual void get_selector_bands_policy_hook (CORBA::Policy *bands_policy,
00164 CORBA::Short priority,
00165 CORBA::Short &min_priority,
00166 CORBA::Short &max_priority,
00167 bool &in_range) = 0;
00168
00169
00170
00171
00172
00173
00174
00175
00176 virtual int get_thread_CORBA_priority (CORBA::Short &) = 0;
00177
00178 virtual int get_thread_native_priority (CORBA::Short &) = 0;
00179
00180 virtual int get_thread_CORBA_and_native_priority (
00181 CORBA::Short &,
00182 CORBA::Short &) = 0;
00183
00184 virtual int get_thread_implicit_CORBA_priority (CORBA::Short&) = 0;
00185
00186 virtual int set_thread_CORBA_priority (CORBA::Short) = 0;
00187
00188 virtual int restore_thread_CORBA_and_native_priority (CORBA::Short,
00189 CORBA::Short) = 0;
00190
00191 };
00192
00193 TAO_END_VERSIONED_NAMESPACE_DECL
00194
00195 #include "ace/post.h"
00196
00197 #endif