An object used in
Request
operations
to specify the context object in which context strings
must be resolved before being sent along with the request invocation.
A
Context
object
contains a list of properties in the form of
NamedValue
objects. These properties represent information
about the client, the environment, or the circumstances of a request
and generally are properties that might be inconvenient
to pass as parameters.
A Context
object is created by first calling the
ORB
method get_default_context
and then calling the method create_child
on the
default context.
Each property in a Context
object is represented by
a NamedValue
object. The property name is contained
in the NamedValue
object's name
field, and
the value associated with the name is contained in the Any
object that was assigned to the NamedValue
object's
value
field.
Context
properties can represent a portion of a client's
or application's environment that is meant to be propagated to
(and made implicitly part of) a server's environment.
(Examples might be a window identifier or user preference information).
Once a server has been invoked (that is, after the properties are
propagated), the server may query its Context
object
for these properties using the method get_values
.
When an operation declaration includes a context clause,
the stubs and skeletons will have an additional argument
added for the context. When an operation invocation occurs,
the ORB causes the properties that were named in the operation
definition in IDL and
that are present in the client's Context
object
to be provided in the Context
object parameter to
the invoked method.
Context
property names (which are strings)
typically have the form of an OMG IDL identifier or
a series of OMG IDL identifiers separated by periods.
A context property name pattern is either a property name
or a property name followed by a single "*". A property
name pattern without a trailing "*" is said to match only
itself. A property name pattern of the form "<name>*" matches any
property name that starts with <name> and continues with zero
or more additional characters.
Property name patterns are used in the context clause of
an operation definition and as a parameter for the
method Context.get_values
.
Context
objects may be "chained" together to achieve a
particular defaulting behavior. A Context
object created with the method create_child
will
be chained to its parent (the Context
object
that created it), and that means that the parent will be searched
after the child in a search for property names.
Properties defined in a particular Context
object
effectively override those properties in the next higher level.
The scope used in a search for properties may be restricted by specifying a
starting scope and by using the flag CTX_RESTRICT_SCOPE
when invoking the method get_values
.
A Context
object may be named for purposes of specifying
a starting search scope.