Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_RT_PROTOCOLS_HOOKS_H
00014 #define TAO_RT_PROTOCOLS_HOOKS_H
00015
00016 #include "ace/pre.h"
00017
00018 #include "tao/orbconf.h"
00019
00020 #if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
00021
00022 #include "tao/RTCORBA/rtcorba_export.h"
00023 #include "tao/RTCORBA/Priority_Mapping_Manager.h"
00024 #include "tao/RTCORBA/Network_Priority_Mapping_Manager.h"
00025
00026 #include "tao/Protocols_Hooks.h"
00027
00028 #include "ace/Service_Config.h"
00029
00030 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00031 # pragma once
00032 #endif
00033
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035
00036 class TAO_RTCORBA_Export TAO_RT_Protocols_Hooks : public TAO_Protocols_Hooks
00037 {
00038 public:
00039
00040
00041 TAO_RT_Protocols_Hooks (void);
00042
00043
00044 virtual ~TAO_RT_Protocols_Hooks (void);
00045
00046
00047 void init_hooks (TAO_ORB_Core *orb_core
00048 );
00049
00050 CORBA::Boolean set_client_network_priority (IOP::ProfileId protocol_tag,
00051 TAO_Stub *stub);
00052
00053 CORBA::Boolean set_server_network_priority (IOP::ProfileId protocol_tag,
00054 CORBA::Policy *policy);
00055
00056 void server_protocol_properties_at_orb_level (TAO_IIOP_Protocol_Properties &protocol_properties
00057 );
00058
00059 void client_protocol_properties_at_orb_level (TAO_IIOP_Protocol_Properties &protocol_properties
00060 );
00061
00062 void server_protocol_properties_at_orb_level (TAO_UIOP_Protocol_Properties &protocol_properties
00063 );
00064
00065 void client_protocol_properties_at_orb_level (TAO_UIOP_Protocol_Properties &protocol_properties
00066 );
00067
00068 void server_protocol_properties_at_orb_level (TAO_SHMIOP_Protocol_Properties &protocol_properties
00069 );
00070
00071 void client_protocol_properties_at_orb_level (TAO_SHMIOP_Protocol_Properties &protocol_properties
00072 );
00073
00074 void server_protocol_properties_at_orb_level (TAO_DIOP_Protocol_Properties &protocol_properties);
00075
00076 void client_protocol_properties_at_orb_level (TAO_DIOP_Protocol_Properties &protocol_properties);
00077
00078 void server_protocol_properties_at_orb_level (TAO_SCIOP_Protocol_Properties &protocol_properties);
00079
00080 void client_protocol_properties_at_orb_level (TAO_SCIOP_Protocol_Properties &protocol_properties);
00081
00082 CORBA::Long get_dscp_codepoint (void);
00083
00084 void get_selector_hook (CORBA::Policy *model_policy,
00085 CORBA::Boolean
00086 &is_client_propagated,
00087 CORBA::Short &server_priority);
00088
00089 void get_selector_bands_policy_hook (CORBA::Policy *bands_policy,
00090 CORBA::Short priority,
00091 CORBA::Short &min_priority,
00092 CORBA::Short &max_priority,
00093 bool &in_range);
00094
00095
00096
00097
00098
00099
00100
00101 int get_thread_CORBA_priority (CORBA::Short &priority);
00102
00103 int get_thread_native_priority (CORBA::Short &);
00104
00105 int get_thread_CORBA_and_native_priority (CORBA::Short &, CORBA::Short &);
00106
00107 int get_thread_implicit_CORBA_priority (CORBA::Short&);
00108
00109 int set_thread_CORBA_priority (CORBA::Short);
00110
00111 int restore_thread_CORBA_and_native_priority (CORBA::Short,
00112 CORBA::Short);
00113
00114
00115
00116 protected:
00117 int set_thread_native_priority (CORBA::Short);
00118
00119 RTCORBA::ProtocolProperties_ptr server_protocol_properties (IOP::ProfileId protocol_tag,
00120 CORBA::Policy_ptr policy
00121 );
00122
00123 RTCORBA::ProtocolProperties_ptr client_protocol_properties (IOP::ProfileId protocol_tag,
00124 CORBA::Policy_ptr policy);
00125
00126 RTCORBA::ProtocolProperties_ptr server_protocol_properties_at_orb_level (IOP::ProfileId protocol_tag);
00127
00128 RTCORBA::ProtocolProperties_ptr client_protocol_properties_at_orb_level (IOP::ProfileId protocol_tag);
00129
00130 RTCORBA::ProtocolProperties_ptr client_protocol_properties_at_object_level (IOP::ProfileId protocol_tag,
00131 TAO_Stub *stub);
00132
00133 void extract_protocol_properties (TAO_IIOP_Protocol_Properties &to,
00134 RTCORBA::ProtocolProperties_ptr from);
00135
00136 void extract_protocol_properties (TAO_UIOP_Protocol_Properties &to,
00137 RTCORBA::ProtocolProperties_ptr from);
00138
00139 void extract_protocol_properties (TAO_SHMIOP_Protocol_Properties &to,
00140 RTCORBA::ProtocolProperties_ptr from);
00141
00142 void extract_protocol_properties (TAO_DIOP_Protocol_Properties &to,
00143 RTCORBA::ProtocolProperties_ptr from);
00144
00145 void extract_protocol_properties (TAO_SCIOP_Protocol_Properties &to,
00146 RTCORBA::ProtocolProperties_ptr from);
00147
00148 CORBA::Boolean set_network_priority (IOP::ProfileId protocol_tag,
00149 RTCORBA::ProtocolProperties_ptr protocol_properties);
00150
00151 protected:
00152
00153 TAO_ORB_Core *orb_core_;
00154
00155
00156 TAO_Priority_Mapping_Manager_var mapping_manager_;
00157 TAO_Network_Priority_Mapping_Manager_var network_mapping_manager_;
00158
00159 RTCORBA::Current_var current_;
00160 };
00161
00162 ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_Protocols_Hooks)
00163 ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_Protocols_Hooks)
00164
00165 TAO_END_VERSIONED_NAMESPACE_DECL
00166
00167
00168 #endif
00169
00170 #include "ace/post.h"
00171 #endif