|
Java Platform 1.2 Beta 4 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.omg.CORBA.ORB
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.
Method Summary | |
abstract void | connect(Object obj)
Connects the given servant object (a Java object that is an instance of the server implementation class) to the ORB. The servant class must extend the ImplBase class corresponding to the interface that is
supported by the server. |
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)
|
TypeCode | create_box_value_tc(String id,
String name,
TypeCode original_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 .
|
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 repository_id,
String type_name)
Create a TypeCode object for an IDL native type. |
abstract NVList | create_operation_list(OperationDef 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. |
abstract TypeCode | create_recursive_sequence_tc(int bound,
int offset)
Creates a TypeCode object representing a
a recursive IDL sequence .
|
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 an 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_tc(String repository_id,
String name,
boolean is_custom,
String base_id,
ValueMember[] members)
|
abstract TypeCode | create_wstring_tc(int bound)
Creates a TypeCode object representing an IDL
wstring (wide string).
|
abstract void | disconnect(Object obj)
Disconnects the given servant object from the ORB. After this method returns, the ORB will reject incoming remote requests for the disconnected servant and will send the exception org.omg. |
TypeCode | fill_in_recursive_value_tc(TypeCode tc,
String id,
ValueMember[] placeholder_replacement)
|
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". |
org.omg.CORBA.StreamingPolicy | lookup_streaming_policy(String id)
|
Class | lookup_value_factory(String repository_id)
|
abstract String | object_to_string(Object obj)
Converts the given CORBA object reference to a string. |
void | perform_work()
If called by the main thread, this operation performs an implementation-dependent unit of work. |
abstract boolean | poll_next_response()
Finds out if any of the deferred (asynchronous) invocations have a response yet. |
org.omg.CORBA.StreamingPolicy | register_streaming_policy(String id,
org.omg.CORBA.StreamingPolicy policy)
|
Class | register_value_factory(String repository_id,
Class factory)
|
abstract Object | resolve_initial_references(String 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)
This operation 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. |
void | unregister_streaming_policy(String id)
|
void | unregister_value_factory(String repository_id)
|
boolean | work_pending()
This operation 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 |
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 abstract 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.
obj
- the servant object referencepublic abstract 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.
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 name) throws InvalidName
name
- the name of the initial service as a stringpublic 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 stringifypublic 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 spaceNVList
NVList
public abstract NVList create_operation_list(OperationDef 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 listNVList
object containing
descriptions of the arguments to the method described in the given
OperationDef
objectNVList
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
objectNamedValue
public abstract ExceptionList create_exception_list()
ExceptionList
object.ExceptionList
objectpublic abstract ContextList create_context_list()
ContextList
object.ContextList
objectContextList
,
Context
public abstract Context get_default_context()
Context
object.Context
objectContext
public abstract Environment create_environment()
Environment
object.Environment
objectEnvironment
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 responseget_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 typeTypeCode
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 aliasTypeCode
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 interfaceTypeCode
object describing
an IDL interface
public abstract TypeCode create_string_tc(int bound)
TypeCode
object representing an 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
TypeCode
object describing
an IDL string
public abstract TypeCode create_wstring_tc(int bound)
TypeCode
object representing an IDL
wstring
(wide string).
The TypeCode
object is initialized with the given bound,
which represents the maximum length of the wide string. Zero indicates
that the wide string described by this type code is unbounded.
bound
- the bound for the wstring
TypeCode
object describing
an 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; SequenceChain; };
bound
- the bound for the sequence
offset
- the index to the enclosing TypeCode
object
that describes the elements of this sequenceTypeCode
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 repository_id, String type_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_value_tc(String repository_id, String name, boolean is_custom, String base_id, ValueMember[] members)
public TypeCode fill_in_recursive_value_tc(TypeCode tc, String id, ValueMember[] placeholder_replacement)
public TypeCode create_box_value_tc(String id, String name, TypeCode original_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
objectpublic void run()
public void shutdown(boolean wait_for_completion)
public boolean work_pending()
public void perform_work()
public boolean get_service_information(short service_type, ServiceInformationHolder service_info)
public Class register_value_factory(String repository_id, Class factory)
public void unregister_value_factory(String repository_id)
public Class lookup_value_factory(String repository_id)
public org.omg.CORBA.StreamingPolicy register_streaming_policy(String id, org.omg.CORBA.StreamingPolicy policy)
public void unregister_streaming_policy(String id)
public org.omg.CORBA.StreamingPolicy lookup_streaming_policy(String id)
public DynAny create_dyn_any(Any value)
public DynAny create_basic_dyn_any(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
public DynStruct create_dyn_struct(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
public DynSequence create_dyn_sequence(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
public DynArray create_dyn_array(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
public DynUnion create_dyn_union(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
public DynEnum create_dyn_enum(TypeCode type) throws org.omg.CORBA.DynAnyPackage.InconsistentTypeCode
|
Java Platform 1.2 Beta 4 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |