poa.h
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C头文件 代码 · 共 1,088 行 · 第 1/3 页
H
1,088 行
// -*- C++ -*-
//=============================================================================
/**
* @file POA.h
*
* POA.h,v 1.52 2003/12/19 11:23:21 jwillemsen Exp
*
* Header file for CORBA's ORB type.
*
* @author Irfan Pyarali <irfan@cs.wustl.edu>
*/
//=============================================================================
#ifndef TAO_POA_H
#define TAO_POA_H
#include /**/ "ace/pre.h"
#include "ace/SString.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
// Object Adapter
#include "Object_Adapter.h"
// POAManager
#include "POAManager.h"
// POA Policy Set
#include "POA_Policy_Set.h"
// Cached POA Policies
#include "POA_Cached_Policies.h"
// Object_Key
#include "tao/Object_KeyC.h"
// Local Object
#include "tao/LocalObject.h"
// Portable Interceptor
#include "tao/PortableInterceptorC.h"
// Map
#include "ace/Hash_Map_Manager_T.h"
// ACE_Array_Base
#include "ace/Array_Base.h"
// Locking
#include "ace/Synch_Traits.h"
#include "ace/Thread_Mutex.h"
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Null_Mutex.h"
// OctetSeq
#include "tao/OctetSeqC.h"
// This is to remove "inherits via dominance" warnings from MSVC.
// MSVC is being a little too paranoid.
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
#pragma warning(push)
#endif /* _MSC_VER >= 1200 */
#pragma warning(disable:4250)
#endif /* _MSC_VER */
class TAO_Acceptor_Filter;
class TAO_Acceptor_Registry;
class TAO_Temporary_Creation_Time;
class TAO_ObjectReferenceTemplate;
class TAO_Creation_Time
{
public:
TAO_Creation_Time (const ACE_Time_Value &creation_time);
TAO_Creation_Time (void);
void creation_time (const void *creation_time);
const void *creation_time (void) const;
static CORBA::ULong creation_time_length (void);
int operator== (const TAO_Creation_Time &rhs) const;
int operator!= (const TAO_Creation_Time &rhs) const;
int operator== (const TAO_Temporary_Creation_Time &rhs) const;
int operator!= (const TAO_Temporary_Creation_Time &rhs) const;
protected:
enum
{
SEC_FIELD = 0,
USEC_FIELD = 1
};
/// Timestamp
CORBA::ULong time_stamp_[2];
};
//
/**
* @class TAO_Temporary_Creation_Time
*
* @brief Special creation time only useful in the lifetime of the
* upcall.
*
* Special creation time only useful in the lifetime of the upcall.
*/
class TAO_Temporary_Creation_Time
{
public:
TAO_Temporary_Creation_Time (void);
void creation_time (const void *creation_time);
int operator== (const TAO_Creation_Time &rhs) const;
int operator!= (const TAO_Creation_Time &rhs) const;
protected:
void *time_stamp_;
};
// Forward Declaration
class ServerObject_i;
namespace PortableInterceptor
{
class IORInfo;
typedef IORInfo *IORInfo_ptr;
}
/**
* @class TAO_POA
*
* @brief Implementation of the PortableServer::POA interface.
*
* Implementation of the PortableServer::POA interface.
*/
class TAO_PortableServer_Export TAO_POA
: public virtual PortableServer::POA,
public virtual TAO_Local_RefCounted_Object
{
public:
friend class TAO_Object_Adapter;
friend class TAO_Object_Adapter::Servant_Upcall;
friend class TAO_Object_Adapter::Non_Servant_Upcall;
friend class TAO_POA_Current_Impl;
friend class TAO_POA_Manager;
friend class TAO_RT_Collocation_Resolver;
friend class TAO_ObjectReferenceTemplate;
typedef ACE_CString String;
/**
* This method is used to downcast safely an instance of
* PortableServer::POA to an instance of TAO_POA when RTTI is not
* enabled.
*/
virtual TAO_POA* _tao_poa_downcast (void);
PortableServer::POA_ptr create_POA (
const char *adapter_name,
PortableServer::POAManager_ptr poa_manager,
const CORBA::PolicyList &policies
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::AdapterAlreadyExists,
PortableServer::POA::InvalidPolicy));
PortableServer::POA_ptr find_POA (const char *adapter_name,
CORBA::Boolean activate_it
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::AdapterNonExistent));
void destroy (CORBA::Boolean etherealize_objects,
CORBA::Boolean wait_for_completion
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
#if (TAO_HAS_MINIMUM_POA == 0)
PortableServer::ThreadPolicy_ptr create_thread_policy (
PortableServer::ThreadPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
#endif /* TAO_HAS_MINIMUM_POA == 0 */
PortableServer::LifespanPolicy_ptr create_lifespan_policy (
PortableServer::LifespanPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::IdUniquenessPolicy_ptr create_id_uniqueness_policy (
PortableServer::IdUniquenessPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::IdAssignmentPolicy_ptr create_id_assignment_policy (
PortableServer::IdAssignmentPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
#if (TAO_HAS_MINIMUM_POA == 0)
PortableServer::ImplicitActivationPolicy_ptr
create_implicit_activation_policy (
PortableServer::ImplicitActivationPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::ServantRetentionPolicy_ptr
create_servant_retention_policy (
PortableServer::ServantRetentionPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::RequestProcessingPolicy_ptr
create_request_processing_policy (
PortableServer::RequestProcessingPolicyValue value
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
#endif /* TAO_HAS_MINIMUM_POA == 0 */
char * the_name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::POA_ptr the_parent (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::POAList *the_children (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::POAManager_ptr the_POAManager (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableInterceptor::AdapterManagerId get_manager_id (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
/// This method returns the adapter_name as a sequence of strings of
/// length one or more or just a fixed name depending on the Object
/// Adapter. Added wrt to ORT Spec.
PortableInterceptor::AdapterName *adapter_name (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Accessor methods to ObjectReferenceTemplate
PortableInterceptor::ObjectReferenceTemplate * get_adapter_template (void);
void set_adapter_template (PortableInterceptor::ObjectReferenceTemplate *
object_ref_template
ACE_ENV_ARG_DECL);
/// Accessor methods to PortableInterceptor::ObjectReferenceFactory
PortableInterceptor::ObjectReferenceFactory * get_obj_ref_factory (void);
void set_obj_ref_factory (
PortableInterceptor::ObjectReferenceFactory *current_factory
ACE_ENV_ARG_DECL);
/// Store the given TaggedComponent for eventual insertion into all
/// object reference profiles.
void save_ior_component (const IOP::TaggedComponent &component
ACE_ENV_ARG_DECL);
/// Store the given TaggedComponent for eventual insertion into all
/// object reference profiles with the given ProfileId.
void save_ior_component_and_profile_id (
const IOP::TaggedComponent &component,
IOP::ProfileId profile_id
ACE_ENV_ARG_DECL);
#if (TAO_HAS_MINIMUM_POA == 0)
PortableServer::AdapterActivator_ptr the_activator (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
void the_activator (PortableServer::AdapterActivator_ptr adapter_activator
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
PortableServer::ServantManager_ptr get_servant_manager (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::WrongPolicy));
void set_servant_manager (PortableServer::ServantManager_ptr imgr
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::WrongPolicy));
PortableServer::Servant get_servant (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::NoServant,
PortableServer::POA::WrongPolicy));
void set_servant (PortableServer::Servant servant
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::WrongPolicy));
#endif /* TAO_HAS_MINIMUM_POA == 0 */
PortableServer::ObjectId *activate_object (PortableServer::Servant p_servant
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::ServantAlreadyActive,
PortableServer::POA::WrongPolicy));
void activate_object_with_id (const PortableServer::ObjectId &id,
PortableServer::Servant p_servant
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::ServantAlreadyActive,
PortableServer::POA::ObjectAlreadyActive,
PortableServer::POA::WrongPolicy));
void deactivate_object (const PortableServer::ObjectId &oid
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::ObjectNotActive,
PortableServer::POA::WrongPolicy));
CORBA::Object_ptr create_reference (const char *intf
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableServer::POA::WrongPolicy));
CORBA::Object_ptr create_reference_with_id (
const PortableServer::ObjectId &oid,
const char *intf
ACE_ENV_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((CORBA::SystemException,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?