Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cargo::ipc::EventQueue< MessageType > Class Template Reference

This class implements a simple FIFO queue of events. More...

#include <event-queue.hpp>

Public Member Functions

 EventQueue ()=default
 
 ~EventQueue ()=default
 
 EventQueue (const EventQueue &eventQueue)=delete
 
EventQueueoperator= (const EventQueue &)=delete
 
int getFD () const
 
void send (const MessageType &message)
 Send an event. More...
 
MessageType receive ()
 Receives the event. More...
 
bool isEmpty ()
 

Private Types

typedef std::lock_guard
< std::mutex > 
Lock
 

Private Attributes

std::mutex mCommunicationMutex
 
std::queue< MessageType > mMessages
 
utils::EventFD mEventFD
 

Detailed Description

template<typename MessageType>
class cargo::ipc::EventQueue< MessageType >

This class implements a simple FIFO queue of events.

One can listen for the event with select/poll/epoll.

Template Parameters
MessageTypetype to pass as event's value

Member Typedef Documentation

template<typename MessageType >
typedef std::lock_guard<std::mutex> cargo::ipc::EventQueue< MessageType >::Lock
private

Constructor & Destructor Documentation

template<typename MessageType >
cargo::ipc::EventQueue< MessageType >::EventQueue ( )
default
template<typename MessageType >
cargo::ipc::EventQueue< MessageType >::~EventQueue ( )
default
template<typename MessageType >
cargo::ipc::EventQueue< MessageType >::EventQueue ( const EventQueue< MessageType > &  eventQueue)
delete

Member Function Documentation

template<typename MessageType >
int cargo::ipc::EventQueue< MessageType >::getFD ( ) const
Returns
reference to the event's file descriptor
template<typename MessageType >
bool cargo::ipc::EventQueue< MessageType >::isEmpty ( )
Returns
is the queue empty
template<typename MessageType >
EventQueue& cargo::ipc::EventQueue< MessageType >::operator= ( const EventQueue< MessageType > &  )
delete
template<typename MessageType >
MessageType cargo::ipc::EventQueue< MessageType >::receive ( )

Receives the event.

Blocks if there is no event.

Returns
event's value
template<typename MessageType >
void cargo::ipc::EventQueue< MessageType >::send ( const MessageType &  message)

Send an event.

Parameters
messagemesage to send

Member Data Documentation

template<typename MessageType >
std::mutex cargo::ipc::EventQueue< MessageType >::mCommunicationMutex
private
template<typename MessageType >
utils::EventFD cargo::ipc::EventQueue< MessageType >::mEventFD
private
template<typename MessageType >
std::queue<MessageType> cargo::ipc::EventQueue< MessageType >::mMessages
private

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