AAO DRAMA/DRAMA2 C++ Interface
DRAMA C++11 and later interface

◆ KickBulkWaitUntil() [1/2]

bool drama::Path::KickBulkWaitUntil ( std::chrono::steady_clock::time_point  until,
thread::TMessHandler action,
const std::string &  name,
BulkData argIn,
bool  isSds,
unsigned  notifyBytes = 1024*1024,
sds::IdPtr *const  argOut = nullptr,
MessageEventHandler *const  eventProcessor = &_simpleEventProcessor 
)
inlineinherited

Sends a kick message to a task and block the current thread until the reply is received 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);
      KickWaitUntil(until,...);
*

but can be done using the DeltaTimeToTimePoint() static method.

Parameters
untilUntil when should we wait for this.
actionA pointer to the threaded action which is executing this operation.
nameName of the action to kick.
argInThe Bulk Data segment to be the argument to the obey message.
isSdsDoes arg contain an SDS item? If true, the target task can access the item as an argument using using SDS in the normal way If false, the shared memory contains data in an application private format and DRAMA makes no attempt to interpret it.
notifyBytesIf 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.
eventProcessorAn object to use to process events. Defaults to a simple event processor that causes the method to return when the kick completes.
argOutThe 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 kick 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::TransEvtInfo::complete, drama::CreateRunDramaTask(), DramaTHROW_S, and drama::TransEvtInfo::entryStatus.

Referenced by drama::Path::KickBulkWaitUntil().