orber_ifr

The Interface Repository stores representations of IDL information

This module contains functions for managing the Interface
Repository (IFR). This documentation should be used in conjunction
with the documentation in chapter 6 of CORBA2.3.
Whenever the term IFR object is used in this manual page, it
refers to a pseudo object used only for interaction with the IFR
rather than a CORBA object.

Initialization of the IFR

The following functions are used to initialize the Interface
Repository and to obtain the initial reference to the
repository.

Functions

init(Nodes,Timeout) -> ok

Nodes = list()

Timeout = integer() | infinity

This function should be called to initialize the IFR. It
creates the necessary mnesia-tables. A mnesia schema should
exist, and mnesia must be running.

find_repository() -> #IFR_Repository_objref

Find the IFR object reference for the Repository. This
reference should be used when adding objects to the IFR, and
when extracting information from the IFR.
The first time this function is called, it will create the
repository and all the primitive definitions.

General methods

The following functions are the methods of the IFR. The first
argument is always an #IFR_objref, i.e. the IFR (pseudo)object
on which to apply this method. These functions are useful when
the type of IFR object is not know, but they are somewhat slower
than the specific functions listed below which only accept a
particular type of IFR object as the first argument.

Objref is an IFR object of any kind. Returns the definition
kind of the IFR object.

destroy(Objref) -> Return

Objref = #IFR_object

Return = tuple()

Objref is an IFR object of any kind except IRObject,
Contained and Container. Destroys that object and its
contents (if any). Returns whatever mnesia:transaction
returns.

get_id(Objref) -> Return

Objref = #IFR_object

Return = string()

Objref is an IFR object of any kind that inherits from
Contained. Returns the repository id of that object.

set_id(Objref,Id) -> ok

Objref = #IFR_object

Id = string()

Objref is an IFR object of any kind that inherits from
Contained. Sets the repository id of that object.

get_name(Objref) -> Return

Objref = #IFR_object

Return = string()

Objref is an IFR object of any kind that inherits from
Contained. Returns the name of that object.

set_name(Objref,Name) -> ok

Objref = #IFR_object

Name = string()

Objref is an IFR object of any kind that inherits from
Contained. Sets the name of that object.

get_version(Objref) -> Return

Objref = #IFR_object

Return = string()

Objref is an IFR object of any kind that inherits from
Contained. Returns the version of that object.

set_version(Objref,Version) -> ok

Objref = #IFR_object

Version = string()

Objref is an IFR object of any kind that inherits from
Contained. Sets the version of that object.

get_defined_in(Objref) -> Return

Objref = #IFR_object

Return = #IFR_Container_objref

Objref is an IFR object of any kind that inherits from
Contained. Returns the Container object that the object is
defined in.

get_absolute_name(Objref) -> Return

Objref = #IFR_object

Return = string()

Objref is an IFR object of any kind that inherits from
Contained. Returns the absolute (scoped) name of that
object.

get_containing_repository(Objref) -> Return

Objref = #IFR_object

Return = #IFR_Repository_objref

Objref is an IFR object of any kind that inherits from
Contained. Returns the Repository that is eventually reached
by recursively following the object's defined_in attribute.

describe(Objref) -> Return

Objref = #IFR_object

Return = tuple() (a contained_description record) | {exception, _}

Objref is an IFR object of any kind that inherits from
Contained. Returns a tuple describing the object.

move(Objref,New_container,New_name,New_version) -> Return

Objref = #IFR_objref

New_container = #IFR_Container_objref

New_name = string()

New_version = string()

Return = ok | {exception, _}

Objref is an IFR object of any kind that inherits from
Contained. New_container is an IFR object of any kind that
inherits from Container. Removes Objref from its current
Container, and adds it to New_container. The name attribute
is changed to New_name and the version attribute is changed
to New_version.

lookup(Objref,Search_name) -> Return

Objref = #IFR_objref

Search_name = string()

Return = #IFR_object

Objref is an IFR object of any kind that inherits from
Container. Returns an IFR object identified by search_name
(a scoped name).

get_type_def(Objref) -> Return

Objref is an IFR object of the kind ConstantDef or
AttributeDef. Returns an IFR object of the type IDLType
describing the type of the IFR object.

set_type_def(Objref,TypeDef) -> Return

Objref = #IFR_objref

