Protocols_Hooks.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // ===================================================================
00004 /**
00005  *  @file   Protocols_Hooks.h
00006  *
00007  *  $Id: Protocols_Hooks.h 78627 2007-06-28 08:50:01Z johnnyw $
00008  *
00009  *  @author Priyanka Gontla <pgontla@ece.uci.edu>
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 /* ACE_LACKS_PRAGMA_ONCE */
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   /// destructor
00110   virtual ~TAO_Protocols_Hooks (void);
00111 
00112   /// Initialize the protocols hooks instance.
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    * @name Accessor and modifier to the current thread priority, used to
00176    * implement the RTCORBA::Current interface, but it is faster for
00177    * some critical components.  If the RTCORBA library isn't used,
00178    * these operations are no-ops.
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 /* TAO_PROTOCOLS_HOOKS_H */

Generated on Tue Feb 2 17:37:52 2010 for TAO by  doxygen 1.4.7