org.omg.CORBA

Class ORB

public abstract class ORB extends Object

A central class in CORBA implementation, responsible for sending and handling remote invocations. ORB also works as a factory for creating instances of certain CORBA classes. Despite the core library contains the fully working CORBA implementation, it also provides a simple way to plug-in the alternative CORBA support. This is done by replacing the ORB. The alternative ORB can be specified via properties, passed to ORB.Init(...). When creating an ORB instance, the class name is searched in the following locations:

1. Applet parameter or application string array, if any.
2. The properties parameter, if any.
3. The System properties.
4. The orb.properties file located in the user.home directory (if any).
5. The orb.properties file located in the java.home/lib directory (if any).

The supported properties are:
org.omg.CORBA.ORBClass The class, implementing the functional ORB, returned by {@link #init(Applet, Properties)} or {@link #init(String[], Properties)}
org.omg.CORBA.ORBSingletonClass The class, implementing the restricted ORB, returned by {@link #init()}.
org.omg.CORBA.ORBInitRef Specifies the initial reference, accessible by name with the method {@link #resolve_initial_references(String)}.
org.omg.CORBA.ORBid Specifies the name (ORB Id) of this ORB. The ORB Id is later accessible by {@link ObjectReferenceTemplate#orb_id}. The default value includes the hashcode of the ORB instance that is normally different for each ORB.
org.omg.CORBA.ServerId Specifies the name (Server Id) of this server. This property assigns value to the static field, ensuring that all ORB's on the same jre have the same Server Id. It is normally set as the system property. The server Id is later accessible as {@link ObjectReferenceTemplate#server_id}.
gnu.CORBA.ListenerPort Specifies that this ORB should serve all its objects on a single port (for example, "1234") or on a specified port range (for example, "1100-1108"). The property is used when working with firewals and serves as a replacement for the proprietary properties like com.ibm.CORBA.ListenerPort or com.sun.CORBA.POA.ORBPersistentServerPort. The specified port or range should not overlap with the values, specified for other ORB's.
gnu.Corba.SocketFactory Sets the user-defined server and client socket factory for the ORB being currently instantiated. Serves as a replacement of the proprietary property com.sun.CORBA.connection.ORBSocketFactoryClass. To have multiple types of sockets, instantiate several ORB's with this property each time set to the different value. The factory must implement gnu.CORBA.interfaces.SocketFactory.

The command line accepts the same properties as a keys. When specifying in the command line, the prefix org.omg.CORBA can be omitted, for instance -ORBInitRef NameService=IOR:aabbccdd....

Method Summary
voidconnect(Object object)
Connect the given CORBA object to this ORB.
TypeCodecreate_abstract_interface_tc(String id, String name)
Create a typecode for an abstract interface.
abstract TypeCodecreate_alias_tc(String id, String name, TypeCode typecode)
Create alias typecode for the given typecode.
abstract Anycreate_any()
Create an instance of the CORBA {@link Any} with the type, intialised to {@link TCKind#tk_null}
abstract TypeCodecreate_array_tc(int length, TypeCode element_type)
Create a typecode, defining an array of the given elements.
DynAnycreate_basic_dyn_any(TypeCode t)
The support for {@link DynAny} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive.
abstract ContextListcreate_context_list()
Creates an empty CORBA ContextList.
DynAnycreate_dyn_any(Any a)
The support for {@link DynAny} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive.
DynArraycreate_dyn_array(TypeCode t)
The support for {@link DynArray} has never been implemented in Sun's java releases, at least till v1.4 inclusive.
DynEnumcreate_dyn_enum(TypeCode t)
The support for {@link DynEnum} has never been implemented in Sun's java releases, at least till v1.4 inclusive.
DynSequencecreate_dyn_sequence(TypeCode t)
The support for {@link DynSequence} has never been implemented in Sun's java releases, at least till v1.4 inclusive.
DynStructcreate_dyn_struct(TypeCode t)
The support for {@link DynStruct} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive.
DynUnioncreate_dyn_union(TypeCode t)
The support for {@link DynUnion} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive.
abstract TypeCodecreate_enum_tc(String id, String name, String[] members)
Create a typecode, defining the given enumeration.
abstract Environmentcreate_environment()
Create an environment (container for exceptions).
abstract ExceptionListcreate_exception_list()
Creates an empty exception list.
abstract TypeCodecreate_exception_tc(String id, String name, StructMember[] members)
Create the exception typecode.
TypeCodecreate_fixed_tc(short digits, short scale)
Creates a TypeCode object for CORBA fixed that is mapped to java {@link java.math.BigDecimal}.
abstract TypeCodecreate_interface_tc(String id, String name)
Creates a typecode, representing the IDL interface.
abstract NVListcreate_list(int count)
Create an instance of a new {@link NVList}.
abstract NamedValuecreate_named_value(String name, Any any, int flags)
Create a new named value.
TypeCodecreate_native_tc(String id, String name)
Create a typecode for a native interface.
NVListcreate_operation_list(Object operation_definition)
This should create the list, initialised with the argument descriptions for the given operation definition (CORBA OperationDef).
abstract OutputStreamcreate_output_stream()
Create a new CDR output stream, where the parameter values can be written during the method invocation.
Policycreate_policy(int type, Any value)

Creates the new policy of the specified type, having the given value.

abstract TypeCodecreate_recursive_sequence_tc(int bound, int offset)
Create a typecode, representing a tree-like structure.
TypeCodecreate_recursive_tc(String id)
Create a typecode which serves as a placeholder for typcode, containing recursion.
abstract TypeCodecreate_sequence_tc(int bound, TypeCode element_type)
Create typecode, defining the sequence of the elements, having the given type.
abstract TypeCodecreate_string_tc(int bound)
Create a TypeCode, representing the CORBA string.
abstract TypeCodecreate_struct_tc(String id, String name, StructMember[] members)
Create the typecode, defining the given IDL structure.
abstract TypeCodecreate_union_tc(String id, String name, TypeCode discriminator, UnionMember[] members)
Create the typecode, defining the given IDL union.
TypeCodecreate_value_box_tc(String id, String name, TypeCode boxed_type)
Create value box typecode.
TypeCodecreate_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
Create IDL value type code.
abstract TypeCodecreate_wstring_tc(int bound)
Create a TypeCode, representing the CORBA wstring.
voiddestroy()
Destroy this server, releasing the occupied resources.
voiddisconnect(Object object)
Disconnect the given CORBA object from this ORB.
Currentget_current()
This should return the information, related to the current thread.
abstract Contextget_default_context()
Get the default context of this ORB.
abstract Requestget_next_response()
Get the next instance with a response being received.
abstract TypeCodeget_primitive_tc(TCKind tcKind)
Return thg typecode, representing the given primitive object type.
booleanget_service_information(short service_type, ServiceInformationHolder service_info)
This should return the information about the CORBA facilities and services, available from this ORB.
static ORBinit()
Returns so-called Singleton ORB, a highly restricted version that cannot communicate over network.
static ORBinit(Applet applet, Properties props)
Creates the working instance of ORB for an applet.
static ORBinit(String[] args, Properties props)
Creates the working instance of ORB for a standalone application.
abstract String[]list_initial_services()
List the initially available CORBA objects (services).
abstract Stringobject_to_string(Object forObject)
Get the IOR reference string for the given object.
voidperform_work()
This should perform the implementation dependent unit of work in the main thread.
abstract booleanpoll_next_response()
Find if any of the requests that have been previously sent with {@link #send_multiple_requests_deferred}, have a response yet.
abstract Objectresolve_initial_references(String name)
Find and return the easily accessible CORBA object, addressed by name.
voidrun()
Start listening on the input socket.
abstract voidsend_multiple_requests_deferred(Request[] requests)
Send multiple prepared requests expecting to get a reply.
abstract voidsend_multiple_requests_oneway(Request[] requests)
Send multiple prepared requests one way, do not caring about the answer.
protected abstract voidset_parameters(String[] para, Properties props)
Set the ORB parameters.
protected abstract voidset_parameters(Applet app, Properties props)
Set the ORB parameters.
voidshutdown(boolean wait_for_completion)
Shutdown the ORB server.
abstract Objectstring_to_object(String IOR)

Find and return the CORBA object, addressed by the given string representation.

booleanwork_pending()
Checks if the ORB needs the main thread to perform some work.

Method Detail

connect

public void connect(Object object)
Connect the given CORBA object to this ORB. After the object is connected, it starts receiving remote invocations via this ORB. The OMG group recommends to use Portable Object Adapter (POA) instead of calling this method. This method is implemented in the derived Gnu Classpah classes, returned by ORB.init(..). In this abstract class, the implementation just throws {@link NO_IMPLEMENT}.

Parameters: object the org.omg.CORBA.Object to connect.

create_abstract_interface_tc

public TypeCode create_abstract_interface_tc(String id, String name)
Create a typecode for an abstract interface. The abstract interface can be either CORBA object or CORBA value type.

Parameters: id the id of the abstract interface. name the name of the abstract interface.

Returns: the created typecode.

create_alias_tc

public abstract TypeCode create_alias_tc(String id, String name, TypeCode typecode)
Create alias typecode for the given typecode.

create_any

public abstract Any create_any()
Create an instance of the CORBA {@link Any} with the type, intialised to {@link TCKind#tk_null}

create_array_tc

public abstract TypeCode create_array_tc(int length, TypeCode element_type)
Create a typecode, defining an array of the given elements.

Parameters: length the size of array element_type the array component type.

Returns: the corresponding typecode.

create_basic_dyn_any

public DynAny create_basic_dyn_any(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynAny} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_context_list

public abstract ContextList create_context_list()
Creates an empty CORBA ContextList.

Returns: the newly created context list.

create_dyn_any

public DynAny create_dyn_any(Any a)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynAny} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_dyn_array

public DynArray create_dyn_array(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynArray} has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_dyn_enum

public DynEnum create_dyn_enum(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynEnum} has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_dyn_sequence

public DynSequence create_dyn_sequence(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynSequence} has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_dyn_struct

public DynStruct create_dyn_struct(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynStruct} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_dyn_union

public DynUnion create_dyn_union(TypeCode t)

Deprecated: Use {@link org.omg.DynamicAny.DynAnyFactory}

The support for {@link DynUnion} and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

Throws: NO_IMPLEMENT, always.

create_enum_tc

public abstract TypeCode create_enum_tc(String id, String name, String[] members)
Create a typecode, defining the given enumeration.

Parameters: id the id. name the name. members the memebers

Returns: the created enumeration.

create_environment

public abstract Environment create_environment()
Create an environment (container for exceptions).

Returns: the created container.

create_exception_list

public abstract ExceptionList create_exception_list()
Creates an empty exception list.

Returns: the newly created list.

create_exception_tc

public abstract TypeCode create_exception_tc(String id, String name, StructMember[] members)
Create the exception typecode.

Parameters: id the id of exception. name the name of exception. members the members of exception.

create_fixed_tc

public TypeCode create_fixed_tc(short digits, short scale)
Creates a TypeCode object for CORBA fixed that is mapped to java {@link java.math.BigDecimal}.

Parameters: digits the number of digits in that fixed. scale the number of digits after the decimal point.

Returns: the corresponding TypeCode.

create_interface_tc

public abstract TypeCode create_interface_tc(String id, String name)
Creates a typecode, representing the IDL interface.

Parameters: id the interface repository id. name the interface name.

Returns: the created typecode.

create_list

public abstract NVList create_list(int count)
Create an instance of a new {@link NVList}.

Parameters: count the initial size of the list. If more elements are added, the list automatically expands.

Returns: the created list.

create_named_value

public abstract NamedValue create_named_value(String name, Any any, int flags)
Create a new named value.

Parameters: name the name of the named value any the content of the named value. flags the flags of the named value

Returns: the named value.

create_native_tc

public TypeCode create_native_tc(String id, String name)
Create a typecode for a native interface.

Parameters: id the id of the native interface. name the name of the native interface.

Returns: the created typecode.

create_operation_list

public NVList create_operation_list(Object operation_definition)
This should create the list, initialised with the argument descriptions for the given operation definition (CORBA OperationDef). The information should be obtained from the interface repository. However this method is oficially documented as not implemented at least till v1.4 inclusive.

Parameters: operation_definition the operation definition, must be CORBA OperationDef.

Returns: never

Throws: NO_IMPLEMENT, always.

create_output_stream

public abstract OutputStream create_output_stream()
Create a new CDR output stream, where the parameter values can be written during the method invocation.

Returns: a stream to write values into.

create_policy

public Policy create_policy(int type, Any value)

Creates the new policy of the specified type, having the given value. This method looks for the policy factory that was previously registered during ORB initialization by {@link org.omg.PortableInterceptor#ORBInitialiser}. If the suitable factory is found, this factory creates the requested policy, otherwise the PolicyError is thrown.

The POA policies should be created by POA, not by this method.

Parameters: type the policy type. value the policy value, wrapped into Any.

Throws: PolicyError if the ORB fails to instantiate the policy object. NO_IMPLEMENT always (in this class). Overridden in derived classes returned by ORB.init(..).

See Also: ORBInitInfoOperations PolicyFactoryOperations

create_recursive_sequence_tc

public abstract TypeCode create_recursive_sequence_tc(int bound, int offset)

Deprecated: It is easier and clearler to use a combination of create_recursive_tc and create_sequence_tc instead.

Create a typecode, representing a tree-like structure. This structure contains a member that is a sequence of the same type, as the structure itself. You can imagine as if the folder definition contains a variable-length array of the enclosed (nested) folder definitions. In this way, it is possible to have a tree like structure that can be transferred via CORBA CDR stream.

Parameters: bound the maximal expected number of the nested components on each node; 0 if not limited. offset the position of the field in the returned structure that contains the sequence of the structures of the same field. The members before this field are intialised using parameterless StructMember constructor.

Returns: a typecode, defining a stucture, where a member at the offset position defines an array of the identical structures.

See Also: create_recursive_tc ORB

create_recursive_tc

public TypeCode create_recursive_tc(String id)
Create a typecode which serves as a placeholder for typcode, containing recursion.

Parameters: id the id of the recursive typecode, for that this typecode serves as a placeholder.

create_sequence_tc

public abstract TypeCode create_sequence_tc(int bound, TypeCode element_type)
Create typecode, defining the sequence of the elements, having the given type.

Parameters: bound the maximal length of the sequence, 0 if not restricted. element_type the sequence element type.

Returns: the typecode.

create_string_tc

public abstract TypeCode create_string_tc(int bound)
Create a TypeCode, representing the CORBA string.

Parameters: bound the maximal length of the string, 0 is unlimited.

Returns: the corresponding string typecode.

create_struct_tc

public abstract TypeCode create_struct_tc(String id, String name, StructMember[] members)
Create the typecode, defining the given IDL structure. The TypeCode object is initialized with the given id, name, and members.

Parameters: id the Id of this type. name the name of this type. members the member list.

Returns: the typecode.

create_union_tc

public abstract TypeCode create_union_tc(String id, String name, TypeCode discriminator, UnionMember[] members)
Create the typecode, defining the given IDL union. The TypeCode object is initialized with the given id, name, discriminator and members.

Parameters: id the Id of this type. name the name of this type. discriminator the union discriminator. members the member list.

Returns: the typecode.

create_value_box_tc

public TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
Create value box typecode.

create_value_tc

public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
Create IDL value type code.

create_wstring_tc

public abstract TypeCode create_wstring_tc(int bound)
Create a TypeCode, representing the CORBA wstring.

Parameters: bound the maximal length of the string, 0 is unlimited.

Returns: the corresponding string typecode.

destroy

public void destroy()
Destroy this server, releasing the occupied resources. The default method returns without action.

disconnect

public void disconnect(Object object)
Disconnect the given CORBA object from this ORB. The object will be no longer receiving the remote invocations. In response to the remote invocation on this object, the ORB will send the exception {@link OBJECT_NOT_EXIST}. The object, however, is not destroyed and can receive the local invocations. This method is implemented in the derived Gnu Classpah classes, returned by ORB.init(..). In this abstract class, the implementation just throws {@link NO_IMPLEMENT}.

Parameters: object the object to disconnect.

get_current

public Current get_current()

Deprecated: since 1.2, use {@link #resolve_initial_references}.

This should return the information, related to the current thread. The information is needed, for instance, to get the current object from the code that serves several objects in parallel threads. The {@link Current} is very general interface, with no fields and operations defined. This method is not implemented in Suns releases at least till v1.5 inclusive. To obtain the {@link org.omg.PortableServer.Current}, use {@link #resolve_initial_references}, passing "POACurrent".

Returns: never

Throws: NO_IMPLEMENT always.

get_default_context

public abstract Context get_default_context()
Get the default context of this ORB. This is an initial root of all contexts. The default method returns a new context with the empty name and no parent context.

Returns: the default context of this ORB.

Throws: NO_IMPLEMENT for the Singleton ORB, returned by the parameterless {@link #init()}.

get_next_response

public abstract Request get_next_response()
Get the next instance with a response being received. If all currently sent responses not yet processed, this method pauses till at least one of them is complete. If there are no requests currently sent, the method pauses till some request is submitted and the response is received. This strategy is identical to the one accepted by Suns 1.4 ORB implementation.

Returns: the previously sent request that now contains the received response.

Throws: WrongTransaction If the method was called from the transaction scope different than the one, used to send the request. The exception can be raised only if the request is implicitly associated with some particular transaction.

get_primitive_tc

public abstract TypeCode get_primitive_tc(TCKind tcKind)
Return thg typecode, representing the given primitive object type.

Parameters: tcKind the kind of the primitive typecode.

Returns: the typecode of the primitve typecode.

get_service_information

public boolean get_service_information(short service_type, ServiceInformationHolder service_info)
This should return the information about the CORBA facilities and services, available from this ORB. However this method is oficially documented as not implemented at least till v1.5 inclusive.

Parameters: service_type a type of the service being requested. The OMG specification currently defines only one value, 1, for security related services. service_info a holder, where the returned information should be stored.

Returns: should return true if the service information is available from the ORB, but this method never returns.

Throws: NO_IMPLEMENT always.

init

public static ORB init()
Returns so-called Singleton ORB, a highly restricted version that cannot communicate over network. This ORB is provided for the potentially malicious applets with heavy security restrictions. The returned Singleton ORB can only create typecodes, {@link Any}, {@link ContextList}, {@link NVList} and {@link org.omg.CORBA.portable.OutputStream} that writes to an internal buffer. All other methods throw the {@link NO_IMPLEMENT} exception, additionally printing the error message about the potential attempt to violate the security rules. The implementing ORB class, used in this method, is found as described in the header.

Returns: the working derivative of ORB, implementing the methods of this abstract class.

init

public static ORB init(Applet applet, Properties props)
Creates the working instance of ORB for an applet. By default the built-in fully functional ORB is returned. The ORB class is found as described in the header of this class.

Parameters: applet the applet. The property org.omg.CORBA.ORBClass, if present, defines the used ORB implementation class. If this property is not present, the ORB class is found as described in the class header. props the properties, may be null.

Returns: a newly created functional derivative of this abstract class.

init

public static ORB init(String[] args, Properties props)
Creates the working instance of ORB for a standalone application. By default the built-in fully functional ORB is returned. The ORB class is found as described in the header of this class.

Parameters: args the parameters, passed to the applications main(String[] args) method, may be null. The parameter -org.omg.CORBA.ORBClass if present, defines the used ORB implementation class. If this property is not present, the ORB class is found as described in the class header. props application specific properties, may be null.

Returns: a newly created functional derivative of this abstract class.

list_initial_services

public abstract String[] list_initial_services()
List the initially available CORBA objects (services).

Returns: a list of services.

See Also: resolve_initial_references

object_to_string

public abstract String object_to_string(Object forObject)
Get the IOR reference string for the given object. IOR can be compared with the Internet address for a web page, it provides means to locate the CORBA service on the web. IOR contains the host address, port number, the object identifier (key) inside the server, the communication protocol version, supported charsets and so on.

Parameters: forObject the CORBA object

Returns: the object IOR representation.

See Also: string_to_object

perform_work

public void perform_work()
This should perform the implementation dependent unit of work in the main thread. This method is part of the support for the distribute use of the single execution thread. Same as in Suns releases at least till 1.4 inclusive, the distribute use of the single thread is not implemented. Use multiple threads, provided by jre. The method returns without action.

poll_next_response

public abstract boolean poll_next_response()
Find if any of the requests that have been previously sent with {@link #send_multiple_requests_deferred}, have a response yet.

Returns: true if there is at least one response to the previously sent request, false otherwise.

resolve_initial_references

public abstract Object resolve_initial_references(String name)
Find and return the easily accessible CORBA object, addressed by name. The returned object is typically casted to the more specific reference using the narrow(Object) method of its helper. The method resolves the following string values, returning the working objects:
StringObject class Object use
NameService{@link org.omg.CosNaming.NamingContextExt} Finds (usually remote) object by its name.
RootPOA{@link org.omg.PortableServer.POA} Holds the POA tree for this ORB, where since 1.4 all servants should be connected.
RootPOAManager{@link org.omg.PortableServer.POAManager} Regulates (suspends/resumes) the root POA activity
POACurrent{@link org.omg.PortableServer.Current} Informs the current thread about the Id and POA of the object being currently served (the methods of Current return different values for different threads).
CodecFactory{@link org.omg.IOP.Codec} Encodes/decodes IDL data types into/from byte arrays.
DynAnyFactory{@link org.omg.DynamicAny.DynAnyFactory} Creates DynAny's.
PICurrent{@link org.omg.PortableInterceptor.Current} Contains multiple slots where an interceptor can rememeber the request - specific values between subsequent calls of the interceptor methods.

Parameters: name the object name.

Returns: the object

Throws: org.omg.CORBA.ORBPackage.InvalidName if the given name is not associated with the known object.

run

public void run()
Start listening on the input socket. This method blocks the current thread until {@link #shutdown(boolean)} is called and shutdown process is completed.

send_multiple_requests_deferred

public abstract void send_multiple_requests_deferred(Request[] requests)
Send multiple prepared requests expecting to get a reply. All requests are send in parallel, each in its own separate thread. When the reply arrives, it is stored in the agreed fields of the corresponing request data structure. If this method is called repeatedly, the new requests are added to the set of the currently sent requests, but the old set is not discarded.

Parameters: requests the prepared array of requests.

See Also: poll_next_response get_next_response send_deferred

send_multiple_requests_oneway

public abstract void send_multiple_requests_oneway(Request[] requests)
Send multiple prepared requests one way, do not caring about the answer. The messages, containing requests, will be marked, indicating that the sender is not expecting to get a reply.

Parameters: requests the prepared array of requests.

See Also: send_oneway

set_parameters

protected abstract void set_parameters(String[] para, Properties props)
Set the ORB parameters. This method is normally called from {@link #init(String[], Properties)}.

Parameters: para the parameters, that were passed as the parameters to the main(String[] args) method of the current standalone application. props application specific properties that were passed as a second parameter in {@link #init(String[], Properties)}). Can be null.

set_parameters

protected abstract void set_parameters(Applet app, Properties props)
Set the ORB parameters. This method is normally called from {@link #init(Applet, Properties)}.

Parameters: app the current applet. props application specific properties, passed as the second parameter in {@link #init(Applet, Properties)}. Can be null.

shutdown

public void shutdown(boolean wait_for_completion)
Shutdown the ORB server.

Parameters: wait_for_completion if true, the current thread is suspended untile the shutdown process is complete.

string_to_object

public abstract Object string_to_object(String IOR)

Find and return the CORBA object, addressed by the given string representation. The object can be (an usually is) located on a remote computer, possibly running a different (not necessary java) CORBA implementation. The returned object is typically casted to the more specific reference using the narrow(Object) method of its helper.

This function supports the following input formats:
1. IOR reference (ior:nnnnn ..), usually computer generated.
2. corbaloc:[iiop][version.subversion@]:host[:port]/key defines similar information as IOR reference, but is more human readable. This type of reference may also contain multiple addresses (see OMG documentation for complete format).
3. corbaloc:rir:/name defines internal reference on this ORB that is resolved using {@link #resolve_initial_references}, passing the given name as parameter.
4. corbaname:rir:#name states that the given name must be resolved using the naming service, default for this ORB.
5. corbaname:[iiop][version.subversion@]:host[:port]#name states that the name must be resolved using the naming service that runs on the given host at the given port. The ORB expects to find there the {@link org.omg.CosNaming.NamingContext} under the key "NameService.
7. file://[file name] Read the object definition string from the file system
8. http://[url] Read the object definition string from the provided url.
9. ftp://[url] Read the object definition string from the provided url.

The default port is always 2809. The default iiop version is 1.0 that now may not always be supported, so we would recommend to specify the version explicitly.

The examples of the corbaloc and corbaname addresses:
corbaname:rir:#xobj - ask local naming service for "xobj".
corbaname:rir:/NameService#xobj - same (long form).
corbaname:iiop:1.2@localhost:900#xobj - same, assuming that the naming service runs at port 900 on the local host and supports iiop 1.2.
corbaname:iiop:localhost#xobj - same, assuming that the naming service runs at port 2809 on the local host and supports iiop 1.0.
corbaloc::gnu.xxx.yy/Prod/TradingService - the object exists on the host gnu.xxx.yy, port 2809 having the key "Prod/TradingService". Its ORB supports iiop 1.0.
corbaloc::gnu.xxx.yy/Prod/TradingService:801 - the object exists on the host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB supports iiop 1.0 (iiop keyword ommitted).
corbaloc:iiop:1.1@gnu.xxx.yy/Prod/TradingService - the object exists on the host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB supports iiop 1.1.
corbaloc:rir:/NameService - the default naming service.

Parameters: IOR the object IOR representation string.

Returns: the found CORBA object.

Throws: BAD_PARAM if the string being parsed is invalid. DATA_CONVERSION if the string being parsed contains unsupported prefix or protocol.

See Also: object_to_string

work_pending

public boolean work_pending()
Checks if the ORB needs the main thread to perform some work. The method should return true if the ORB needs the main thread, and false if it does not. This method is part of the support for the distribute use of the single execution thread. Same as in Suns releases at least till 1.4 inclusive, the distributed use of the single thread is not implemented. Use multiple threads, provided by jre.

Returns: false, always.