Protocols_Hooks.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // ===================================================================
00004 /**
00005  *  @file   Protocols_Hooks.h
00006  *
00007  *  Protocols_Hooks.h,v 1.31 2006/03/10 07:19:06 jtc Exp
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 #include "ace/CORBA_macros.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif /* ACE_LACKS_PRAGMA_ONCE */
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   /// destructor
00111   virtual ~TAO_Protocols_Hooks (void);
00112 
00113   /// Initialize the protocols hooks instance.
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    * @name Accessor and modifier to the current thread priority, used to
00181    * implement the RTCORBA::Current interface, but it is faster for
00182    * some critical components.  If the RTCORBA library isn't used,
00183    * these operations are no-ops.
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 /* TAO_PROTOCOLS_HOOKS_H */

Generated on Thu Nov 9 11:54:21 2006 for TAO by doxygen 1.3.6