Loading...
Searching...
No Matches
ucxx::RequestDelayedSubmissionCollection Class Reference

A collection of delayed request submissions. More...

#include <delayed_submission.h>

Inheritance diagram for ucxx::RequestDelayedSubmissionCollection:
ucxx::BaseDelayedSubmissionCollection< std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > >

Public Member Functions

 RequestDelayedSubmissionCollection (std::string name, const bool enabled)
 Constructor of a collection of delayed request submissions.
Public Member Functions inherited from ucxx::BaseDelayedSubmissionCollection< std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > >
 BaseDelayedSubmissionCollection (std::string name, const bool enabled)
 Constructor for a thread-safe delayed submission collection.
BaseDelayedSubmissionCollection & operator= (BaseDelayedSubmissionCollection const &)=delete
virtual ItemIdType schedule (std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > item)
 Register a callable or complex-type for delayed submission.
void process ()
 Process all pending callbacks.
void cancel (ItemIdType id)
 Cancel a pending callback.

Protected Member Functions

void scheduleLog (ItemIdType id, std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > item) override
 Log message during schedule().
void processItem (ItemIdType id, std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > item) override
 Process a single item during process().

Additional Inherited Members

Protected Attributes inherited from ucxx::BaseDelayedSubmissionCollection< std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > >
std::string _name
 The human-readable name of the collection, used for logging.
bool _enabled
 Whether the resource required to process the collection is enabled.
ItemIdType _itemId
 The item ID counter, used to allow cancelation.
std::optional< ItemIdType > _processing
 The ID of the item being processed, if any.
std::deque< std::pair< ItemIdType, std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > > > _collection
 The collection.
std::set< ItemIdType > _canceled
 IDs of canceled items.
std::mutex _mutex
 Mutex to provide access to _collection.

Detailed Description

A collection of delayed request submissions.

A collection of delayed submissions used specifically for message transfer ucxx::Request submissions.

Constructor & Destructor Documentation

◆ RequestDelayedSubmissionCollection()

ucxx::RequestDelayedSubmissionCollection::RequestDelayedSubmissionCollection ( std::string name,
const bool enabled )
explicit

Constructor of a collection of delayed request submissions.

Construct a collection of delayed submissions used specifically for message transfer ucxx::Request submissions.

Parameters
[in]namethe human-readable name of the type of delayed submission for debugging purposes.
[in]enabledwhether delayed request submissions should be enabled.

Member Function Documentation

◆ processItem()

void ucxx::RequestDelayedSubmissionCollection::processItem ( ItemIdType id,
std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > item )
overrideprotectedvirtual

Process a single item during process().

Method called by process() to process a single item of the collection.

Parameters
[in]idthe ID of the scheduled item, as returned by schedule().
[in]itemthe callback that was passed as argument to schedule() when the first registered.

Implements ucxx::BaseDelayedSubmissionCollection< std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > >.

◆ scheduleLog()

void ucxx::RequestDelayedSubmissionCollection::scheduleLog ( ItemIdType id,
std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > item )
overrideprotectedvirtual

Log message during schedule().

Log a specialized message while schedule() is being executed.

Parameters
[in]idthe ID of the scheduled item, as returned by schedule().
[in]itemthe callback that was passed as argument to schedule().

Implements ucxx::BaseDelayedSubmissionCollection< std::pair< std::shared_ptr< Request >, DelayedSubmissionCallbackType > >.


The documentation for this class was generated from the following file: