Implementation shared by ResponseManager objects. More...
#include <ResponseManager.h>
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... | |
Comm * | comm {} |
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< OperationPtr > | removal_queue |
Queue of completed operations to be removed from MML. More... | |
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.
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.
|
inline |
Constructor.
Definition at line 79 of file ResponseManager.h.
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.