Sirikata
|
Pools are the conduits for requests to get into the TransferMediator for processing. More...
#include <TransferPool.hpp>
Public Member Functions | |
virtual | ~TransferPool () |
const std::string & | getClientID () const |
Returns client identifier. | |
virtual void | addRequest (TransferRequestPtr req)=0 |
Puts a request into the pool. | |
virtual void | updatePriority (TransferRequestPtr req, Priority p)=0 |
Updates priority of a request in the pool. | |
virtual void | deleteRequest (TransferRequestPtr req)=0 |
Updates priority of a request in the pool. | |
Protected Member Functions | |
TransferPool (const std::string &clientID) | |
virtual TransferRequestPtr | getRequest ()=0 |
void | setRequestClientID (TransferRequestPtr req) |
void | setRequestPriority (TransferRequestPtr req, Priority p) |
void | setRequestDeletion (TransferRequestPtr req) |
Protected Attributes | |
const std::string | mClientID |
Friends | |
class | TransferMediator |
Pools are the conduits for requests to get into the TransferMediator for processing.
Pools interact carefully with the TransferMediator, which has stricter rules (e.g. only one outstanding request for a resource at a time with a single priority), but provide more convenient interfaces to the user. Implementations might do very little, almost directly passing requests on, or might provide an additional layer of aggregation of requests and multiplexing of callbacks. This intermediate layer allows individual requests to remain simple but provides a layer for coordination (e.g. for aggregation).
virtual Sirikata::Transfer::TransferPool::~TransferPool | ( | ) | [inline, virtual] |
Sirikata::Transfer::TransferPool::TransferPool | ( | const std::string & | clientID | ) | [inline, protected] |
virtual void Sirikata::Transfer::TransferPool::addRequest | ( | TransferRequestPtr | req | ) | [pure virtual] |
Puts a request into the pool.
Implemented in Sirikata::Transfer::AggregatedTransferPool, and Sirikata::Transfer::SimpleTransferPool.
virtual void Sirikata::Transfer::TransferPool::deleteRequest | ( | TransferRequestPtr | req | ) | [pure virtual] |
Updates priority of a request in the pool.
Implemented in Sirikata::Transfer::AggregatedTransferPool, and Sirikata::Transfer::SimpleTransferPool.
const std::string& Sirikata::Transfer::TransferPool::getClientID | ( | ) | const [inline] |
Returns client identifier.
References mClientID.
virtual TransferRequestPtr Sirikata::Transfer::TransferPool::getRequest | ( | ) | [protected, pure virtual] |
Implemented in Sirikata::Transfer::AggregatedTransferPool, and Sirikata::Transfer::SimpleTransferPool.
void Sirikata::Transfer::TransferPool::setRequestClientID | ( | TransferRequestPtr | req | ) | [inline, protected] |
References mClientID.
Referenced by Sirikata::Transfer::SimpleTransferPool::addRequest(), and Sirikata::Transfer::AggregatedTransferPool::addRequest().
void Sirikata::Transfer::TransferPool::setRequestDeletion | ( | TransferRequestPtr | req | ) | [inline, protected] |
void Sirikata::Transfer::TransferPool::setRequestPriority | ( | TransferRequestPtr | req, |
Priority | p | ||
) | [inline, protected] |
virtual void Sirikata::Transfer::TransferPool::updatePriority | ( | TransferRequestPtr | req, |
Priority | p | ||
) | [pure virtual] |
Updates priority of a request in the pool.
Implemented in Sirikata::Transfer::AggregatedTransferPool, and Sirikata::Transfer::SimpleTransferPool.
friend class TransferMediator [friend] |
Reimplemented in Sirikata::Transfer::AggregatedTransferPool, and Sirikata::Transfer::SimpleTransferPool.
const std::string Sirikata::Transfer::TransferPool::mClientID [protected] |
Referenced by getClientID(), and setRequestClientID().