void AssetDownloadTask::assetFileDownloaded(std::tr1::shared_ptr<ChunkRequest> request, std::tr1::shared_ptr<const DenseData> response) { // Clear from the active download list assert(mActiveDownloads.size() == 1); mActiveDownloads.erase(mAssetURI); // Lack of response data means failure of some sort if (!response) { failDownload(); return; } // FIXME here we could have another callback which lets them get // at the hash to try to use an existing copy. Even with the // eventual centralized loading we want, this may still be // beneficial since Ogre may have a copy even if we don't have a // copy of the raw data any more. mScene->parseMesh( mAssetURI, request->getMetadata().getFingerprint(), response, std::tr1::bind(&AssetDownloadTask::weakHandleAssetParsed, getWeakPtr(), _1) ); }