TypeDef = #IFR_IDLType_objref

Return = ok | {exception, _}

Objref is an IFR object of the kind ConstantDef or
AttributeDef. Sets the type_def of the IFR Object.

get_value(Objref) -> Return

Objref = #IFR_ConstantDef_objref

Return = any()

Returns the value attribute of an IFR Object of the type ConstantDef.

set_value(Objref,Value) -> Return

Objref = #IFR_ConstantDef_objref

Value = any()

Return = ok | {exception, _}

Sets the value attribute of an IFR Object of the type ConstantDef.

get_members(Objref) -> Return

Objref = #IFR_objref

Return = list()

Objref is an IFR object the kind StructDef, UnionDef,
EnumDef or ExceptionDef.
For StructDef, UnionDef and ExceptionDef: Returns a list of
structmember records that are the constituent parts of the
object.
For EnumDef: Returns a list of strings describing the
enumerations.

set_members(Objref,Members) -> Return

Objref = #IFR_objref

Members = list()

Return = ok | {exception, _}

Objref is an IFR object the kind StructDef, UnionDef,
EnumDef or ExceptionDef.
For StructDef, UnionDef and ExceptionDef: Members is a list
of structmember records.
For EnumDef: Members is a list of strings describing the
enumerations.
Sets the members attribute, which are the constituent parts of the
exception.

get_discriminator_type(Objref) -> Return

Objref = #IFR_UnionDef_objref

Return = tuple() (a typecode tuple)

Returns the discriminator typecode of an IFR object of the type
UnionDef.

get_discriminator_type_def(Objref) -> Return

Objref = #IFR_UnionDef_objref

Return = #IFR_IDLType_objref

Returns an IFR object of the type IDLType describing the
discriminator type of an IFR object of the type UnionDef.

set_discriminator_type_def(Objref,TypeDef) -> Return

Objref = #IFR_UnionDef_objref

Return = #IFR_IDLType_objref

Sets the attribute discriminator_type_def, an IFR object of
the type IDLType describing the discriminator type of an IFR
object of the type UnionDef.

get_original_type_def(Objref) -> Return

Objref = #IFR_AliasDef_objref

Return = #IFR_IDLType_objref

Returns an IFR object of the type IDLType describing the
original type.

set_original_type_def(Objref,TypeDef) -> Return

Objref = #IFR_AliasDef_objref

Typedef = #IFR_IDLType_objref

Return = ok | {exception, _}

Sets the original_type_def attribute which describes the
original type.

get_kind(Objref) -> Return

Objref = #IFR_PrimitiveDef_objref

Return = atom()

Returns an atom describing the primitive type (See CORBA 2.0
p 6-21).

get_bound(Objref) -> Return

Objref = #IFR_objref

Return = integer (unsigned long)

Objref is an IFR object the kind StringDef or SequenceDef.
For StringDef: returns the maximum number of characters in
the string.
For SequenceDef: Returns the maximum number of elements in
the sequence. Zero indicates an unbounded sequence.

set_bound(Objref,Bound) -> Return

Objref = #IFR_objref

Bound = integer (unsigned long)

Return = ok | {exception, _}

Objref is an IFR object the kind StringDef or SequenceDef.
For StringDef: Sets the maximum number of characters in the
string. Bound must not be zero.
For SequenceDef: Sets the maximum number of elements in the
sequence. Zero indicates an unbounded sequence.

get_element_type(Objref) -> Return

Objref = #IFR_objref

Return = tuple() (a typecode tuple)

Objref is an IFR object the kind SequenceDef or ArrayDef.
Returns the typecode of the elements in the IFR object.

get_element_type_def(Objref) -> Return

Objref = #IFR_objref

Return = #IFR_IDLType_objref

Objref is an IFR object the kind SequenceDef or ArrayDef.
Returns an IFR object of the type IDLType describing the
type of the elements in Objref.

set_element_type_def(Objref,TypeDef) -> Return

Objref = #IFR_objref

TypeDef = #IFR_IDLType_objref

Return = ok | {exception, _}

Objref is an IFR object the kind SequenceDef or ArrayDef.
Sets the element_type_def attribute, an IFR object of the
type IDLType describing the type of the elements in Objref.

get_length(Objref) -> Return

Objref = #IFR_ArrayDef_objref

Return = integer() (unsigned long)

