X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fio%2FHTTPRepository.cxx;h=dc4dc6eae999d9cf4fbdd74f04bfa4687fa36bb4;hb=974cb3b3d31bb687b0dda2e37960394ee5f1b6e5;hp=e5d8246984cd4275c61b8f15728994bf71089bd4;hpb=72bb9f4d5d6d861902a5779381e4ebe977db1df1;p=simgear.git diff --git a/simgear/io/HTTPRepository.cxx b/simgear/io/HTTPRepository.cxx index e5d82469..dc4dc6ea 100644 --- a/simgear/io/HTTPRepository.cxx +++ b/simgear/io/HTTPRepository.cxx @@ -94,7 +94,7 @@ public: struct Failure { SGPath path; - AbstractRepository::ResultCode error; + HTTPRepository::ResultCode error; }; typedef std::vector FailureList; @@ -104,7 +104,7 @@ public: hashCacheDirty(false), p(parent), isUpdating(false), - status(AbstractRepository::REPO_NO_ERROR), + status(HTTPRepository::REPO_NO_ERROR), totalDownloaded(0) { ; } @@ -115,7 +115,7 @@ public: std::string baseUrl; SGPath basePath; bool isUpdating; - AbstractRepository::ResultCode status; + HTTPRepository::ResultCode status; HTTPDirectory* rootDir; size_t totalDownloaded; @@ -130,9 +130,9 @@ public: std::string computeHashForPath(const SGPath& p); void writeHashCache(); - void failedToGetRootIndex(AbstractRepository::ResultCode st); + void failedToGetRootIndex(HTTPRepository::ResultCode st); void failedToUpdateChild(const SGPath& relativePath, - AbstractRepository::ResultCode fileStatus); + HTTPRepository::ResultCode fileStatus); typedef std::vector RequestVector; RequestVector queuedRequests, @@ -237,7 +237,7 @@ public: std::sort(children.begin(), children.end()); } - void failedToUpdate(AbstractRepository::ResultCode status) + void failedToUpdate(HTTPRepository::ResultCode status) { if (_relativePath.isNull()) { // root dir failed @@ -365,7 +365,7 @@ public: fpath.append(file); if (it->hash != hash) { - _repository->failedToUpdateChild(_relativePath, AbstractRepository::REPO_ERROR_CHECKSUM); + _repository->failedToUpdateChild(_relativePath, HTTPRepository::REPO_ERROR_CHECKSUM); } else { _repository->updatedFileContents(fpath, hash); _repository->totalDownloaded += sz; @@ -375,7 +375,7 @@ public: } void didFailToUpdateFile(const std::string& file, - AbstractRepository::ResultCode status) + HTTPRepository::ResultCode status) { SGPath fpath(_relativePath); fpath.append(file); @@ -580,7 +580,7 @@ size_t HTTPRepository::bytesDownloaded() const return result; } -AbstractRepository::ResultCode +HTTPRepository::ResultCode HTTPRepository::failure() const { if ((_d->status == REPO_NO_ERROR) && !_d->failures.empty()) { @@ -612,7 +612,7 @@ HTTPRepository::failure() const virtual void gotBodyData(const char* s, int n) { if (!file.get()) { - file.reset(new SGFile(pathInRepo.str())); + file.reset(new SGBinaryFile(pathInRepo.str())); if (!file->open(SG_IO_OUT)) { SG_LOG(SG_TERRASYNC, SG_WARN, "unable to create file " << pathInRepo); _directory->repository()->http->cancelRequest(this, "Unable to create output file"); @@ -634,10 +634,10 @@ HTTPRepository::failure() const SG_LOG(SG_TERRASYNC, SG_DEBUG, "got file " << fileName << " in " << _directory->absolutePath()); } else if (responseCode() == 404) { SG_LOG(SG_TERRASYNC, SG_WARN, "terrasync file not found on server: " << fileName << " for " << _directory->absolutePath()); - _directory->didFailToUpdateFile(fileName, AbstractRepository::REPO_ERROR_FILE_NOT_FOUND); + _directory->didFailToUpdateFile(fileName, HTTPRepository::REPO_ERROR_FILE_NOT_FOUND); } else { SG_LOG(SG_TERRASYNC, SG_WARN, "terrasync file download error on server: " << fileName << " for " << _directory->absolutePath() << ": " << responseCode() ); - _directory->didFailToUpdateFile(fileName, AbstractRepository::REPO_ERROR_HTTP); + _directory->didFailToUpdateFile(fileName, HTTPRepository::REPO_ERROR_HTTP); } _directory->repository()->finishedRequest(this); @@ -651,7 +651,7 @@ HTTPRepository::failure() const } if (_directory) { - _directory->didFailToUpdateFile(fileName, AbstractRepository::REPO_ERROR_SOCKET); + _directory->didFailToUpdateFile(fileName, HTTPRepository::REPO_ERROR_SOCKET); _directory->repository()->finishedRequest(this); } } @@ -664,7 +664,7 @@ HTTPRepository::failure() const std::string fileName; // if empty, we're getting the directory itself SGPath pathInRepo; simgear::sha1nfo hashContext; - std::auto_ptr file; + std::auto_ptr file; }; class DirGetRequest : public HTTPRepoGetRequest @@ -701,7 +701,7 @@ HTTPRepository::failure() const if (responseCode() == 200) { std::string hash = strutils::encodeHex(sha1_result(&hashContext), HASH_LENGTH); if (!_targetHash.empty() && (hash != _targetHash)) { - _directory->failedToUpdate(AbstractRepository::REPO_ERROR_CHECKSUM); + _directory->failedToUpdate(HTTPRepository::REPO_ERROR_CHECKSUM); _directory->repository()->finishedRequest(this); return; } @@ -739,12 +739,12 @@ HTTPRepository::failure() const _directory->updateChildrenBasedOnHash(); SG_LOG(SG_TERRASYNC, SG_INFO, "after update of:" << _directory->absolutePath() << " child update took:" << st.elapsedMSec()); } catch (sg_exception& ) { - _directory->failedToUpdate(AbstractRepository::REPO_ERROR_IO); + _directory->failedToUpdate(HTTPRepository::REPO_ERROR_IO); } } else if (responseCode() == 404) { - _directory->failedToUpdate(AbstractRepository::REPO_ERROR_FILE_NOT_FOUND); + _directory->failedToUpdate(HTTPRepository::REPO_ERROR_FILE_NOT_FOUND); } else { - _directory->failedToUpdate(AbstractRepository::REPO_ERROR_HTTP); + _directory->failedToUpdate(HTTPRepository::REPO_ERROR_HTTP); } _directory->repository()->finishedRequest(this); @@ -753,7 +753,7 @@ HTTPRepository::failure() const virtual void onFail() { if (_directory) { - _directory->failedToUpdate(AbstractRepository::REPO_ERROR_SOCKET); + _directory->failedToUpdate(HTTPRepository::REPO_ERROR_SOCKET); _directory->repository()->finishedRequest(this); } } @@ -843,7 +843,7 @@ HTTPRepository::failure() const sha1_init(&info); char* buf = static_cast(malloc(1024 * 1024)); size_t readLen; - SGFile f(p.str()); + SGBinaryFile f(p.str()); if (!f.open(SG_IO_IN)) { throw sg_io_exception("Couldn't open file for compute hash", p); } @@ -1021,14 +1021,14 @@ HTTPRepository::failure() const } } - void HTTPRepoPrivate::failedToGetRootIndex(AbstractRepository::ResultCode st) + void HTTPRepoPrivate::failedToGetRootIndex(HTTPRepository::ResultCode st) { SG_LOG(SG_TERRASYNC, SG_WARN, "Failed to get root of repo:" << baseUrl); status = st; } void HTTPRepoPrivate::failedToUpdateChild(const SGPath& relativePath, - AbstractRepository::ResultCode fileStatus) + HTTPRepository::ResultCode fileStatus) { Failure f; f.path = relativePath;