0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
Hypertable::ResponseManagerContext Class Reference

Implementation shared by ResponseManager objects. More...

#include <ResponseManager.h>

Collaboration diagram for Hypertable::ResponseManagerContext:
Collaboration graph
[legend]

Classes

class  DeliveryRec
 Record holding response delivery information for an operation. More...
 
class  OperationRec
 Record holding completed operation information. More...
 

Public Types

typedef
boost::multi_index_container
< OperationRec, indexed_by
< sequenced
<>, ordered_non_unique
< const_mem_fun< OperationRec,
ClockT::time_point,&OperationRec::expiration_time >
>, hashed_unique
< const_mem_fun< OperationRec,
int64_t,&OperationRec::id > > > > 
OperationList
 Multi-index container for completed operations. More...
 
typedef
OperationList::nth_index
< 0 >::type 
OperationSequence
 
typedef
OperationList::nth_index
< 1 >::type 
OperationExpirationTimeIndex
 
typedef
OperationList::nth_index
< 2 >::type 
OperationIdentifierIndex
 
typedef
boost::multi_index_container
< DeliveryRec, indexed_by
< sequenced
<>, ordered_non_unique< member
< DeliveryRec,
ClockT::time_point,&DeliveryRec::expiration_time >
>, hashed_unique< member
< DeliveryRec, int64_t,&DeliveryRec::id > > > > 
DeliveryList
 Multi-index container holding response delivery information for operations. More...
 
typedef
DeliveryList::nth_index
< 0 >::type 
DeliverySequence
 
typedef
DeliveryList::nth_index
< 1 >::type 
DeliveryExpirationTimeIndex
 
typedef
DeliveryList::nth_index
< 2 >::type 
DeliveryIdentifierIndex
 

Public Member Functions

 ResponseManagerContext ()
 Constructor. More...
 

Public Attributes

std::mutex mutex
 Mutex for serializing concurrent access More...
 
std::condition_variable cond
 Condition variable used to wait for operations to expire. More...
 
Commcomm {}
 Pointer to comm layer. More...
 
MetaLog::WriterPtr mml_writer
 MML writer. More...
 
bool shutdown {}
 Flag signalling shutdown in progress. More...
 
OperationList expirable_ops
 List of completed operations. More...
 
DeliveryList delivery_list
 List of delivery information records. More...
 
std::list< OperationPtrremoval_queue
 Queue of completed operations to be removed from MML. More...
 

Detailed Description

Implementation shared by ResponseManager objects.

Implementation shared by multiple ResponseManager objets. The reason this class was introduced is because the ResponseManger is a "runnable" class and is passed to the Thread constructor by value, so to ensure that the object gets copied without problems, this class was introduced to encapsulate the implementation (see Pimpl idiom). The ResponseManger class contains just a private pointer to an object of this type which allows the ResponseManager object to be copied by value while retaining the same implementation.

Definition at line 75 of file ResponseManager.h.

Member Typedef Documentation

typedef DeliveryList::nth_index<1>::type Hypertable::ResponseManagerContext::DeliveryExpirationTimeIndex

Definition at line 154 of file ResponseManager.h.

typedef DeliveryList::nth_index<2>::type Hypertable::ResponseManagerContext::DeliveryIdentifierIndex

Definition at line 155 of file ResponseManager.h.

typedef boost::multi_index_container< DeliveryRec, indexed_by< sequenced<>, ordered_non_unique<member<DeliveryRec, ClockT::time_point, &DeliveryRec::expiration_time> >, hashed_unique<member<DeliveryRec, int64_t, &DeliveryRec::id> > > > Hypertable::ResponseManagerContext::DeliveryList

Multi-index container holding response delivery information for operations.

This container contains indexes on the operation IDs and expiration times.

Definition at line 151 of file ResponseManager.h.

typedef DeliveryList::nth_index<0>::type Hypertable::ResponseManagerContext::DeliverySequence

Definition at line 153 of file ResponseManager.h.

typedef OperationList::nth_index<1>::type Hypertable::ResponseManagerContext::OperationExpirationTimeIndex

Definition at line 123 of file ResponseManager.h.

typedef OperationList::nth_index<2>::type Hypertable::ResponseManagerContext::OperationIdentifierIndex

Definition at line 124 of file ResponseManager.h.

typedef boost::multi_index_container< OperationRec, indexed_by< sequenced<>, ordered_non_unique<const_mem_fun<OperationRec, ClockT::time_point, &OperationRec::expiration_time> >, hashed_unique<const_mem_fun<OperationRec, int64_t, &OperationRec::id> > > > Hypertable::ResponseManagerContext::OperationList

Multi-index container for completed operations.

This container contains indexes on the operation IDs and expiration times.

Definition at line 120 of file ResponseManager.h.

typedef OperationList::nth_index<0>::type Hypertable::ResponseManagerContext::OperationSequence

Definition at line 122 of file ResponseManager.h.

Constructor & Destructor Documentation

Hypertable::ResponseManagerContext::ResponseManagerContext ( )
inline

Constructor.

Definition at line 79 of file ResponseManager.h.

Member Data Documentation

Comm* Hypertable::ResponseManagerContext::comm {}

Pointer to comm layer.

Definition at line 164 of file ResponseManager.h.

std::condition_variable Hypertable::ResponseManagerContext::cond

Condition variable used to wait for operations to expire.

Definition at line 161 of file ResponseManager.h.

DeliveryList Hypertable::ResponseManagerContext::delivery_list

List of delivery information records.

Definition at line 176 of file ResponseManager.h.

OperationList Hypertable::ResponseManagerContext::expirable_ops

List of completed operations.

Definition at line 173 of file ResponseManager.h.

MetaLog::WriterPtr Hypertable::ResponseManagerContext::mml_writer

MML writer.

Definition at line 167 of file ResponseManager.h.

std::mutex Hypertable::ResponseManagerContext::mutex

Mutex for serializing concurrent access

Definition at line 158 of file ResponseManager.h.

std::list<OperationPtr> Hypertable::ResponseManagerContext::removal_queue

Queue of completed operations to be removed from MML.

Definition at line 179 of file ResponseManager.h.

bool Hypertable::ResponseManagerContext::shutdown {}

Flag signalling shutdown in progress.

Definition at line 170 of file ResponseManager.h.


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