diff options
Diffstat (limited to 'TAO/tao/PortableServer.pidl')
-rw-r--r-- | TAO/tao/PortableServer.pidl | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/TAO/tao/PortableServer.pidl b/TAO/tao/PortableServer.pidl new file mode 100644 index 00000000000..0075c2c9c56 --- /dev/null +++ b/TAO/tao/PortableServer.pidl @@ -0,0 +1,278 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// PortableServer.pidl +// +// = DESCRIPTION +// +// This file was used to generate the code in PortableServerC.{h,i,cpp} +// +// The command used to generate code from this file is: +// +// tao_idl.exe \ +// -Ge 1 \ +// -Wb,export_macro=TAO_Export \ +// -Wb,export_include="tao/corbafwd.h" \ +// -Wb,pre_include="ace/pre.h" \ +// -Wb,post_include="ace/post.h" \ +// PortableServer.pidl +// +// After the file is generated a patch must be applied. The patch: +// +// - Disables parts of the code under certain configurations. +// - Eliminates cycles in the include dependencies. +// - Removes the extra environment option for (a) incarnate (b) +// etherealize (c) preinvoke and (d) postinvoke +// - 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 +// +// +// ================================================================ + +#ifndef _PORTABLESERVER_IDL_ +#define _PORTABLESERVER_IDL_ + +#pragma prefix "omg.org" + +#include <orb.idl> + +module PortableServer { +# pragma version PortableServer 2.3 + + local interface POA; // forward declaration + typedef sequence<POA> POAList; + native Servant; + typedef sequence<octet> ObjectId; + exception ForwardRequest { + Object forward_reference; + }; + + // 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, 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); + }; + + // 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_ |