module.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include "core/hle/service/service.h"
  6. namespace Service {
  7. namespace FileSystem {
  8. class FileSystemController;
  9. } // namespace FileSystem
  10. namespace BCAT {
  11. class Backend;
  12. class Module final {
  13. public:
  14. class Interface : public ServiceFramework<Interface> {
  15. public:
  16. explicit Interface(std::shared_ptr<Module> module, FileSystem::FileSystemController& fsc,
  17. const char* name);
  18. ~Interface() override;
  19. void CreateBcatService(Kernel::HLERequestContext& ctx);
  20. void CreateDeliveryCacheStorageService(Kernel::HLERequestContext& ctx);
  21. void CreateDeliveryCacheStorageServiceWithApplicationId(Kernel::HLERequestContext& ctx);
  22. protected:
  23. FileSystem::FileSystemController& fsc;
  24. std::shared_ptr<Module> module;
  25. std::unique_ptr<Backend> backend;
  26. };
  27. };
  28. /// Registers all BCAT services with the specified service manager.
  29. void InstallInterfaces(Core::System& system);
  30. } // namespace BCAT
  31. } // namespace Service