|
JavaTM 2 Platform Standard Edition | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.omg.CORBA.ORB
A class providing APIs for the CORBA Object Request Broker features. The
ORB
class also provides "pluggable ORB implementation" APIs that
allow another vendor's ORB implementation to be used.
An ORB makes it possible for CORBA objects to communicate with each other by connecting objects making requests (clients) with objects servicing requests (servers).
The ORB
class, which encapsulates generic CORBA functionality,
does the following: (Note that items 5 and 6, which include most of the methods
in the class ORB
, are typically used with the Dynamic
Invocation Interface
(DII) and the Dynamic Skeleton
Interface
(DSI). These interfaces may be used by a developer directly,
but most commonly they are used by the ORB internally and are not seen by the
general programmer.)
resolve_initial_references
TypeCode
Any
NamedValue
Context
Environment
NVList
) containing these objects The ORB
class can be used to obtain references to objects
implemented anywhere on the network.
An application or applet gains access to the CORBA environment by
initializing itself into an ORB
using one of three
init
methods. Two of the three methods use the properties
(associations of a name with a value) shown in the table below.
Property Name | Property Value |
---|---|
org.omg.CORBA.ORBClass | class name of an ORB implementation |
org.omg.CORBA.ORBSingletonClass | class name of the ORB returned by
init() |
These properties allow a different vendor's ORB
implementation
to be "plugged in."
When an ORB instance is being created, the class name of the ORB implementation is located using the following standard search order:
Note that Java IDL provides a default implementation for the
fully-functional ORB and for the Singleton ORB. When the method
init
is given no parameters, the default Singleton ORB is returned.
When the method init
is given parameters but no ORB class is
specified, the Java IDL ORB implementation is returned.
The following code fragment creates an ORB
object initialized
with the default ORB Singleton. This ORB has a restricted implementation to
prevent malicious applets from doing anything beyond creating typecodes. It is
called a singleton because there is only one instance for an entire virtual
machine.
ORB orb = ORB.init();
The following code fragment creates an ORB
object for an
application. The parameter args
represents the arguments supplied
to the application's main
method. Since the property specifies the
ORB class to be "SomeORBImplementation", the new ORB will be initialized with
that ORB implementation. If p had been null, and the arguments had not specified
an ORB class, the new ORB would have been initialized with the default
Java IDL implementation.
Properties p = new Properties(); p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation"); ORB orb = ORB.init(args, p);
The following code fragment creates an ORB
object for the applet
supplied as the first parameter. If the given applet does not specify an ORB
class, the new ORB will be initialized with the default Java IDL
implementation.
ORB orb = ORB.init(myApplet, null);
An application or applet can be initialized in one or more ORBs. ORB initialization is a bootstrap call into the CORBA world.
Constructor Summary | |
ORB()
|
Method Summary | |
void |
connect(Object obj)
Connects the given servant object (a Java object that is an instance of the server implementation class) to the ORB. |
TypeCode |
create_abstract_interface_tc(String id,
String name)
Create a TypeCode object for an IDL abstract interface. |
abstract
TypeCode |
create_alias_tc(String id,
String name,
TypeCode original_type)
Creates a TypeCode object representing an IDL alias
(typedef ). |
abstract
Any |
create_any()
Creates an IDL Any object initialized to contain a Typecode
object whose kind field is set to
TCKind.tc_null . |
abstract
TypeCode |
create_array_tc(int length,
TypeCode element_type)
Creates a TypeCode object representing an IDL array . |
DynAny |
create_basic_dyn_any(TypeCode type)
|
abstract
ContextList |
create_context_list()
Creates an empty ContextList object. |
DynAny |
create_dyn_any(Any value)
|
DynArray |
create_dyn_array(TypeCode type)
|
DynEnum |
create_dyn_enum(TypeCode type)
|
DynSequence |
create_dyn_sequence(TypeCode type)
|
DynStruct |
create_dyn_struct(TypeCode type)
|
DynUnion |
create_dyn_union(TypeCode type)
|
abstract
TypeCode |
create_enum_tc(String id,
String name,
String[] members)
Creates a TypeCode object representing an IDL enum . |
abstract
Environment |
create_environment()
Creates an Environment object. |
abstract
ExceptionList |
create_exception_list()
Creates an empty ExceptionList object. |
abstract
TypeCode |
create_exception_tc(String id,
String name,
StructMember[] members)
Creates a TypeCode object representing an IDL
exception . |
TypeCode |
create_fixed_tc(short digits,
short scale)
Create a TypeCode object for an IDL fixed type. |
abstract
TypeCode |
create_interface_tc(String id,
String name)
Creates a TypeCode object representing an IDL
interface . |
abstract
NVList |
create_list(int count)
Allocates an NVList with (probably) enough space for the specified
number of NamedValue objects. |
abstract
NamedValue |
create_named_value(String s,
Any any,
int flags)
Creates a NamedValue object using the given name, value, and argument
mode flags. |
TypeCode |
create_native_tc(String id,
String name)
Create a TypeCode object for an IDL native type. |
NVList |
create_operation_list(Object oper)
Creates an NVList initialized with argument descriptions for the
operation described in the given OperationDef object. |
abstract
OutputStream |
create_output_stream()
Creates a new org.omg.CORBA.portable.OutputStream into which IDL method
parameters can be marshalled during method invocation. |
Policy |
create_policy(int type,
Any val)
|
abstract
TypeCode |
create_recursive_sequence_tc(int bound,
int offset)
Deprecated. |
TypeCode |
create_recursive_tc(String id)
Create a recursive TypeCode object which serves as a placeholder for a
concrete TypeCode during the process of creating TypeCodes which contain
recursion. |
abstract
TypeCode |
create_sequence_tc(int bound,
TypeCode element_type)
Creates a TypeCode object representing an IDL
sequence . |
abstract
TypeCode |
create_string_tc(int bound)
Creates a TypeCode object representing a bounded IDL
string . |
abstract
TypeCode |
create_struct_tc(String id,
String name,
StructMember[] members)
Creates a TypeCode object representing an IDL
struct . |
abstract
TypeCode |
create_union_tc(String id,
String name,
TypeCode discriminator_type,
UnionMember[] members)
Creates a TypeCode object representing an IDL union . |
TypeCode |
create_value_box_tc(String id,
String name,
TypeCode boxed_type)
Create a TypeCode object for an IDL value type. |
TypeCode |
create_value_tc(String id,
String name,
short type_modifier, TypeCode concrete_base,
ValueMember[] members)
Create a TypeCode object for an IDL value type. |
abstract
TypeCode |
create_wstring_tc(int bound)
Creates a TypeCode object representing a bounded IDL
wstring (wide string). |
void |
disconnect(Object obj)
Disconnects the given servant object from the ORB. |
Current |
get_current()
Deprecated. use resolve_initial_references. |
abstract
Context |
get_default_context()
Gets the default Context object. |
abstract
Request |
get_next_response()
Gets the next Request instance for which a response has been
received. |
abstract
TypeCode |
get_primitive_tc(TCKind tcKind)
Retrieves the TypeCode object that represents the given primitive IDL
type. |
boolean |
get_service_information(short service_type,
ServiceInformationHolder service_info)
|
static ORB |
init()
Returns the ORB singleton object. |
static ORB |
init(Applet app,
Properties props)
Creates a new ORB instance for an applet. |
static ORB |
init(String[] args,
Properties props)
Creates a new ORB instance for a standalone application. |
abstract
String[] |
list_initial_services()
Returns a list of the initially available CORBA object references, such as "NameService" and "InterfaceRepository". |
abstract
String |
object_to_string(Object obj)
Converts the given CORBA object reference to a string. |
void |
perform_work()
Performs an implementation-dependent unit of work if called by the main thread. |
abstract
boolean |
poll_next_response()
Finds out if any of the deferred (asynchronous) invocations have a response yet. |
abstract
Object |
resolve_initial_references(String object_name)
Resolves a specific object reference from the set of available initial service names. |
void |
run()
This operation returns when the ORB has shutdown. |
abstract
void |
send_multiple_requests_deferred(Request[] req)
Sends multiple dynamic (DII) requests asynchronously. |
abstract
void |
send_multiple_requests_oneway(Request[] req)
Sends multiple dynamic (DII) requests asynchronously without expecting any responses. |
protected
abstract void |
set_parameters(Applet app,
Properties props)
Allows the ORB implementation to be initialized with the given applet and parameters. |
protected
abstract void |
set_parameters(String[] args,
Properties props)
Allows the ORB implementation to be initialized with the given parameters and properties. |
void |
shutdown(boolean wait_for_completion)
Instructs the ORB to shut down, which causes all object adapters to shut down. |
abstract
Object |
string_to_object(String str)
Converts a string produced by the method object_to_string back to a
CORBA object reference. |
boolean |
work_pending()
Returns true if the ORB needs the main thread to perform some work,
and false if the ORB does not need the main
thread. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public ORB()
Method Detail |
public static ORB init()
ORB
singleton object. This method always returns
the same ORB instance, which is an instance of the class described by the
org.omg.CORBA.ORBSingletonClass
system property.
This no-argument version of the method init
is used primarily
as a factory for TypeCode
objects, which are used by
Helper
classes to implement the method type
. It is
also used to create Any
objects that are used to describe
union
labels (as part of creating a TypeCode
object
for a union
).
This method is not intended to be used by applets, and in the event that it
is called in an applet environment, the ORB it returns is restricted so that
it can be used only as a factory for TypeCode
objects. Any
TypeCode
objects it produces can be safely shared among untrusted
applets.
If an ORB is created using this method from an applet, a system exception
will be thrown if methods other than those for creating TypeCode
objects are invoked.
public static ORB init(String[] args, Properties props)
ORB
instance for a standalone application. This
method may be called from applications only and returns a new fully functional
ORB
object each time it is called.
args
- command-line arguments for the application's
main
method; may be null
props
- application-specific properties; may be
null
public static ORB init(Applet app, Properties props)
ORB
instance for an applet. This method may be
called from applets only and returns a new fully-functional ORB
object each time it is called.
app
- the applet; may be null
props
- applet-specific properties; may be
null
protected abstract void set_parameters(String[] args, Properties props)
init
method to pass in its parameters.
args
- command-line arguments for the application's
main
method; may be null
props
- application-specific properties; may be
null
protected abstract void set_parameters(Applet app, Properties props)
init
method to pass
in its parameters.
app
- the applet; may be null
props
- applet-specific properties; may be
null
public void connect(Object obj)
ImplBase
class corresponding to the interface that is supported
by the server. The servant must thus be a CORBA object reference, and inherit
from org.omg.CORBA.Object
. Servants created by the user can start
receiving remote invocations after the method connect
has been
called. A servant may also be automatically and implicitly connected to the
ORB if it is passed as an IDL parameter in an IDL method invocation on a
non-local object, that is, if the servant object has to be marshalled and sent
outside of the process address space.
Calling the method connect
has no effect when the servant
object is already connected to the ORB.
Deprecated by the OMG in favor of the Portable Object Adapter APIs.
obj
- the servant object referencepublic void disconnect(Object obj)
org.omg.CORBA.OBJECT_NOT_EXIST
back to the remote client. Thus
the object appears to be destroyed from the point of view of remote clients.
Note, however, that local requests issued using the servant directly do not
pass through the ORB; hence, they will continue to be processed by the
servant.
Calling the method disconnect
has no effect if the servant is
not connected to the ORB.
Deprecated by the OMG in favor of the Portable Object Adapter APIs.
obj
- The servant object to be disconnected from the
ORBpublic abstract String[] list_initial_services()
String
objects that represent the object
references for CORBA services that are initially available with this
ORBpublic abstract Object resolve_initial_references(String object_name) throws InvalidName
name
- the name of the initial service as a string
public abstract String object_to_string(Object obj)
The resulting String
object may be stored or communicated in
any way that a String
object can be manipulated.
obj
- the object reference to stringify
public abstract Object string_to_object(String str)
object_to_string
back to a CORBA object reference.
str
- the string to be converted back to an object
reference. It must be the result of converting an object reference to a
string using the method object_to_string
.
public abstract NVList create_list(int count)
NVList
with (probably) enough space for the
specified number of NamedValue
objects. Note that the specified
size is only a hint to help with storage allocation and does not imply the
maximum size of the list.
count
- suggested number of NamedValue
objects
for which to allocate space
NVList
NVList
public NVList create_operation_list(Object oper)
NVList
initialized with argument descriptions for
the operation described in the given OperationDef
object. This
OperationDef
object is obtained from an Interface Repository. The
arguments in the returned NVList
object are in the same order as
in the original IDL operation definition, which makes it possible for the list
to be used in dynamic invocation requests.
oper
- the OperationDef
object to use to
create the list
NVList
object containing descriptions of
the arguments to the method described in the given OperationDef
object
NVList
public abstract NamedValue create_named_value(String s, Any any, int flags)
NamedValue
object using the given name, value, and
argument mode flags.
A NamedValue
object serves as (1) a parameter or return value
or (2) a context property. It may be used by itself or as an element in an
NVList
object.
s
- the name of the NamedValue
object
any
- the Any
value to be inserted into the
NamedValue
object
flags
- the argument mode flags for the
NamedValue
: one of ARG_IN.value
,
ARG_OUT.value
, or ARG_INOUT.value
.
NamedValue
object
NamedValue
public abstract ExceptionList create_exception_list()
ExceptionList
object.
ExceptionList
objectpublic abstract ContextList create_context_list()
ContextList
object.
ContextList
object
ContextList
,
Context
public abstract Context get_default_context()
Context
object.
Context
object
Context
public abstract Environment create_environment()
Environment
object.
Environment
object
Environment
public abstract OutputStream create_output_stream()
org.omg.CORBA.portable.OutputStream
into which
IDL method parameters can be marshalled during method invocation.
org.omg.CORBA.portable.OutputStream
objectpublic abstract void send_multiple_requests_oneway(Request[] req)
req
- an array of request objectspublic abstract void send_multiple_requests_deferred(Request[] req)
req
- an array of Request
objectspublic abstract boolean poll_next_response()
true
if there is a response available; false
otherwisepublic abstract Request get_next_response() throws WrongTransaction
Request
instance for which a response has been
received.
Request
object ready with a response
get_next_response
is called from a transaction
scope different from the one from which the original request was sent. See
the OMG Transaction Service specification for details.public abstract TypeCode get_primitive_tc(TCKind tcKind)
TypeCode
object that represents the given
primitive IDL type.
tcKind
- the TCKind
instance corresponding to
the desired primitive type
TypeCode
objectpublic abstract TypeCode create_struct_tc(String id, String name, StructMember[] members)
TypeCode
object representing an IDL
struct
. The TypeCode
object is initialized with the
given id, name, and members.
id
- the repository id for the struct
name
- the name of the struct
members
- an array describing the members of the
struct
TypeCode
object describing an IDL
struct
public abstract TypeCode create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
TypeCode
object representing an IDL
union
. The TypeCode
object is initialized with the
given id, name, discriminator type, and members.
id
- the repository id of the union
name
- the name of the union
discriminator_type
- the type of the union
discriminator
members
- an array describing the members of the
union
TypeCode
object describing an IDL
union
public abstract TypeCode create_enum_tc(String id, String name, String[] members)
TypeCode
object representing an IDL
enum
. The TypeCode
object is initialized with the
given id, name, and members.
id
- the repository id for the enum
name
- the name for the enum
members
- an array describing the members of the
enum
TypeCode
object describing an IDL
enum
public abstract TypeCode create_alias_tc(String id, String name, TypeCode original_type)
TypeCode
object representing an IDL
alias
(typedef
). The TypeCode
object is
initialized with the given id, name, and original type.
id
- the repository id for the alias
name
- the name for the alias
original_type
- the TypeCode
object describing
the original type for which this is an alias
TypeCode
object describing an IDL
alias
public abstract TypeCode create_exception_tc(String id, String name, StructMember[] members)
TypeCode
object representing an IDL
exception
. The TypeCode
object is initialized with
the given id, name, and members.
id
- the repository id for the exception
name
- the name for the exception
members
- an array describing the members of the
exception
TypeCode
object describing an IDL
exception
public abstract TypeCode create_interface_tc(String id, String name)
TypeCode
object representing an IDL
interface
. The TypeCode
object is initialized with
the given id and name.
id
- the repository id for the interface
name
- the name for the interface
TypeCode
object describing an IDL
interface
public abstract TypeCode create_string_tc(int bound)
TypeCode
object representing a bounded IDL
string
. The TypeCode
object is initialized with the
given bound, which represents the maximum length of the string. Zero indicates
that the string described by this type code is unbounded.
bound
- the bound for the string
; cannot be
zero
TypeCode
object describing a bounded IDL
string
public abstract TypeCode create_wstring_tc(int bound)
TypeCode
object representing a bounded IDL
wstring
(wide string). The TypeCode
object is
initialized with the given bound, which represents the maximum length of the
wide string.
bound
- the bound for the wstring
; cannot be
zero
TypeCode
object describing a bounded IDL
wstring
public abstract TypeCode create_sequence_tc(int bound, TypeCode element_type)
TypeCode
object representing an IDL
sequence
. The TypeCode
object is initialized with
the given bound and element type.
bound
- the bound for the sequence
element_type
- the TypeCode
object describing
the elements contained in the sequence
TypeCode
object describing an IDL
sequence
public abstract TypeCode create_recursive_sequence_tc(int bound, int offset)
TypeCode
object representing a a recursive IDL
sequence
.
For the IDL struct
Foo in following code fragment, the offset
parameter for creating its sequence would be 1:
Struct Foo { long value; Sequence <Foo> Chain; };
bound
- the bound for the sequence
offset
- the index to the enclosing TypeCode
object that describes the elements of this sequence
TypeCode
object describing a recursive
sequencepublic abstract TypeCode create_array_tc(int length, TypeCode element_type)
TypeCode
object representing an IDL
array
. The TypeCode
object is initialized with the
given length and element type.
length
- the length of the array
element_type
- a TypeCode
object describing
the type of element contained in the array
TypeCode
object describing an IDL
array
public TypeCode create_native_tc(String id, String name)
TypeCode
object for an IDL native type.
id
- the logical id for the native type.
name
- the name of the native type.
public TypeCode create_abstract_interface_tc(String id, String name)
TypeCode
object for an IDL abstract interface.
id
- the logical id for the abstract interface type.
name
- the name of the abstract interface type.
public TypeCode create_fixed_tc(short digits, short scale)
TypeCode
object for an IDL fixed type.
digits
- specifies the total number of decimal digits in
the number and must be from 1 to 31 inclusive.
scale
- specifies the position of the decimal point.
public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
TypeCode
object for an IDL value type. The
concrete_base parameter is the TypeCode for the immediate concrete valuetype
base of the valuetype for which the TypeCode is being created. It may be null
if the valuetype does not have a concrete base.
id
- the logical id for the value type.
name
- the name of the value type.
type_modifier
- one of the value type modifier constants
VM_NONE, VM_CUSTOM, VM_ABSTRACT or VM_TRUNCATABLE
concrete_base
- a TypeCode
object describing
the concrete valuetype base
public TypeCode create_recursive_tc(String id)
TypeCode
object which serves as a
placeholder for a concrete TypeCode during the process of creating TypeCodes
which contain recursion. The id parameter specifies the repository id of the
type for which the recursive TypeCode is serving as a placeholder. Once the
recursive TypeCode has been properly embedded in the enclosing TypeCode which
corresponds to the specified repository id, it will function as a normal
TypeCode. Invoking operations on the recursive TypeCode before it has been
embedded in the enclosing TypeCode will result in undefined behavior.
For example, the following IDL type declarations contain recursion:
Struct Foo { long value; Sequence <Foo> Chain; }; Struct Bar { public Bar member; };
To create a TypeCode for struct Bar, you would invoke the TypeCode creation operations as shown below:
String barID = "IDL:Bar:1.0"; TypeCode recursiveTC = orb.create_recursive_tc(barID); StructMember[] members = { new StructMember("member", recursiveTC, null) }; TypeCode structBarTC = orb.create_struct_tc(barID, "Bar", members);
id
- the logical id of the referenced type.
public TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
TypeCode
object for an IDL value type. The
concrete_base parameter is the TypeCode for the immediate concrete valuetype
base of the valuetype for which the TypeCode is being created. It may be null
if the valuetype does not have a concrete base.
id
- the logical id for the value type.
name
- the name of the value type.
public abstract Any create_any()
Any
object initialized to contain a
Typecode
object whose kind
field is set to
TCKind.tc_null
.
Any
objectpublic Current get_current()
Current
object. The Current
interface is used to manage thread-specific information for use by services
such as transactions and security.
Current
object
CORBA
package comments for unimplemented featurespublic void run()
CORBA
package comments for unimplemented featurespublic void shutdown(boolean wait_for_completion)
wait_for_completion
parameter is true, this
operation blocks until all ORB processing (including processing of currently
executing requests, object deactivation, and other object adapter operations)
has completed. The ORB.run
method will return after
shutdown
has been called.
CORBA
package comments for unimplemented featurespublic boolean work_pending()
true
if the ORB needs the main thread to perform some
work, and false
if the ORB does not need the main thread.
CORBA
package comments for unimplemented featurespublic void perform_work()
work_pending
and
perform_work
can be used in conjunction to implement a simple
polling loop that multiplexes the main thread among the ORB and other
activities.
CORBA
package comments for unimplemented featurespublic boolean get_service_information(short service_type, ServiceInformationHolder service_info)
CORBA
package comments for unimplemented featurespublic DynAny create_dyn_any(Any value)
CORBA
package comments for unimplemented featurespublic DynAny create_basic_dyn_any(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic DynStruct create_dyn_struct(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic DynSequence create_dyn_sequence(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic DynArray create_dyn_array(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic DynUnion create_dyn_union(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic DynEnum create_dyn_enum(TypeCode type) throws InconsistentTypeCode
CORBA
package comments for unimplemented featurespublic Policy create_policy(int type, Any val) throws PolicyError
CORBA
package comments for unimplemented features
|
JavaTM 2 Platform Standard Edition | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |