Sirikata
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
Sirikata::Transfer::ResourceDownloadTask Class Reference

ResourceDownloadTask is a helper class for downloading an entire resource. More...

#include <ResourceDownloadTask.hpp>

Inheritance diagram for Sirikata::Transfer::ResourceDownloadTask:
Collaboration diagram for Sirikata::Transfer::ResourceDownloadTask:

List of all members.

Public Types

typedef std::tr1::function
< void(ResourceDownloadTaskPtr
taskptr, TransferRequestPtr
request, DenseDataPtr response)> 
DownloadCallback

Public Member Functions

virtual ~ResourceDownloadTask ()
void mergeData (const SparseData &dataToMerge)
void start ()
bool isStarted ()
void updatePriority (float64 priority)
void cancel ()
const String & getIdentifier () const

Static Public Member Functions

static ResourceDownloadTaskPtr construct (const URI &uri, TransferPoolPtr transfer_pool, double priority, DownloadCallback cb)
static ResourceDownloadTaskPtr construct (const Chunk &chunk, TransferPoolPtr transfer_pool, double priority, DownloadCallback cb)

Protected Member Functions

 ResourceDownloadTask (const URI &uri, TransferPoolPtr transfer_pool, double priority, DownloadCallback cb)
 ResourceDownloadTask (const Chunk &chunk, TransferPoolPtr transfer_pool, double priority, DownloadCallback cb)
void metadataFinished (MetadataRequestPtr request, RemoteFileMetadataPtr response)
void chunkFinished (TransferRequestPtr request, DenseDataPtr response)

Static Protected Member Functions

static void metadataFinishedWeak (ResourceDownloadTaskWPtr thiswptr, MetadataRequestPtr request, RemoteFileMetadataPtr response)
static void chunkFinishedWeak (ResourceDownloadTaskWPtr thiswptr, ChunkRequestPtr request, DenseDataPtr response)
static void directChunkFinishedWeak (ResourceDownloadTaskWPtr thiswptr, DirectChunkRequestPtr request, DenseDataPtr response)

Protected Attributes

bool mStarted
const URI mURI
const Chunk mChunk
TransferPoolPtr mTransferPool
TransferRequestPtr mCurrentRequest
SparseData mMergeData
double mPriority
DownloadCallback cb
const String mID

Detailed Description

ResourceDownloadTask is a helper class for downloading an entire resource.

It handles getting the metadata and all the chunks, and then invokes a callback. The callback is also invoked, with empty data, if any part of the transfer failed.

This class should always be used as ResourceDownloadTaskPtr and you must maintain a reference for it to work properly -- the callback will not be invoked if you let the object's refcount drop to 0.


Member Typedef Documentation


Constructor & Destructor Documentation

Sirikata::Transfer::ResourceDownloadTask::~ResourceDownloadTask ( ) [virtual]

References cancel().

Sirikata::Transfer::ResourceDownloadTask::ResourceDownloadTask ( const URI uri,
TransferPoolPtr  transfer_pool,
double  priority,
DownloadCallback  cb 
) [protected]

References mStarted.

Sirikata::Transfer::ResourceDownloadTask::ResourceDownloadTask ( const Chunk chunk,
TransferPoolPtr  transfer_pool,
double  priority,
DownloadCallback  cb 
) [protected]

References mStarted.


Member Function Documentation

void Sirikata::Transfer::ResourceDownloadTask::cancel ( )

References cb, mCurrentRequest, and mTransferPool.

Referenced by ~ResourceDownloadTask().

void Sirikata::Transfer::ResourceDownloadTask::chunkFinished ( TransferRequestPtr  request,
DenseDataPtr  response 
) [protected]
void Sirikata::Transfer::ResourceDownloadTask::chunkFinishedWeak ( ResourceDownloadTaskWPtr  thiswptr,
ChunkRequestPtr  request,
DenseDataPtr  response 
) [static, protected]

Referenced by metadataFinished().

ResourceDownloadTaskPtr Sirikata::Transfer::ResourceDownloadTask::construct ( const Chunk chunk,
TransferPoolPtr  transfer_pool,
double  priority,
DownloadCallback  cb 
) [static]
ResourceDownloadTaskPtr Sirikata::Transfer::ResourceDownloadTask::construct ( const URI uri,
TransferPoolPtr  transfer_pool,
double  priority,
DownloadCallback  cb 
) [static]
void Sirikata::Transfer::ResourceDownloadTask::directChunkFinishedWeak ( ResourceDownloadTaskWPtr  thiswptr,
DirectChunkRequestPtr  request,
DenseDataPtr  response 
) [static, protected]

Referenced by start().

const String& Sirikata::Transfer::ResourceDownloadTask::getIdentifier ( ) const [inline]
bool Sirikata::Transfer::ResourceDownloadTask::isStarted ( ) [inline]
void Sirikata::Transfer::ResourceDownloadTask::mergeData ( const SparseData dataToMerge)

References mMergeData.

void Sirikata::Transfer::ResourceDownloadTask::metadataFinished ( MetadataRequestPtr  request,
RemoteFileMetadataPtr  response 
) [protected]
void Sirikata::Transfer::ResourceDownloadTask::metadataFinishedWeak ( ResourceDownloadTaskWPtr  thiswptr,
MetadataRequestPtr  request,
RemoteFileMetadataPtr  response 
) [static, protected]

Referenced by start().

void Sirikata::Transfer::ResourceDownloadTask::start ( )
void Sirikata::Transfer::ResourceDownloadTask::updatePriority ( float64  priority)

Member Data Documentation

Referenced by start().

Referenced by mergeData().

Referenced by ResourceDownloadTask(), and start().

Referenced by metadataFinished(), and start().


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