Aikido
aikido::common::ExecutorMultiplexer Class Referencefinal

Combine multiple executors (i.e. More...

#include <aikido/common/ExecutorMultiplexer.hpp>

Public Member Functions

 ExecutorMultiplexer ()=default
 Default constructor. More...
 
 ~ExecutorMultiplexer ()=default
 Default destructor. More...
 
void addCallback (std::function< void()> callback)
 Adds a callback. More...
 
void removeAllCallbacks ()
 Removes all the added callbacks. More...
 
bool isEmpty () const
 Returns true if no callback is added. Otherwise, returns false. More...
 
std::size_t getNumCallbacks () const
 Returns the number of added callbacks. More...
 
void operator() ()
 Executes all the added callbacked in order of they added. More...
 

Private Attributes

std::mutex mMutex
 Mutex for the list of callbacks. More...
 
std::vector< std::function< void()> > mCallbacks
 Array of callbacks. More...
 

Detailed Description

Combine multiple executors (i.e.

no argument callbacks) into one executor.

This helper class allows one ExecutorThread to call multiple executors by sequentially calling the callbacks added to this class.

See also
ExecutorThread

Constructor & Destructor Documentation

◆ ExecutorMultiplexer()

aikido::common::ExecutorMultiplexer::ExecutorMultiplexer ( )
default

Default constructor.

◆ ~ExecutorMultiplexer()

aikido::common::ExecutorMultiplexer::~ExecutorMultiplexer ( )
default

Default destructor.

Member Function Documentation

◆ addCallback()

void aikido::common::ExecutorMultiplexer::addCallback ( std::function< void()>  callback)

Adds a callback.

The added callbacks will be called by operator().

The order of callback calling is implementation detail that is subject to change.

Parameters
[in]callbackAny callable object that doesn't return and take any parameters.

◆ getNumCallbacks()

std::size_t aikido::common::ExecutorMultiplexer::getNumCallbacks ( ) const

Returns the number of added callbacks.

◆ isEmpty()

bool aikido::common::ExecutorMultiplexer::isEmpty ( ) const

Returns true if no callback is added. Otherwise, returns false.

◆ operator()()

void aikido::common::ExecutorMultiplexer::operator() ( )

Executes all the added callbacked in order of they added.

◆ removeAllCallbacks()

void aikido::common::ExecutorMultiplexer::removeAllCallbacks ( )

Removes all the added callbacks.

Member Data Documentation

◆ mCallbacks

std::vector<std::function<void()> > aikido::common::ExecutorMultiplexer::mCallbacks
private

Array of callbacks.

◆ mMutex

std::mutex aikido::common::ExecutorMultiplexer::mMutex
mutableprivate

Mutex for the list of callbacks.

The array of callbacks will be locked during it's modified and the callbacks are called.