From 2c0b75a7448ab3878d159548858b397e1bcc305b Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sun, 28 Apr 2019 18:46:46 -0400 Subject: bcat: Add backend class to generify the functions of BCAT Provides the most abstract simplified functions of BCAT as functions. Also includes a NullBackend class which is just a no-op. --- src/core/hle/service/bcat/backend/backend.h | 53 +++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/core/hle/service/bcat/backend/backend.h (limited to 'src/core/hle/service/bcat/backend/backend.h') 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 +#include "common/common_types.h" +#include "core/file_sys/vfs_types.h" + +namespace Service::BCAT { + +using CompletionCallback = std::function; +using DirectoryGetter = std::function; +using Passphrase = std::array; + +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 -- cgit v1.2.3