Previous | Table of Contents | Next |
void send ( // PIDL in Flags invoke_flags // invocation flags );
Send initiates an operation according to the information in the Request. Unlike invoke, send returns control to the caller
without waiting for the operation to finish. To determine when the operation is done, the caller must use the get_response
or ORB::get_next_response operations described below. The out parameters and return value must not be used until the operation
is done.
Although it is possible for some standard system exceptions to be raised by the send operation, there is no guarantee that
all possible errors will be detected. For example, if the object reference is not valid, send might detect it and raise an
exception, or might return before the object reference is validated, in which case the exception will be raised when get_response
is called.
If the operation is defined to be oneway or if INV_NO_RESPONSE is specified, and the effective SyncScopePolicy does not have
a value of WITH_SERVER or WITH_TARGET, then get_response does not need to be called. In such cases, some errors might go
unreported, since if they are not detected before send returns there is no way to inform the caller of the error.
The following invocation flags are currently defined for send:
CORBA::INV_NO_RESPONSE indicates that the invoker wishes the request to be subject to the effective SyncScopePolicy. If the
SyncScopePolicy has a value of NONE or WITH_TRANSPORT, the invoker will not receive a response, nor does it expect any of
the output arguments (in/out and out) to be updated. This option may be specified even if the operation has not been defined
to be oneway.