Previous Table of Contents Next


7.2.5 send


   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.