API Reference
future:evaluate |
Evaluate the invocation to completion |
future:ready |
Checks if the results are ready |
future:results |
Returns the results of the invocation |
interceptor:receivereply |
Client-side invocation reply interception point |
interceptor:receiverequest |
Server-side invocation request interception point |
interceptor:sendreply |
Server-side invocation reply interception point |
interceptor:sendrequest |
Client-side invocation request interception point |
oil.init |
Initialize an ORB (broker) |
oil.main |
Executes the application's main function |
oil.newthread |
Executes a function in a new thread |
oil.readfrom |
Reads the contents of a file. |
oil.sleep |
Suspends the current thread for some time. |
oil.time |
Returns the current time of the system. |
oil.writeto |
Write data to a file. |
orb:deactivate |
Deactivates a distributed object. |
orb:getIR |
Returns the remote repository used to discover interfaces |
orb:getLIR |
Returns the local repository with all known interface information |
orb:getinterceptor |
Returns the current interceptor for invocations |
orb:loadidl |
Loads an IDL definition into the internal Interface Repository |
orb:loadidlfile |
Loads an IDL file into the internal Interface Repository |
orb:narrow |
Narrows an object reference into a more specific interface |
orb:newdecoder |
Creates a new value decoder that unmarshal values from strings |
orb:newencoder |
Creates a new value encoder that marshal values into strings |
orb:newexcept |
Creates a new exception object with the given body |
orb:newproxy |
Creates a proxy of a distributed object |
orb:newservant |
Registers a new servant creating a new distributed object |
orb:pending |
Checks whether there is some request pending |
orb:run |
Process incoming invocation requests continuously |
orb:setIR |
Defines the remote repository used to discover interfaces |
orb:setexcatch |
Defines a exception handling function for proxies |
orb:setexhandler |
Sets the dispatch exception handling function |
orb:setinterceptor |
Defines an interceptor for invocations |
orb:setonerror |
Sets a notification function for uncaught ORB errors |
orb:settimeout |
Defines a timeout for proxy invocations |
orb:shutdown |
stops the processing invocation requests |
orb:step |
Process one single invocation request |
orbcfg.flavor |
ORB assembly specification |
orbcfg.host |
Network address the ORB must listen |
orbcfg.keyprefix |
Prefix of default object IDs |
orbcfg.localrefs |
Indication of how local references are resolved by the ORB |
orbcfg.objectmap |
Map of active object IDs to servants |
orbcfg.port |
Network port number the ORB must listen |
orbcfg.tcpoptions |
Configuration of TCP connections created by the ORB |
orbcfg.valuefactories |
Map of type IDs to the corresponding factory |
proxy.__reference |
Structure with reference information of the remote object |
proxy:__setexcatch |
Defines a exception handling function for the proxy |
proxy:__settimeout |
Defines a timeout for proxy invocations |
reqcli.profile |
|
reqcli.profile_data |
|
reqcli.profile_tag |
|
reqsrv.servant |
|
request.forward_reference |
|
request.interface |
|
request.object_key |
|
request.operation |
|
request.operation_name |
|
request.parameters |
|
request.reference |
|
request.reply_service_context |
|
request.request_id |
|
request.response_expected |
|
request.results |
|
request.service_context |
|
request.success |
|
servant:__deactivate |
Unregisters the servant from its broker. |
servant.__objkey |
Object key of the distributed object this servant implements |
servant.__servant |
Value registered as servant |
tcpopt.keepalive |
|
tcpopt.linger |
|
tcpopt.reuseaddr |
|
tcpopt.tcp-nodelay |
|
tcpopt.timeout |
|
Future
Object that represents the results of a ongoing and potentially incomplete invocation initiated asynchronously.
... = future:evaluate([timeout])
-
is a method that blocks until the completion of the invocation (or a timeout) and return the values returned by the operation or raises an error if the invocation could not be performed successfully. Any error raised by the invoked operation on the distributed object is raised by this method. If the asynchronous proxy that produced this future has any exception handler associated that matches an error raised during the operation invocation, the exception handler is called automatically.
Parameter
timeout
is a number that indicates the minimum time (in seconds) to wait for the completion of the invocation. If the invocation does not complete before this time this operation behaves as the invocation has raised a timeout exception. When absent then no time limit is assumed.Returned value
...
are the returned values of the invoked operation. completed = future:ready()
-
is a method that checks whether the results of the invocation are ready or not.
Returned value
completed
is a boolean that istrue
when the results of the invocation were received and processed orfalse
if the results are not available yet. success, ... = future:results([timeout])
-
is a method that blocks until the completion of the invocation (or a timeout) and returns its results.
Parameter
timeout
is a number that indicates the minimum time (in seconds) to wait for the completion of the invocation. If the invocation does not complete before this time this operation behaves as the invocation has raised a timeout exception. When absent then no time limit is assumed.Returned value
success
is a boolean that istrue
when the invocation were performed successfully orfalse
if there was an error while performing the invocation.Returned value
...
are the returned values of the invoked operation if it was performed successfully, otherwise it is the error raised while performing the invocation.
Invocation Interceptor
interceptor:receivereply(request)
-
is a method that is invoked whenever the ORB receives the reply of an invocation request sent previously.
Parameter
request
is a CORBA Client Invocation Request that describes the invocation being intercepted. This is the same table passed to the correspondinginterceptor:sendrequest
interceptor:receiverequest(request)
-
is a method that is invoked whenever the ORB receives an invocation request.
Parameter
request
is a CORBA Server Invocation Request that describes the invocation being intercepted. interceptor:sendreply(request)
-
is a method that is invoked whenever the ORB sends a reply of an invocation request received previously.
Parameter
request
is a CORBA Server Invocation Request that describes the invocation being intercepted. This is the same table passed to the correspondinginterceptor:receiverequest
interceptor:sendrequest(request)
-
is a method that is invoked whenever the ORB send an invocation request.
Parameter
request
is a CORBA Client Invocation Request that describes the invocation being intercepted.
OiL Module
orb = oil.init([config])
-
is a function that initializes an ORB (broker) instance on table
config
using its fields as configuration options.Parameter
config
is a ORB Configuration Table that contains optional configuration parameters of the initialized ORB. The actual configuration options varies accordingly to the ORB flavor. For more information, see section Initializing Brokers. When absent this method returns the same ORB, which is initialized with default configuration options. To create different ORBs with the default configuration, pass a different empty table as this parameter .Returned value
orb
is a Object Request Broker that is the same tableconfig
now containing an initialized ORB and all values of the configuration options used, including default values adopted. This returned table shall not be modified by the application.Example:
orb = oil.init{ host="orb.tecgraf.puc-rio.br" }
oil.init{ host="10.223.10.56", port=2089 }:run()
print("Default port chosen:", oil.init().port)
... = oil.main(func, ...)
-
is a function that executes the application's main function in a new thread if the OiL module loaded provides thread support. This function only returns when the main function and all threads initiated by this function terminates or suspends.
Parameter
func
is a function that shall be executed and runs the whole application. Ideally, this function is the initial entry point of the application.Parameter
...
are the values to be passed as arguments to the function being executed.Returned value
...
are all the values returned or yielded by the last executed function during this execution. These values might be the values produced by functionfunc
itself or some other function executed in another thread that terminated or suspended after the thread runningfunc
has completed or suspended.Example:
oil.main(function() print(oil.getLIR()) oil.run() end)
... = oil.newthread(func, ...)
-
is a function that creates a new thread to execute a function with the arguments provided. This function immediately starts the execution of the new thread and returns only when the new thread yields or returns. This function returns all the values yielded by the new thread. This function can only be invoked from others threads, including the one executing the application's main function (see
oil.main
).Parameter
func
is a function that shall be executed in a new thread.Parameter
...
are the values to be passed as arguments to the function being executed.Returned value
...
are all the values returned or yielded by the the executed function.Example:
oil.newthread(broker.run, broker)
contents [, errmsg] = oil.readfrom(filepath, binary)
-
is a function that reads the entire contents of a file either as text or a binary stream.
Parameter
filepath
is a string that contains the path to the file to be read.Parameter
binary
is a boolean that indicates whether the file should be read as a binary stream.Returned value
contents
is a string that contains the entire contents of the file. In case of errors, this returned value isnil
.Returned value
errmsg
is a string that an message describing the error that occurred. When absent indicates the file was read successfully.Example:
orb:newproxy(oil.readfrom("object.ref"))
oil.sleep(time)
-
is a function that suspends the execution of the current thread for a minimum ammount of time. Thus function only return after the time counter of system has passed the specified time.
Parameter
time
is a number that is the minimum number of seconds the current thread must be suspended.Example:
oil.sleep(5.5)
time = oil.time()
-
is a function that returns the current time of the system.
Returned value
time
is a number that indicates the current time of the system in seconds, counting from an arbitraty fixed moment in the past.Example:
start = oil.time(); oil.sleep(3); print("slept for ", oil.time()-start, " secs.")
success [, errmsg] = oil.writeto(filepath, data [, mode])
-
is a function that writes the textual representation of a value to a file.
Parameter
filepath
is a string that contains the path to the file to be written.Parameter
data
is the value which the textual representation (as produced by functiontostring (v)
from the Standard Libraries) shall be written to the file.Parameter
mode
is a string that indicated the mode how the file should be accessed like specified by functionio.open (filename [, mode])
from the Standard Libraries. The default value is"w"
.Returned value
success
is a boolean that indicates whether the data was written successfully.Returned value
errmsg
is a string that an message describing the error that occurred. When absent indicates the file was read successfully.Example:
oil.writeto("ir.ior", orb:getLIR())
Object Request Broker
entry [, errmsg] = orb:deactivate(key [, type])
-
is a method that deactivates a distributed object by removing its servant from the object map of the ORB.
Parameter
key
is either the key identifying the servant, or the object representing the registered servant (as returned by methodorb:newservant
). Moreover, this parameter can be the value registered as servant (as passed as parameterservant
of methodorb:newservant
). In this last case, if the value does not provide fields__objkey
nor__type
, it might be necessary to provide the same interface of the registered servant since the same value might be registered with different interfaces.Parameter
type
indicates the type of the distributed object being deactivated when the ORB provide support for this. When absent the ORB tries to infer the type of the registered servant automatically. .Returned value
entry
is a table that contains the following fields:__servant
- the value registered as servant.
__objkey
- the identifier of the servant previously used to identify the servant in the ORB.
__type
- the type information of the distributed object implemented by the servant. For ORBs with support for CORBA this field is the interface of the CORBA object implemented by the servant.
nil
.Returned value
errmsg
describes the error that occurred. When absent indicates the servant was unregistered successfully. repository = orb:getIR()
-
is a method that returns the CORBA Interface Repository (IR) used by the ORB to retrieve unknown typing information. Usually this IR is a proxy to a remote object that provides additional typing information that the ORB must retrieve on demmand. This method should not be invoked on ORBs that do not support CORBA.
Returned value
repository
is a table that implements the CORBA Interface Repository interface as specified by the CORBA standard to provide access to new the CORBA typing information unknown to the ORB. repository = orb:getLIR()
-
is a method that returns the internal CORBA Interface Repository used by the ORB. This method should not be invoked on ORBs that do not support CORBA.
Returned value
repository
is a table that implements the CORBA Interface Repository interface as specified by the CORBA standard to provide access to all the CORBA typing information known to the ORB. interceptor = orb:getinterceptor([point])
-
is a method that returns the intereceptor registered to intercept invocation requests made through this ORB.
Parameter
point
is a string that indicates the interception point, as defined by methodorb:setinterceptor
When absent indicates this method shall return the interceptor registered in both"server"
and"client"
interception points, ornil
if there are two different interceptors. .Returned value
interceptor
is a Invocation Interceptor that was registered in the interception point indicated by parameterpoint
. ... = orb:loadidl(idlspec [, incpaths])
-
is a method that loads an IDL definition into the internal Interface Repository.
Parameter
idlspec
is a string that contains an IDL specification of interfaces and other typing information to be loaded into the ORB's internal Interface Repository (see <$orb:getLIR>). This IDL specification will be parsed by the LuaIDL compiler.Parameter
incpaths
is a table that contains a sequence of file paths (string) to search for files included using#include
directive. When absent the included files are searched only in the default places, which are the current directory and the directory of the file containing the#include
directive. .Returned value
...
are values that implement descriptors of the loaded definitions. For more information about IDL descriptors, see Loading IDL ... = orb:loadidlfile(filepath [, incpaths])
-
is a method that loads an IDL definition from a file into the internal Interface Repository.
Parameter
filepath
is a string that contains a path to a file containing an IDL specification of interfaces and other typing information to be loaded into the ORB's internal Interface Repository (see <$orb:getLIR>). The contents of this file will be parsed by the LuaIDL compiler.Parameter
incpaths
is a table that contains a sequence of file paths (string) to search for files included using#include
directive. When absent the included files are searched only in the default places, which are the current directory and the directory of the file containing the#include
directive. .Returned value
...
are values that implement descriptors of the loaded definitions. For more information about IDL descriptors, see Loading IDL proxy = orb:narrow(proxy [, type])
-
is a method that narrows an object proxy into a more specific interface. This method is deprecated. Use
orb:newproxy
instead.Parameter
proxy
is a Proxy that points to the distributed object being narrowed.Parameter
type
indicates the type of the distributed object of the proxy to be created. It can either be a string with the absolute name or repository ID of an object interface previously loaded into the ORB, or an object describing the type. For more information about representation of object types and interface in a CORBA ORB see Loading IDL When absent the ORB tries to infer the more specific type for the distributed object, potentially trying to contact the object. .Returned value
proxy
is a Proxy that represents the referenced distributed object with a narrower interface. decoder = orb:newdecoder(stream)
-
is a method that creates a new value decoder that unmarshal values from an encoded stream. For CORBA ORBs, the decoder reads CORBA's CDR encapsulated streams, i.e. includes an indication of the endianess used in value codification.
Parameter
stream
is a string that contains a stream with marshaled values.Returned value
decoder
is a decoder that is a value decoder that can be used to unmarshal values from a marshaled stream. encoder = orb:newencoder()
-
is a method that creates a new value encoder that marshal values into an encoded stream. For CORBA ORBs, the encoder writes CORBA's CDR encapsulated streams, i.e. includes an indication of the endianess used in value codification.
Returned value
encoder
is a encoder that is a value encoder that can be used to marshal values into a string containing a marshaled stream. exception = orb:newexcept(body)
-
is a method that creates a new exception object with the given body.
Parameter
body
is a table that contains the values of the exceptions fields. For ORBs that support typing information, like ORBs with CORBA support, the exception must also contain the type of the exception at field_repid
(in CORBA this identification is the repository ID, absolute name, etc.).Returned value
exception
is a table that contains the values of the exceptions fields and can be converted to string or concatenated to produce error messages. proxy = orb:newproxy(reference [, kind [, type]])
-
is a method that creates an object that works as a proxy of a distributed object indicated by a parameter
reference
. Every method invoked on the proxy results in an attempt to invoke the same method on the corresponding distributed object.Parameter
reference
either a string containing object reference information (CORBA's stringfied IOR or CorbaLoc URI) of the distributed object or another proxy pointing to this object.Parameter
kind
is a string that word indicating the kind of the proxy to be created. The possible options are:"synchronous"
- Proxy that imitates the behavior of the remote object. Its methods block while the corresponding method of the distributed object is executing and errors raised by the method of the distributed object are raised by the method of the proxy.
"asynchronous"
- Proxy which methods might return before the completion of the invocation of the distributed object. The methods of this kind of proxy always return a Future.
"protected"
-
Proxy which methods never raise errors and always return a boolean indicating whether the invocation was perfomed successfully (
true
) or not (false
), and also the results of the invocation, which are the returned values if the first value istrue
, or the error raised otherwise.
"synchronous"
.Parameter
type
indicates the type of the distributed object of the proxy to be created. It can either be a string with the absolute name or repository ID of an object interface previously loaded into the ORB, or an object describing the type. For more information about representation of object types and interface in a CORBA ORB see Loading IDL When absent the ORB tries to infer a proper type for the distributed object, potentially trying to contact the object. .Returned value
proxy
is a Proxy that represents the referenced distributed object. servant = orb:newservant(object [, key [, type]])
-
is a method that registers objects in the ORB as servants that implement distributed objects that shall be accessed remotely through the RMI technology supported by the ORB.
Parameter
object
is a value that will be used to dispatch all requests to the distributed object created as result of this call. Usually, this value supports all the methods, attributes and other features of the distributed object. This value might provide the field__objkey
to define the identifier used to register the servant in the ORB. Moreover, if the ORB supports interface definition of distributed objects (e.g. CORBA), this value might provide the field__type
to define the interface of the distributed object implemented by this servant.Parameter
key
is a string that containing a unique identifier of the distributed object implemented by the servant being registered in the ORB. When absent the ORB creates an automatic key based on the parametervalue
and the distributed object interface. All automatically generated keys starts with a special prefix defined by the ORB configuration parameterorbcfg.keyprefix
. .Parameter
type
indicates the interface of the distributed object being created when the ORB provide support for this. For CORBA ORBs this parameter is mandatory. When absent indicates that the ORB does not provide support for definition of the interface of distributed objects. .Returned value
servant
is a Servant that represents a value registered as the implementation of a distributed object. ispending = orb:pending()
-
is a method that checks whether there is some request pending processing by the ORB at the moment.
Returned value
ispending
is a boolean that indicates whether there are requests pending processing in the ORB. orb:run()
-
is a method that processes all incoming invocation requests continuously until some error occours while receiving the requests or the method
orb:shutdown
. orb:setIR(repository)
-
is a method that sets the CORBA Interface Repository (IR) used by the ORB to retrieve unknown typing information. Usually this IR is a proxy to a remote object that provides additional typing information that the ORB must retrieve on demmand. This method should not be invoked on ORBs that do not support CORBA.
Parameter
repository
is a table that implements the CORBA Interface Repository interface as specified by the CORBA standard to provide access to new the CORBA typing information unknown to the ORB. orb:setexcatch(handler [, interface])
-
is a method that defines the exception handling function for the proxies created by this ORB. Exception handling functions are not cumulative. For example, if there is an exception handling function defined for all proxies and another one only for proxies of a given type, then the later will be used for proxies of that given type. Additionally, exceptions handlers are not inherited through interface hierarchies.
Parameter
handler
is a function that is invoked to handle exceptions raised on operations invoked using proxies created by this ORB. This function receives the following parameters:- proxy
- object proxy that performed the operation.
- exception
- exception/error raised.
- operation
- descriptor of the operation that raised the exception.
Parameter
interface
defines an object interface, like an intefaces described in CORBA IDL. If this parameter is provided, then the exception handling function will be applied only to proxies of that interface. When absent then the handler will be applied to all proxies created by the ORB that do not have a exception handler function defined. . orb:setexhandler(handler)
-
is a method that sets a function to be called to manipulate an error raised during a dispatch and produce potentially new error value to be raised.
Parameter
handler
is a function that executes in the same thread and execution point where the error was raised. This function receives as parameter the value of the original error raised during the dispatch of the servant and shall return the value of the error that must be raised in place of the original value.
orb:setinterceptor(interceptor [, point])
is a method that registers an intereceptor to intercept invocation requests made through this ORB.
Parameter interceptor
is a Invocation Interceptor that to be invoked at some invocation interception point.
Parameter point
is a string that indicates the interception point of the interceptor.
The expected values are:
"server"
- Interceptor is invoked whenever a request to a local servant is received or replied.
"client"
- Interceptor is invoked whenever a request to a remote servant is sent or replied.
"corba.server"
- Interceptor is invoked whenever a CORBA request to a local servant is received or replied. For more information on CORBA interceptors, see Intercepting Invocations
"corba.client"
- Interceptor is invoked whenever a CORBA request to a remote servant is sent or replied. For more information on CORBA interceptors, see Intercepting Invocations
"corba"
- Designates both interception points defined by values
"corba.client"
and"corba.server"
.
"server"
and "client"
values.
.
orb:setonerror(callback)
is a method that sets a function to be executed whenever the ORB catch an error that it cannot report back to the application.
Parameter callback
is called to notify an uncaught error.
This function cannot avoid the exception raised nor change the value of the error.
It is simply a notification of an error raised.
This function receives the following parameters:
- error
- the value of the uncaught error.
- tag
- an indication of the context where the error was raised.
The possible values are:
- connection
- while connection establishment from a remote client.
- request
- while extracting request from remote client.
- dispatch
- while dispatching a request to the application.
- reply
- while sending a reply of an invocation back to the client.
orb:settimeout(timeout [, interface])
is a method that defines the timeout for the methods invoked using proxies created by this ORB. Timeouts are not cumulative. For example, if there is a timeout defined for all proxies and another one only for proxies of a given type, then the later will be used for proxies of that given type. Additionally, timeouts are not inherited through interface hierarchies.
Parameter timeout
is a number that minimum time (in seconds) the ORB might spend to complete operations invoked using its proxies.
Operations may complete before the time defined as the timeout.
Parameter interface
defines an object interface, like intefaces described in CORBA IDL.
If this parameter is provided, then the timeout will be applied only to proxies of that interface.
When absent then the timeout will be applied to all proxies created by the ORB that do not have a timeout defined.
.
orb:shutdown()
is a method that stops the execution of method orb:run
, so the invocation request processing halts.
Any eventual invocation request that have started to be processed will be properly handled by the ORB before this method returns.
success [, errmsg] = orb:step(timeout)
is a method that waits for an invocation request and process it. Only one single invocation request is processed.
Parameter timeout
is a number that indicates the minimum time the ORB might wait for a new invocation request before processing it.
Returned value success
is a boolean that indicates whether the invocation request was processed successfully.
Returned value errmsg
describes the error that occurred.
When absent indicates the invocation request was processed successfully.
ORB Configuration Table
orbcfg.flavor
-
is a string that contains a sequence of names describing how ORB internal components are created and assembled. These names determine the features provided by the ORB, including the underpinning RMI technology. The default value is
"cooperative;corba"
. orbcfg.host
-
is a string that contains address the ORB must listen when the ORB supports TCP connections. This address may be an IP address or a host name. Additionally, the value
"*"
indicates the ORB should listen to all TCP/IP network interfaces available. The default value is"*"
. orbcfg.keyprefix
-
is a string that contains the prefix added to all object IDs automatically generated by the ORB for servants registed as distributed objects without an explicit object ID. Define this prefix to make the ORB to create object IDs that does not collides with the object IDs provided by your application. The default value is
"_"
. orbcfg.localrefs
-
is a string that indicates how references to local servants must be resolved by the ORB so they can be delivered to the application. There are three expected values, that indicates that the local references shall be resolved to:
"implementation"
- the value that implements the local object.
"proxy"
- a new proxy to the local object.
"servant"
- the servant object that represents the local object.
"implementation"
. orbcfg.objectmap
-
is a table that shall be used by the ORB to map the object ID of exported distributed objects to the servant that implements them. This table is used both to store servants registered by the application as well as to retrieve the servant of every invocation request dispatched by the ORB. Therefore, it is possible to provide a table with metamethods that provide servants to the ORB on demand. The default value is
{}
. orbcfg.port
-
is a number that of a network port the ORB must listen when the ORB supports TCP connections. The value
0
indicates the ORB should choose a free ephemeral port automatically. The default value is0
. orbcfg.tcpoptions
-
is a TCP Options Table that contains configuration options of the TCP connections created by the ORB when the underlying RMI technology creates such connections. The default value is
{}
. orbcfg.valuefactories
-
is a table that maps strings containing a type ID to the constructor function that shall be called by the ORB to resolve values of that type ID before passing the value to the application. The constructor function receives the raw data extracted from the wire and must adapt it properly so it can be delivered to the application. The default value is
{}
.
Proxy
Object used to access a distributed object. This object behaves as the distributed object. This means, that any method call performed on the proxy results in the same call on the distributed object. This object also provides the additional fields described below.
proxy.__reference
-
is a table that contains complete IOR structure (see CORBA::IOP::IOR in CORBA specs.) in case of CORBA ORB, or another data structure in case of other protocols.
success, result = proxy:__setexcatch(handler)
-
is a method that defines the exception handling function for the proxy.
Parameter
handler
is a function that is invoked to handle exceptions raised on operations invoked using a proxy. This function receives the following parameters:- proxy
- object proxy that performed the operation.
- exception
- exception/error raised.
- operation
- descriptor of the operation that raised the exception.
Returned value
success
is a boolean that Indication that the timeout was changedReturned value
result
is the previously defined exceptions handler function in case of success (success == true
), or a message describing the error that occurred. success, result = proxy:__settimeout(timeout)
-
is a method that defines the timeout for the methods invoked using proxies created by this ORB.
Parameter
timeout
is a number that minimum time (in seconds) the ORB might spend to complete operations invoked using a proxy. Operations may complete before the time defined as the timeout.Returned value
success
is a boolean that Indication that the timeout was changedReturned value
result
is the previously defined timeout in case of success (success == true
), or a message describing the error that occurred.
CORBA Client Invocation Request
Object that describes an intercepted CORBA invocation request on the client-side. This table provides the same fields of the CORBA Invocation Request.
reqcli.profile
-
is a table that contains the decoded profile data used to establish a connection with the servant's ORB. If the ORB is not able to establish a connection, this field is
nil
. The structure of this profile depends on the value of theprofile_tag
. For IIOP profiles (profile_tag == 0
), this table follows the structure ofCORBA::IIOP::ProfileBody_1_0
. reqcli.profile_data
-
is a string that contains the encoded profile data used to establish a connection with the servant's ORB. If the ORB is not able to establish a connection, this field is
nil
. reqcli.profile_tag
-
is a number that is the identification of the kind of the IOR profile used to establish a connection with the servant's ORB. If the ORB is not able to establish a connection, this field is
nil
.
CORBA Server Invocation Request
Object that describes an intercepted CORBA invocation request on the server-side. This table provides the same fields of the CORBA Invocation Request.
reqsrv.servant
-
is the value registered as the servant of the invoked object. If the ORB cannot find a suitable target servant then this field is
nil
.
CORBA Invocation Request
request.forward_reference
-
is a table that contains a complete IOR structure (see
CORBA::IOP::IOR
in CORBA specs.) indicating that this request shall be forwarded to this reference. Set this value to forward this request to another reference. request.interface
-
is a table that contains the complete description of the interface of the servant being invoked.
request.object_key
-
is a string that contains the key of the object the request is addressed to. If the ORB is not able to decode an IOR profile, this field is
nil
. request.operation
-
is a table that is an object with the complete description of the operation being invoked. To change the operation being invoked on the remote servant, the application must set a new operation description to this field, which can be obtained from the local Interface Repository (see method
orb:getLIR
) request.operation_name
-
is a string that contains the name of the operation being invoked.
request.parameters
-
is a table that contains a list of the parameters passed to the operation being invoked.
request.reference
-
is a table that contains the complete IOR structure (see
CORBA::IOP::IOR
in CORBA specs.) that identifies the servant the request is sent to. request.reply_service_context
-
is a table that maps each service context ID to a service context data to be added to the reply of a cancelled request. If no service context data is provided then this field is
nil
. request.request_id
-
is a number that identifies the pending request over the connection used to communicate with the remote ORB. Note that this identifier is not unique across different connections, and it may be reused by other requests after this one is completed (i.e. replied).
request.response_expected
-
is a boolean that indicates if the server must send a response for this request.
request.results
-
is a table that contains either a list of the values to be returned (in case of a successful invocation) or a list with a single value indicating the raised exception or error (in case of a failed invocation). Set this value to provide the result values of a canceled request. If the request have no results yet, this field is
nil
. request.service_context
-
is a table that maps each service context ID to a service context data to be marshaled in the request. If no service context data is provided then this field is
nil
. request.success
-
is a boolean that indicates whether the invocation request resulted in successful results (
true
) or in an error (false
). If the request has not completed yet, this field isnil
. The interceptor might set this field with a boolean value to cancel the request.
Servant
Object that represents a value registered as servant that implements a distributed object. This object behaves as simplified proxy of the distributed object. This means, that any method call performed on the servant results in the same call on its implementation object. However, the invocations performed through this object does not go through the ORB, so marshalling and interceptions will not take place. This object also provides the additional fields described below.
servant:__deactivate()
-
is a method that unregisters the servant from its broker.
servant.__objkey
-
is a string that Object key of the distributed object this servant implements
servant.__servant
-
Value registered as servant
TCP Options Table
tcpopt.keepalive
-
is a boolean that when is
true
enables the periodic transmission of messages on a connected socket. Should the connected party fail to respond to these messages, the connection is considered broken and processes using the socket are notified. The default value isfalse
. tcpopt.linger
-
is a table that controls the action taken when unsent data are queued on a socket and a close is performed. The value is a table with a boolean entry
on
and a numeric entry for the time intervaltimeout
in seconds. If theon
field is set totrue
, the system will block the process on the close attempt until it is able to transmit the data or untiltimeout
has passed. Ifon
isfalse
and a close is issued, the system will process the close in a manner that allows the process to continue as quickly as possible. tcpopt.reuseaddr
-
is a boolean that when is
true
indicates that the rules used in validating addresses supplied in a call to bind should allow reuse of local addresses. The default value isfalse
. tcpopt.tcp-nodelay
-
is a boolean that when is
true
disables the Nagle's algorithm for the connection. The default value isfalse
. tcpopt.timeout
-
is a number that defines the timeout in seconds of the sockets related operations invoked by the ORB. The default value is
false
.