portableserver.pidl

来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· PIDL 代码 · 共 404 行

PIDL
404
字号
/**
 * @file PortableServer.pidl
 *
 * PortableServer.pidl,v 1.12 2003/10/28 18:29:31 bala Exp
 *   
 * @brief Pre-compiled IDL source for the PortableServer module.
 *
 * This file was used to generate the code in
 * PortableServerC.{h,i,cpp}, using the following command:
 *
 * tao_idl.exe \
 *     -o orig -Gp -Gd -Ge 1 -GT
 *          -Wb,export_macro=TAO_PortableServer_Export \
 *          -Wb,export_include="portableserver_export.h" \
 *          -Wb,pre_include="ace/pre.h" \
 *          -Wb,post_include="ace/post.h" \
 *          PortableServer.pidl
 *
 * After the file is generated a patch from the diffs directory must
 * be applied.  The patch:
 *
 *   - Disables parts of the code under certain configurations.
 *
 *   - Eliminates cycles in the include dependencies.
 *
 *   - Adds non-idl components of PortableServer to the namespace.
 *     This includes (a) Servant (b) ServantBase (c) RefCountServantBase
 *     (d) Cookie (e) ObjectId_to_string (f) string_to_ObjectId (g)
 *     ObjectId_to_wstring (h) wstring_to_ObjectId (i) ServantBase_var
 *     (j) DynamicImplementation (k) LocalServantBase
 *
 * Apply patches using the following command:
 *
 *   patch < diffs/PortableServer.diff
 *
 * Note: The diffs were generated using:
 *
 *   rm diffs/PortableServer.diff
 *   for i in PortableServerC.{h,i,cpp}; do
 *     diff -wub orig/$i $i >> diffs/PortableServer.diff
 *   done
 */

#ifndef _PORTABLESERVER_IDL_
#define _PORTABLESERVER_IDL_

#include <orb.idl>
#include <Current.pidl>
#include <OctetSeq.pidl>

#pragma prefix "omg.org"

module PortableServer 
{
# pragma version PortableServer 2.3

  local interface POA;	    // forward declaration
  typedef sequence<POA> POAList;
  native Servant;
  typedef CORBA::OctetSeq ObjectId;

  exception ForwardRequest 
  {
    Object forward_reference;
  };

  // @@ Frank - MIOP specific types

  exception NotAGroupObject {};
  typedef sequence <ObjectId> IDs;

  // @@ Frank - End MIOP

  // Policy interfaces.

  const CORBA::PolicyType THREAD_POLICY_ID                = 16;
  const CORBA::PolicyType LIFESPAN_POLICY_ID              = 17;
  const CORBA::PolicyType ID_UNIQUENESS_POLICY_ID         = 18;
  const CORBA::PolicyType ID_ASSIGNMENT_POLICY_ID         = 19;
  const CORBA::PolicyType IMPLICIT_ACTIVATION_POLICY_ID   = 20;
  const CORBA::PolicyType SERVANT_RETENTION_POLICY_ID     = 21;
  const CORBA::PolicyType REQUEST_PROCESSING_POLICY_ID    = 22;

  enum ThreadPolicyValue 
  {
    ORB_CTRL_MODEL,
    SINGLE_THREAD_MODEL
  };

  local interface ThreadPolicy : CORBA::Policy 
  {
    readonly attribute ThreadPolicyValue value;
  };

  enum LifespanPolicyValue 
  {
    TRANSIENT,
    PERSISTENT
  };

  local interface LifespanPolicy : CORBA::Policy 
  {
    readonly attribute LifespanPolicyValue value;
  };

  enum IdUniquenessPolicyValue 
  {
    UNIQUE_ID,
    MULTIPLE_ID
  };

  local interface IdUniquenessPolicy : CORBA::Policy 
  {
    readonly attribute IdUniquenessPolicyValue value;
  };

  enum IdAssignmentPolicyValue 
  {
    USER_ID,
    SYSTEM_ID
  };

  local interface IdAssignmentPolicy : CORBA::Policy 
  {
    readonly attribute IdAssignmentPolicyValue value;
  };

  enum ImplicitActivationPolicyValue 
  {
    IMPLICIT_ACTIVATION,
    NO_IMPLICIT_ACTIVATION
  };

  local interface ImplicitActivationPolicy : CORBA::Policy 
  {
    readonly attribute ImplicitActivationPolicyValue value;
  };

  enum ServantRetentionPolicyValue 
  {
    RETAIN,
    NON_RETAIN
  };

  local interface ServantRetentionPolicy : CORBA::Policy 
  {
    readonly attribute ServantRetentionPolicyValue value;
  };

  enum RequestProcessingPolicyValue 
  {
    USE_ACTIVE_OBJECT_MAP_ONLY,
    USE_DEFAULT_SERVANT,
    USE_SERVANT_MANAGER
  };

  local interface RequestProcessingPolicy : CORBA::Policy 
  {
    readonly attribute RequestProcessingPolicyValue value;
  };

  // POAManager interface
  local interface POAManager 
  {
    exception AdapterInactive {};

    enum State 
    {
      HOLDING, 
      ACTIVE, 
      DISCARDING, 
      INACTIVE
    };

    void activate ()             
      raises(AdapterInactive);

    void hold_requests (in boolean wait_for_completion)
      raises(AdapterInactive);

    void discard_requests (in boolean wait_for_completion)
      raises(AdapterInactive);

    void deactivate (in boolean etherealize_objects,
                     in boolean wait_for_completion)
      raises(AdapterInactive);

    State get_state ();
  };

