rt_policy_i.h
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C头文件 代码 · 共 749 行 · 第 1/2 页
H
749 行
/**
* @class TAO_ClientProtocolPolicy
*
* @brief RTCORBA::ClientProtocolPolicy implementation
*
* This policy controls selection and configuration of
* communication protocols on the client-side of the RT ORB.
*/
class TAO_RTCORBA_Export TAO_ClientProtocolPolicy
: public RTCORBA::ClientProtocolPolicy,
public TAO_Local_RefCounted_Object
{
public:
/// Constructor.
TAO_ClientProtocolPolicy (const RTCORBA::ProtocolList &protocols);
/// Copy constructor.
TAO_ClientProtocolPolicy (const TAO_ClientProtocolPolicy &rhs);
/**
* Accessor to the underlying protocols list of the policy (does not
* make a copy like the idl accessor <protocols> implementation
* below.)
*/
RTCORBA::ProtocolList & protocols_rep (void);
RTCORBA::ProtocolList *protocols
(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
static int hook (TAO_ORB_Core *orb_core,
int &send_buffer_size,
int &recv_buffer_size,
int &no_delay,
int &enable_network_priority,
const char* protocol_type);
void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
// = CDR Encoder/Decoder.
/// This method writes a CDR representation of the current object.
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr);
/// This method reads the object state from a CDR representation.
CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr);
// Return the cached policy type for this policy.
TAO_Cached_Policy_Type _tao_cached_type (void) const;
// Returns the scope at which this policy can be applied. See orbconf.h.
TAO_Policy_Scope _tao_scope (void) const;
/// Helper method for the implementation of
/// CORBA::ORB::create_policy.
static CORBA::Policy_ptr create (const CORBA::Any &val
ACE_ENV_ARG_DECL);
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
virtual ~TAO_ClientProtocolPolicy (void);
/// This constructor is used by TAO_RT_PolicyFactory when decoding
/// policies from tagged components in an IOR.
friend class TAO_RT_PolicyFactory;
TAO_ClientProtocolPolicy (void);
private:
/// Attribute.
RTCORBA::ProtocolList protocols_;
};
//*************************************************************************
class TAO_RTCORBA_Export TAO_TCP_Properties
: public RTCORBA::TCPProtocolProperties,
public TAO_Local_RefCounted_Object
{
// = TITLE
// RTCORBA::TCPProtocolProperties implementation
//
// = DESCRIPTION
// Stores TCP Protocol configuration properties.
//
public:
/// Constructor.
TAO_TCP_Properties (CORBA::Long send_buffer_size =
ACE_DEFAULT_MAX_SOCKET_BUFSIZ,
CORBA::Long recv_buffer_size =
ACE_DEFAULT_MAX_SOCKET_BUFSIZ,
CORBA::Boolean keep_alive = 1,
CORBA::Boolean dont_route = 0,
CORBA::Boolean no_delay = 1,
CORBA::Boolean enable_network_priority = 0);
CORBA::Long send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void send_buffer_size (CORBA::Long send_buffer_size
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Long recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void recv_buffer_size (CORBA::Long recv_buffer_size
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Boolean keep_alive (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void keep_alive (CORBA::Boolean keep_alive
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Boolean dont_route (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void dont_route (CORBA::Boolean dont_route
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Boolean no_delay (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void no_delay (CORBA::Boolean no_delay
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// This method writes a CDR representation of TCPProtocolProperties.
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr);
/// This method reads the object state from a CDR representation.
CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr);
CORBA::Boolean enable_network_priority (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void enable_network_priority (CORBA::Boolean enable
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
virtual ~TAO_TCP_Properties (void);
private:
// = Attributes.
CORBA::Long send_buffer_size_;
CORBA::Long recv_buffer_size_;
CORBA::Boolean keep_alive_;
CORBA::Boolean dont_route_;
CORBA::Boolean no_delay_;
CORBA::Boolean enable_network_priority_;
};
//*************************************************************************
/**
* @class TAO_Unix_Domain_Properties
*
* @brief RTCORBA::UnixDomainProtocolProperties implementation.
*
* Stores Unix Domain Sockets (Local IPC) Protocol configuration
* properties.
*/
class TAO_RTCORBA_Export TAO_Unix_Domain_Properties
: public RTCORBA::UnixDomainProtocolProperties,
public TAO_Local_RefCounted_Object
{
public:
/// Constructor
TAO_Unix_Domain_Properties (CORBA::Long send_buffer_size = ACE_DEFAULT_MAX_SOCKET_BUFSIZ,
CORBA::Long recv_buffer_size = ACE_DEFAULT_MAX_SOCKET_BUFSIZ);
CORBA::Long send_buffer_size (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void send_buffer_size (CORBA::Long send_buffer_size
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
CORBA::Long recv_buffer_size (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void recv_buffer_size (CORBA::Long recv_buffer_size
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/**
* This method writes the CDR encapsulation of an instance of
* UnixDomainProperties. This Protocol Property in TAO specific,
* so there is no order of encapsulation specified in the
* RT CORBA Spec. The current implementation encodes the field
* according to the order of declaration (i.e. first is encoded
* send_buffer_size and then recv_buffer_size).
*/
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr);
/**
* This method reads an instance of UnixDomainProperties from
* a CDR encapsulation. This Protocol Property in TAO specific,
* so there is no order of encapsulation specified in the
* RT CORBA Spec. The current implementation expect the field
* according to the order of declaration.
*/
CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr);
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
virtual ~TAO_Unix_Domain_Properties (void);
private:
// = Attributes.
CORBA::Long send_buffer_size_;
CORBA::Long recv_buffer_size_;
};
//*************************************************************************
/**
* @class TAO_SMEM_Properties
*
* @brief RTCORBA::SharedMemoryProtocolProperties implementation.
*
* Stores Shared Memory Protocol configuration
* properties.
*/
class TAO_RTCORBA_Export TAO_SMEM_Properties
: public RTCORBA::SharedMemoryProtocolProperties,
public TAO_Local_RefCounted_Object
{
public:
/// Constructor.
TAO_SMEM_Properties (void);
// = IDL interface methods.
CORBA::Long preallocate_buffer_size (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void preallocate_buffer_size (CORBA::Long preallocate_buffer_size
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
char *mmap_filename (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void mmap_filename (const char *mmap_filename
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
char *mmap_lockname (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void mmap_lockname (const char *mmap_lockname
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/**
* This method writes the CDR encapsulation of an instance of
* SMEMProperties. This Protocol Property in TAO specific,
* so there is no order of encapsulation specified in the
* RT CORBA Spec. The current implementation encodes the field
* according to the order of declaration.
*/
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr);
/**
* This method reads an instance of SMEMProperties from
* a CDR encapsulation. This Protocol Property in TAO specific,
* so there is no order of encapsulation specified in the
* RT CORBA Spec. The current implementation expect the field
* according to the order of declaration.
*/
CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr);
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
virtual ~TAO_SMEM_Properties (void);
private:
// = Attributes.
CORBA::Long preallocate_buffer_size_;
ACE_CString mmap_filename_;
ACE_CString mmap_lockname_;
};
//*************************************************************************
class TAO_RTCORBA_Export TAO_GIOP_Properties
: public RTCORBA::GIOPProtocolProperties,
public TAO_Local_RefCounted_Object
{
public:
// = CDR encoding methods
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr);
CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr);
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
virtual ~TAO_GIOP_Properties ();
friend class TAO_Protocol_Properties_Factory;
TAO_GIOP_Properties (void);
};
//*************************************************************************
class TAO_RTCORBA_Export TAO_Protocol_Properties_Factory
{
public:
/**
* Creates the proper transport ProtocolProperties subclass that matches
* the IOP::ProfileId.
* NOTE: Each IOP::ProfileId corresponds to two sets of protocol
* properties: one describes the transport protocol and the other
* describes the ORB messaging protocol.
*/
static RTCORBA::ProtocolProperties *create_transport_protocol_property (IOP::ProfileId id);
/**
* Creates the proper orb ProtocolProperties subclass for
* IOP::ProfileId.
* NOTE: Each IOP::ProfileId corresponds to two sets of protocol
* properties: one describes the transport protocol and the other
* describes the ORB messaging protocol.
*/
static RTCORBA::ProtocolProperties*create_orb_protocol_property (IOP::ProfileId id);
protected:
TAO_Protocol_Properties_Factory (void);
};
#if defined (__ACE_INLINE__)
#include "RT_Policy_i.i"
#endif /* __ACE_INLINE__ */
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
#pragma warning(pop)
#endif /* _MSC_VER */
#endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */
#include /**/ "ace/post.h"
#endif /* TAO_RT_POLICY_I_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?