DAQ Driver
CallbackHandler Class Reference

The CallbackHandler class processes callback functions. More...

#include <Driver/Threading/CallbackHandler.h>

Public Member Functions

void runOnce (std::function< void(void)> callback)
 runOnce Runs callback once More...
 
std::shared_ptr< std::function< void(void)> > addCallback (std::function< void(void)> callback)
 addCallback Adds a callback function More...
 
void addCallback (std::shared_ptr< std::function< void(void)>> callback)
 addCallback Adds a callback function More...
 
bool removeCallback (std::shared_ptr< std::function< void(void)>> callback)
 removeCallback Removes a callback function More...
 
void invokeCallbacks ()
 invokeCallbacks Invokes all callback functions in m_callbackFunctions More...
 

Private Attributes

std::thread::id m_invokeThreadID
 
std::mutex m_callbackFunctionsMutex
 Mutex that protects m_callbackFunction. More...
 
std::vector< std::shared_ptr< std::function< void(void)> > > m_runOnceFunctions
 Holds list of shared pointers to callbacks. More...
 
std::vector< std::shared_ptr< std::function< void(void)> > > m_callbackFunctions
 Holds list of shared pointers to callbacks. More...
 

Detailed Description

The CallbackHandler class processes callback functions.

Definition at line 13 of file CallbackHandler.h.

Member Function Documentation

◆ addCallback() [1/2]

std::shared_ptr< std::function< void(void)> > CallbackHandler::addCallback ( std::function< void(void)>  callback)

addCallback Adds a callback function

Parameters
callbackcallback function to add
Returns
returns shared pointer to created callback function

you can use the shared pointer to remove callbacks

Definition at line 11 of file CallbackHandler.cpp.

◆ addCallback() [2/2]

void CallbackHandler::addCallback ( std::shared_ptr< std::function< void(void)>>  callback)

addCallback Adds a callback function

Parameters
callbackcallback function to add

◆ invokeCallbacks()

void CallbackHandler::invokeCallbacks ( )

invokeCallbacks Invokes all callback functions in m_callbackFunctions

Definition at line 40 of file CallbackHandler.cpp.

◆ removeCallback()

bool CallbackHandler::removeCallback ( std::shared_ptr< std::function< void(void)>>  callback)

removeCallback Removes a callback function

Parameters
callbackshared pointer to callback function to remove
Returns
returns true if the callback was succesfully removed

Definition at line 26 of file CallbackHandler.cpp.

◆ runOnce()

void CallbackHandler::runOnce ( std::function< void(void)>  callback)

runOnce Runs callback once

Parameters
callbackcallback to run once

Definition at line 4 of file CallbackHandler.cpp.

Member Data Documentation

◆ m_callbackFunctions

std::vector<std::shared_ptr<std::function<void(void)> > > CallbackHandler::m_callbackFunctions
private

Holds list of shared pointers to callbacks.

Definition at line 52 of file CallbackHandler.h.

◆ m_callbackFunctionsMutex

std::mutex CallbackHandler::m_callbackFunctionsMutex
private

Mutex that protects m_callbackFunction.

Definition at line 50 of file CallbackHandler.h.

◆ m_invokeThreadID

std::thread::id CallbackHandler::m_invokeThreadID
private

Definition at line 49 of file CallbackHandler.h.

◆ m_runOnceFunctions

std::vector<std::shared_ptr<std::function<void(void)> > > CallbackHandler::m_runOnceFunctions
private

Holds list of shared pointers to callbacks.

Definition at line 51 of file CallbackHandler.h.