  // AdapterActivator interface.
  local interface AdapterActivator 
  {
#   pragma version AdapterActivator 2.3

    boolean unknown_adapter (in POA parent,
                             in string name);
  };

  // ServantManager interface.
  local interface ServantManager {};

  local interface ServantActivator : ServantManager 
  {
#   pragma version ServantActivator 2.3

    Servant incarnate (in ObjectId oid,
                       in POA adapter)
      raises (ForwardRequest);

    void etherealize (in ObjectId oid,
                      in POA adapter,
                      in Servant serv,
                      in boolean cleanup_in_progress,
                      in boolean remaining_activations);
  };

  local interface ServantLocator : ServantManager 
  {
#   pragma version ServantLocator 2.3

    native Cookie;

    Servant preinvoke (in ObjectId oid,
                       in POA adapter,
                       in CORBA::Identifier operation,
                       out Cookie the_cookie)
      raises (ForwardRequest);

    void postinvoke (in ObjectId oid,
                     in POA adapter,
                     in CORBA::Identifier operation,
                     in Cookie  the_cookie,
                     in Servant the_servant);
  };

  local interface POA 
  {
#   pragma version POA 2.3

    exception AdapterAlreadyExists {};
    exception AdapterNonExistent {};
    exception InvalidPolicy {unsigned short index;};
    exception NoServant {};
    exception ObjectAlreadyActive {};
    exception ObjectNotActive {};
    exception ServantAlreadyActive {};
    exception ServantNotActive {};
    exception WrongAdapter {};
    exception WrongPolicy {};

    // POA creation and destruction.

    POA create_POA (in string adapter_name,
                    in POAManager a_POAManager,
                    in CORBA::PolicyList policies)
      raises (AdapterAlreadyExists, 
	      InvalidPolicy);

    POA find_POA (in string adapter_name,
                  in boolean activate_it)
      raises (AdapterNonExistent);

    void destroy (in boolean etherealize_objects,
                  in boolean wait_for_completion);

    // Factories for Policy objects.

    ThreadPolicy create_thread_policy (in ThreadPolicyValue value);

    LifespanPolicy create_lifespan_policy (
	in LifespanPolicyValue value
      );

    IdUniquenessPolicy  create_id_uniqueness_policy (
        in IdUniquenessPolicyValue value
      );

    IdAssignmentPolicy  create_id_assignment_policy (
        in IdAssignmentPolicyValue value
      );

    ImplicitActivationPolicy create_implicit_activation_policy (
        in ImplicitActivationPolicyValue value\
      );

    ServantRetentionPolicy create_servant_retention_policy (
        in ServantRetentionPolicyValue value
      );

    RequestProcessingPolicy create_request_processing_policy (
	in RequestProcessingPolicyValue value
      );

    // POA attributes
    readonly attribute string       the_name;
    readonly attribute POA          the_parent;
    readonly attribute POAList      the_children;
    readonly attribute POAManager   the_POAManager;
    attribute AdapterActivator      the_activator;

    // Servant Manager registration:

    ServantManager get_servant_manager ()
      raises (WrongPolicy);

    void set_servant_manager (in ServantManager imgr)
      raises (WrongPolicy);

    // Operations for the USE_DEFAULT_SERVANT policy.

    Servant get_servant () 
      raises (NoServant, 
	      WrongPolicy);

    void set_servant (in Servant p_servant)
      raises (WrongPolicy);

    // Object activation and deactivation.

    ObjectId  activate_object (in Servant p_servant)
      raises (ServantAlreadyActive, 
	      WrongPolicy);

    void activate_object_with_id (in ObjectId id,
                                  in Servant p_servant)
      raises (ServantAlreadyActive,
	      ObjectAlreadyActive,
	      WrongPolicy);

    void deactivate_object (in ObjectId oid)
      raises (ObjectNotActive, WrongPolicy);

    // Reference creation operations.

    Object create_reference (in CORBA::RepositoryId intf)
      raises (WrongPolicy);

    Object create_reference_with_id (in ObjectId oid,
				     in CORBA::RepositoryId intf)
      raises (WrongPolicy);

    // Identity mapping operations:.
    ObjectId servant_to_id (in Servant p_servant)
      raises (ServantNotActive, 
	      WrongPolicy);

    Object servant_to_reference (in Servant p_servant)
      raises (ServantNotActive, WrongPolicy);

    Servant reference_to_servant (in Object reference)
      raises (ObjectNotActive, 
	      WrongAdapter, 
	      WrongPolicy);

    ObjectId reference_to_id (in Object reference)
      raises (WrongAdapter, 
	      WrongPolicy);

    Servant id_to_servant (in ObjectId oid)
      raises (ObjectNotActive, WrongPolicy);

    Object id_to_reference (in ObjectId oid)
      raises (ObjectNotActive, 
	      WrongPolicy);

    readonly attribute CORBA::OctetSeq id;

    // @@ Frank - MIOP specific methods

    ObjectId create_id_for_reference(in Object the_ref)
      raises (NotAGroupObject);

    IDs reference_to_ids(in Object the_ref)
      raises (NotAGroupObject);

    void associate_reference_with_id (in Object ref,
                                      in ObjectId oid)
      raises (NotAGroupObject);

    void disassociate_reference_with_id (in Object ref,
                                         in ObjectId oid)
      raises (NotAGroupObject);

    // @@ Frank - End MIOP
  };

  // Current interface.
  local interface Current : CORBA::Current 
  {
#   pragma version Current 2.3

    exception NoContext {};

    POA get_POA ()       
      raises (NoContext);

    ObjectId get_object_id () 
      raises (NoContext);
  };
};

#endif // _PORTABLESERVER_IDL_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?