mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-11 05:26:24 +02:00
Loaders: Refactor chaining to avoid dup code.
This commit is contained in:
1 parent
359afb2d6b
commit
7f84c87931
9 files changed
+62
-107
No files matched your search
@@ -19,47 +19,38 @@
|
||||
|
||||
// Takes ownership of backend.
|
||||
RetryingFileLoader::RetryingFileLoader(FileLoader *backend)
|
||||
: backend_(backend) {
|
||||
}
|
||||
|
||||
RetryingFileLoader::~RetryingFileLoader() {
|
||||
// Takes ownership.
|
||||
delete backend_;
|
||||
: ProxiedFileLoader(backend) {
|
||||
}
|
||||
|
||||
bool RetryingFileLoader::Exists() {
|
||||
if (!backend_->Exists()) {
|
||||
if (!ProxiedFileLoader::Exists()) {
|
||||
// Retry once, immediately.
|
||||
return backend_->Exists();
|
||||
return ProxiedFileLoader::Exists();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RetryingFileLoader::ExistsFast() {
|
||||
if (!backend_->ExistsFast()) {
|
||||
if (!ProxiedFileLoader::ExistsFast()) {
|
||||
// Retry once, immediately.
|
||||
return backend_->ExistsFast();
|
||||
return ProxiedFileLoader::ExistsFast();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RetryingFileLoader::IsDirectory() {
|
||||
// Can't tell if it's an error either way.
|
||||
return backend_->IsDirectory();
|
||||
return ProxiedFileLoader::IsDirectory();
|
||||
}
|
||||
|
||||
s64 RetryingFileLoader::FileSize() {
|
||||
s64 filesize = backend_->FileSize();
|
||||
s64 filesize = ProxiedFileLoader::FileSize();
|
||||
if (filesize == 0) {
|
||||
return backend_->FileSize();
|
||||
return ProxiedFileLoader::FileSize();
|
||||
}
|
||||
return filesize;
|
||||
}
|
||||
|
||||
std::string RetryingFileLoader::Path() const {
|
||||
return backend_->Path();
|
||||
}
|
||||
|
||||
size_t RetryingFileLoader::ReadAt(s64 absolutePos, size_t bytes, void *data, Flags flags) {
|
||||
size_t readSize = backend_->ReadAt(absolutePos, bytes, data, flags);
|
||||
|
||||
@@ -72,11 +63,3 @@ size_t RetryingFileLoader::ReadAt(s64 absolutePos, size_t bytes, void *data, Fla
|
||||
|
||||
return readSize;
|
||||
}
|
||||
|
||||
bool RetryingFileLoader::IsRemote() {
|
||||
return backend_->IsRemote();
|
||||
}
|
||||
|
||||
void RetryingFileLoader::Cancel() {
|
||||
backend_->Cancel();
|
||||
}
|
||||
Reference in new issue
Block a user