diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-07 06:25:28 +0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-09 05:59:19 +0200 |
commit | 6f368abe13bbf980b41b0209ddd5ca067761028a (patch) | |
tree | 1323e29c159f50d8a68186c99142d7ed2c0f9237 /src/core/hle/service/sm/srv.h | |
parent | Service: Remove a few redundant namespace qualifiers (diff) | |
download | yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar.gz yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar.bz2 yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar.lz yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar.xz yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.tar.zst yuzu-6f368abe13bbf980b41b0209ddd5ca067761028a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/sm/srv.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/core/hle/service/sm/srv.h b/src/core/hle/service/sm/srv.h index 4196ca1e2..75cca5184 100644 --- a/src/core/hle/service/sm/srv.h +++ b/src/core/hle/service/sm/srv.h @@ -4,21 +4,33 @@ #pragma once -#include <string> +#include "core/hle/kernel/kernel.h" #include "core/hle/service/service.h" +namespace Kernel { +class HLERequestContext; +class Semaphore; +} + namespace Service { namespace SM { /// Interface to "srv:" service -class SRV final : public Interface { +class SRV final : public ServiceFramework<SRV> { public: - SRV(); - ~SRV() override; + explicit SRV(std::shared_ptr<ServiceManager> service_manager); + ~SRV(); + +private: + void RegisterClient(Kernel::HLERequestContext& ctx); + void EnableNotification(Kernel::HLERequestContext& ctx); + void GetServiceHandle(Kernel::HLERequestContext& ctx); + void Subscribe(Kernel::HLERequestContext& ctx); + void Unsubscribe(Kernel::HLERequestContext& ctx); + void PublishToSubscriber(Kernel::HLERequestContext& ctx); - std::string GetPortName() const override { - return "srv:"; - } + std::shared_ptr<ServiceManager> service_manager; + Kernel::SharedPtr<Kernel::Semaphore> notification_semaphore; }; } // namespace SM |