Previous | Table of Contents | Next |
There are some operations that can be done on any object. These are not operations in the normal sense, in that they are implemented
directly by the ORB, not passed on to the object implementation. We will describe these as being operations on the object
reference, although the interfaces actually depend on the language binding. As above, where we used interface Object to represent
the object reference, we define an interface for Object:
module CORBA {
interface DomainManager; // forward declarationtypedef sequence <DomainManager> DomainManagersList;
interface Policy; // forward declarationtypedef sequence <Policy> PolicyList;typedef sequence<PolicyType> PolicyTypeSeq;exception InvalidPolicies { sequence <unsigned short> indices; };
interface Context; // forward declaration
typedef string Identifier;interface Request; // forward declarationinterface NVList; // forward declarationstruct NamedValue{}; // an implicitly well known typetypedef unsigned long Flags;interface InterfaceDef;
enum SetOverrideType {SET_OVERRIDE, ADD_OVERRIDE};
interface ORB; // PIDL forward declaration
interface Object { // PIDL
InterfaceDef get_interface ();
boolean is_nil();
Object duplicate ();
void release ();
boolean is_a (in RepositoryId logical_type_id);
boolean non_existent();
boolean is_equivalent (in Object other_object);
unsigned long hash(in unsigned long maximum);
void create_request (in Context ctxin Identifier operation,in NVList arg_list,
); | inout NamedValue out Request in Flags | result, req, req_flag | |||
Po); | licy get_policy ( in PolicyType | policy_type |
DomainManagersList get_domain_managers ();
Object set_policy_overrides( in PolicyList policies, in SetOverrideType set_add
) raises (InvalidPolicies);
Policy get_client_policy( in PolicyType type );
PolicyList get_policy_overrides( in PolicyTypeSeq types );
boolean validate_connection( out PolicyList inconsistent_policies );
Object get_component ();
string respository_id(); ORB get_orb(); }; };
The create_request operation is part of the Object interface because it creates a pseudo-object (a Request) for an object.
It is described with the other Request
operations in the section Section 7.2, “Request Operations? on page 7-4.
Unless otherwise stated below, the operations in the IDL above do not require access to remote information.