Returns the number of elements in the array.

set_length(Objref,Length) -> Return

Objref = #IFR_ArrayDef_objref

Length = integer() (unsigned long)

Sets the number of elements in the array.

get_mode(Objref) -> Return

Objref = #IFR_objref

Return = atom()

Objref is an IFR object the kind AttributeDef or OperationDef.
For AttributeDef: Return is an atom ('ATTR_NORMAL' or
'ATTR_READONLY') specifying the read/write access for this
attribute.
For OperationDef: Return is an atom ('OP_NORMAL' or
'OP_ONEWAY') specifying the mode of the operation.

set_mode(Objref,Mode) -> Return

Objref = #IFR_objref

Mode = atom()

Return = ok | {exception, _}

Objref is an IFR object the kind AttributeDef or OperationDef.
For AttributeDef: Sets the read/write access for this
attribute. Mode is an atom ('ATTR_NORMAL' or
'ATTR_READONLY').
For OperationDef: Sets the mode of the operation. Mode is an
atom ('OP_NORMAL' or 'OP_ONEWAY').

get_result(Objref) -> Return

Objref = #IFR_OperationDef_objref

Return = tuple() (a typecode tuple)

Returns a typecode describing the type of the value returned by the
operation.

get_result_def(Objref) -> Return

Objref = #IFR_OperationDef_objref

Return = #IFR_IDLType_objref

Returns an IFR object of the type IDLType describing the type of the
result.

set_result_def(Objref,ResultDef) -> Return

Objref = #IFR_OperationDef_objref

ResultDef = #IFR_IDLType_objref

Return = ok | {exception, _}

Sets the type_def attribute, an IFR Object of the type IDLType
describing the result.

get_params(Objref) -> Return

Objref = #IFR_OperationDef_objref

Return = list() (list of parameter description records)

Returns a list of parameter description records, which describes the
parameters of the OperationDef.

set_params(Objref,Params) -> Return

Objref = #IFR_OperationDef_objref

Params = list() (list of parameter description records)

Return = ok | {exception, _}

Sets the params attribute, a list of parameter description records.

get_contexts(Objref) -> Return

Objref = #IFR_OperationDef_objref

Return = list() (list of strings)

Returns a list of context identifiers for the operation.

set_contexts(Objref,Contexts) -> Return

Objref = #IFR_OperationDef_objref

Contexts = list() (list of strings)

Return = ok | {exception, _}

Sets the context attribute for the operation.

get_exceptions(Objref) -> Return

Objref = #IFR_OperationDef_objref

Return = list() (list of #IFR_ExceptionDef_objrefs)

Returns a list of exception types that can be raised by this
operation.

set_exceptions(Objref,Exceptions) -> Return

Objref = #IFR_OperationDef_objref

Exceptions = list() (list of #IFR_ExceptionDef_objrefs)

Return = ok | {exception, _}

Sets the exceptions attribute for this operation.

get_base_interfaces(Objref) -> Return

Objref = #IFR_InterfaceDef_objref

Return = list() (list of #IFR_InterfaceDef_objrefs)

Returns a list of InterfaceDefs from which this InterfaceDef inherits.

set_base_interfaces(Objref,BaseInterfaces) -> Return

Objref = #IFR_InterfaceDef_objref

BaseInterfaces = list() (list of #IFR_InterfaceDef_objrefs)

Return = ok | {exception, _}

Sets the BaseInterfaces attribute.

is_a(Objref,Interface_id) -> Return

Objref = #IFR_InterfaceDef_objref

Interface_id = #IFR_InterfaceDef_objref

Return = atom() (true or false)

Returns true if the InterfaceDef either is identical to or
inherits from Interface_id.

describe_interface(Objref) -> Return

Objref = #IFR_InterfaceDef_objref

Return = tuple() (a fullinterfacedescription record)

Returns a full inter face description record describing the InterfaceDef.

create_attribute(Objref,Id,Name,Version,Type,Mode) -> Return

Objref = #IFR_InterfaceDef_objref

Id = string()

Name = string()

Version = string()

Type = #IFR_IDLType_objref

Mode = atom() ('ATTR_NORMAL' or 'ATTR_READONLY')

Return = #IFR_AttributeDef_objref

Creates an IFR object of the type AttributeDef contained in this
InterfaceDef.