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::RequestQueue< RequestIdType > Class Template Reference

Class for managing a queue of Requests carrying any data. More...

#include <request-queue.hpp>

Classes

struct  Request
 

Public Member Functions

 RequestQueue ()=default
 
 RequestQueue (const RequestQueue &)=delete
 
RequestQueueoperator= (const RequestQueue &)=delete
 
int getFD ()
 
bool isEmpty ()
 
void pushBack (const RequestIdType requestID, const std::shared_ptr< void > &data=nullptr)
 Push data to back of the queue. More...
 
void pushFront (const RequestIdType requestID, const std::shared_ptr< void > &data=nullptr)
 Push data to back of the queue. More...
 
Request pop ()
 
template<typename Predicate >
bool removeIf (Predicate predicate)
 Remove elements from the queue when the predicate returns true. More...
 

Private Types

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

Private Attributes

std::list< RequestmRequests
 
std::mutex mStateMutex
 
utils::EventFD mEventFD
 

Detailed Description

template<typename RequestIdType>
class cargo::ipc::RequestQueue< RequestIdType >

Class for managing a queue of Requests carrying any data.

Member Typedef Documentation

template<typename RequestIdType>
typedef std::unique_lock<std::mutex> cargo::ipc::RequestQueue< RequestIdType >::Lock
private

Constructor & Destructor Documentation

template<typename RequestIdType>
cargo::ipc::RequestQueue< RequestIdType >::RequestQueue ( )
default
template<typename RequestIdType>
cargo::ipc::RequestQueue< RequestIdType >::RequestQueue ( const RequestQueue< RequestIdType > &  )
delete

Member Function Documentation

template<typename RequestIdType >
int cargo::ipc::RequestQueue< RequestIdType >::getFD ( )
Returns
event's file descriptor
template<typename RequestIdType >
bool cargo::ipc::RequestQueue< RequestIdType >::isEmpty ( )
Returns
is the queue empty
template<typename RequestIdType>
RequestQueue& cargo::ipc::RequestQueue< RequestIdType >::operator= ( const RequestQueue< RequestIdType > &  )
delete
template<typename RequestIdType >
RequestQueue< RequestIdType >::Request cargo::ipc::RequestQueue< RequestIdType >::pop ( )
Returns
get the data from the next request
template<typename RequestIdType>
void cargo::ipc::RequestQueue< RequestIdType >::pushBack ( const RequestIdType  requestID,
const std::shared_ptr< void > &  data = nullptr 
)

Push data to back of the queue.

Parameters
requestIDrequest type
datadata corresponding to the request
template<typename RequestIdType>
void cargo::ipc::RequestQueue< RequestIdType >::pushFront ( const RequestIdType  requestID,
const std::shared_ptr< void > &  data = nullptr 
)

Push data to back of the queue.

Parameters
requestIDrequest type
datadata corresponding to the request
template<typename RequestIdType >
template<typename Predicate >
bool cargo::ipc::RequestQueue< RequestIdType >::removeIf ( Predicate  predicate)

Remove elements from the queue when the predicate returns true.

Parameters
predicatecondition
Returns
was anything removed

Member Data Documentation

template<typename RequestIdType>
utils::EventFD cargo::ipc::RequestQueue< RequestIdType >::mEventFD
private
template<typename RequestIdType>
std::list<Request> cargo::ipc::RequestQueue< RequestIdType >::mRequests
private
template<typename RequestIdType>
std::mutex cargo::ipc::RequestQueue< RequestIdType >::mStateMutex
private

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