diff options
| author | 2020-08-03 21:46:14 +1000 | |
|---|---|---|
| committer | 2020-08-03 21:46:14 +1000 | |
| commit | 6a0b77996b426e35a3728f73bf48cfe08e8e3d24 (patch) | |
| tree | a38c4fba7d03504b5b794bc93d81ecd624cee727 /src/core | |
| parent | ipc: Allow all trivially copyable objects to be passed directly into WriteBuf... (diff) | |
| download | yuzu-6a0b77996b426e35a3728f73bf48cfe08e8e3d24.tar.gz yuzu-6a0b77996b426e35a3728f73bf48cfe08e8e3d24.tar.xz yuzu-6a0b77996b426e35a3728f73bf48cfe08e8e3d24.zip | |
sm: Make use of IsBaseOf for GetService
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/sm/sm.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/core/hle/service/sm/sm.h b/src/core/hle/service/sm/sm.h index b06d2f103..b526a94fe 100644 --- a/src/core/hle/service/sm/sm.h +++ b/src/core/hle/service/sm/sm.h | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <type_traits> | 9 | #include <type_traits> |
| 10 | #include <unordered_map> | 10 | #include <unordered_map> |
| 11 | 11 | ||
| 12 | #include "common/concepts.h" | ||
| 12 | #include "core/hle/kernel/client_port.h" | 13 | #include "core/hle/kernel/client_port.h" |
| 13 | #include "core/hle/kernel/object.h" | 14 | #include "core/hle/kernel/object.h" |
| 14 | #include "core/hle/kernel/server_port.h" | 15 | #include "core/hle/kernel/server_port.h" |
| @@ -56,10 +57,8 @@ public: | |||
| 56 | ResultVal<std::shared_ptr<Kernel::ClientPort>> GetServicePort(const std::string& name); | 57 | ResultVal<std::shared_ptr<Kernel::ClientPort>> GetServicePort(const std::string& name); |
| 57 | ResultVal<std::shared_ptr<Kernel::ClientSession>> ConnectToService(const std::string& name); | 58 | ResultVal<std::shared_ptr<Kernel::ClientSession>> ConnectToService(const std::string& name); |
| 58 | 59 | ||
| 59 | template <typename T> | 60 | template <Common::IsBaseOf<Kernel::SessionRequestHandler> T> |
| 60 | std::shared_ptr<T> GetService(const std::string& service_name) const { | 61 | std::shared_ptr<T> GetService(const std::string& service_name) const { |
| 61 | static_assert(std::is_base_of_v<Kernel::SessionRequestHandler, T>, | ||
| 62 | "Not a base of ServiceFrameworkBase"); | ||
| 63 | auto service = registered_services.find(service_name); | 62 | auto service = registered_services.find(service_name); |
| 64 | if (service == registered_services.end()) { | 63 | if (service == registered_services.end()) { |
| 65 | LOG_DEBUG(Service, "Can't find service: {}", service_name); | 64 | LOG_DEBUG(Service, "Can't find service: {}", service_name); |