diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/bcat/backend/backend.cpp | 47 | ||||
-rw-r--r-- | src/core/hle/service/bcat/backend/backend.h | 53 |
2 files changed, 100 insertions, 0 deletions
diff --git a/src/core/hle/service/bcat/backend/backend.cpp b/src/core/hle/service/bcat/backend/backend.cpp new file mode 100644 index 000000000..aefa2208d --- /dev/null +++ b/src/core/hle/service/bcat/backend/backend.cpp @@ -0,0 +1,47 @@ +// Copyright 2019 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "common/hex_util.h" +#include "common/logging/log.h" +#include "core/hle/service/bcat/backend/backend.h" + +namespace Service::BCAT { + +Backend::Backend(DirectoryGetter getter) : dir_getter(std::move(getter)) {} + +Backend::~Backend() = default; + +NullBackend::NullBackend(const DirectoryGetter& getter) : Backend(std::move(getter)) {} + +NullBackend::~NullBackend() = default; + +bool NullBackend::Synchronize(TitleIDVersion title, CompletionCallback callback) { + LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, build_id={:016X}", title.title_id, + title.build_id); + + callback(true); + return true; +} + +bool NullBackend::SynchronizeDirectory(TitleIDVersion title, std::string name, + CompletionCallback callback) { + LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, build_id={:016X}, name={}", title.title_id, + title.build_id, name); + + callback(true); + return true; +} + +bool NullBackend::Clear(u64 title_id) { + LOG_DEBUG(Service_BCAT, "called, title_id={:016X}"); + + return true; +} + +void NullBackend::SetPassphrase(u64 title_id, const Passphrase& passphrase) { + LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, passphrase = {}", title_id, + Common::HexArrayToString(passphrase)); +} + +} // namespace Service::BCAT diff --git a/src/core/hle/service/bcat/backend/backend.h b/src/core/hle/service/bcat/backend/backend.h new file mode 100644 index 000000000..2e9511f3f --- /dev/null +++ b/src/core/hle/service/bcat/backend/backend.h @@ -0,0 +1,53 @@ +// Copyright 2019 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <functional> +#include "common/common_types.h" +#include "core/file_sys/vfs_types.h" + +namespace Service::BCAT { + +using CompletionCallback = std::function<void(bool)>; +using DirectoryGetter = std::function<FileSys::VirtualDir(u64)>; +using Passphrase = std::array<u8, 0x20>; + +struct TitleIDVersion { + u64 title_id; + u64 build_id; +}; + +class Backend { +public: + explicit Backend(DirectoryGetter getter); + virtual ~Backend(); + + virtual bool Synchronize(TitleIDVersion title, CompletionCallback callback) = 0; + virtual bool SynchronizeDirectory(TitleIDVersion title, std::string name, + CompletionCallback callback) = 0; + + virtual bool Clear(u64 title_id) = 0; + + virtual void SetPassphrase(u64 title_id, const Passphrase& passphrase) = 0; + +protected: + DirectoryGetter dir_getter; +}; + +class NullBackend : public Backend { +public: + explicit NullBackend(const DirectoryGetter& getter); + ~NullBackend() override; + + bool Synchronize(TitleIDVersion title, CompletionCallback callback) override; + bool SynchronizeDirectory(TitleIDVersion title, std::string name, + CompletionCallback callback) override; + + bool Clear(u64 title_id) override; + + void SetPassphrase(u64 title_id, const Passphrase& passphrase) override; +}; + +} // namespace Service::BCAT |