Sirikata
Public Member Functions | Protected Member Functions | Protected Attributes | Friends
Sirikata::Transfer::TransferPool Class Reference

Pools are the conduits for requests to get into the TransferMediator for processing. More...

#include <TransferPool.hpp>

Inheritance diagram for Sirikata::Transfer::TransferPool:
Collaboration diagram for Sirikata::Transfer::TransferPool:

List of all members.

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

Detailed Description

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).


Constructor & Destructor Documentation

virtual Sirikata::Transfer::TransferPool::~TransferPool ( ) [inline, virtual]
Sirikata::Transfer::TransferPool::TransferPool ( const std::string &  clientID) [inline, protected]

Member Function Documentation

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]
void Sirikata::Transfer::TransferPool::setRequestClientID ( TransferRequestPtr  req) [inline, protected]
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.


Friends And Related Function Documentation

friend class TransferMediator [friend]

Member Data Documentation

const std::string Sirikata::Transfer::TransferPool::mClientID [protected]

Referenced by getClientID(), and setRequestClientID().


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