Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
utils::SignalFD Class Reference

SignalFD takes control over handling signals sent to the thread. More...

#include <signalfd.hpp>

Public Types

typedef std::function< void(struct::signalfd_siginfo &)> Callback
 

Public Member Functions

 SignalFD (cargo::ipc::epoll::EventPoll &eventPoll)
 
virtual ~SignalFD ()
 
 SignalFD (const SignalFD &signalfd)=delete
 
SignalFDoperator= (const SignalFD &)=delete
 
void setHandler (const int sigNum, const Callback &&callback)
 Add a callback for a specified signal. More...
 
int getFD () const
 

Private Types

typedef std::unique_lock
< std::mutex > 
Lock
 

Private Member Functions

void handleInternal ()
 

Private Attributes

int mFD
 
::sigset_t mSet
 
std::mutex mMutex
 
cargo::ipc::epoll::EventPollmEventPoll
 
std::unordered_map< int, CallbackmCallbacks
 
std::vector< int > mBlockedSignals
 

Detailed Description

SignalFD takes control over handling signals sent to the thread.

It should be the only place where signal masks are modified.

Member Typedef Documentation

typedef std::function<void(struct ::signalfd_siginfo&)> utils::SignalFD::Callback
typedef std::unique_lock<std::mutex> utils::SignalFD::Lock
private

Constructor & Destructor Documentation

utils::SignalFD::SignalFD ( cargo::ipc::epoll::EventPoll eventPoll)
utils::SignalFD::~SignalFD ( )
virtual
utils::SignalFD::SignalFD ( const SignalFD signalfd)
delete

Member Function Documentation

int utils::SignalFD::getFD ( ) const
Returns
signal file descriptor
void utils::SignalFD::handleInternal ( )
private
SignalFD& utils::SignalFD::operator= ( const SignalFD )
delete
void utils::SignalFD::setHandler ( const int  sigNum,
const Callback &&  callback 
)

Add a callback for a specified signal.

Blocks the async signal handler if it's not already blocked.

Parameters
sigNumnumber of the signal
callbackhandler callback

Member Data Documentation

std::vector<int> utils::SignalFD::mBlockedSignals
private
std::unordered_map<int, Callback> utils::SignalFD::mCallbacks
private
cargo::ipc::epoll::EventPoll& utils::SignalFD::mEventPoll
private
int utils::SignalFD::mFD
private
std::mutex utils::SignalFD::mMutex
private
::sigset_t utils::SignalFD::mSet
private

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