Sends an obey message to a task, with a SDS bulk data argument, and blocks the current thread until the action is complete or a timeout has occurred.
For a relative time, something like the following is needed. (ten second timeout).
std::chrono::steady_clock::time_point until =
std::chrono::steady_clock::now() + std::chrono::seconds(10);
ObeyBulkWaitUntil(until,...);
*
but can be done using the DeltaTimeToTimePoint() static method.
- Parameters
-
until | Until when should we wait for this. |
action | A pointer to the threaded action which is executing this operation. |
name | Name of the action to start. |
argIn | The SDS Bulk Data segment to be the argument to the obey message. |
notifyBytes | If non-zero, it indicates your action should be notified (using EntryCode::BulkTransferred entries) every time the specified number of bytes are transferred. Note the this effect is somewhat dependent on the target task behavior and you may only receive the final EntryCode::BulkDone message. |
eventProcessor | An object to use to process events. Defaults to a simple event processor that causes the method to return when the subsidiary action completes. |
argOut | The reply message argument, if any. An address of and sds::IdPtr is supplied. If you supply a
null pointer, it is ignored. Otherwise, any argument to the obey completion is copied into here.
If there is no argument to the reply, it will refer to a null SDS item. |
- Returns
- Returns true if the transaction completed, false for a timeout.
References drama::CreateRunDramaTask(), and drama::Path::ObeyBulkWaitUntil().