diff --git a/stratosphere/ncm/source/ncm_main.cpp b/stratosphere/ncm/source/ncm_main.cpp index 84cb3099a..860d3adab 100644 --- a/stratosphere/ncm/source/ncm_main.cpp +++ b/stratosphere/ncm/source/ncm_main.cpp @@ -153,24 +153,21 @@ namespace { class ContentManagerServerManager : public sf::hipc::ServerManager { private: - using ServiceType = ncm::ContentManagerImpl; + using Interface = ncm::IContentManager; + using ServiceImpl = ncm::ContentManagerImpl; private: os::ThreadType thread; - std::shared_ptr ncm_manager; + std::shared_ptr ncm_manager; private: static void ThreadFunction(void *_this) { reinterpret_cast(_this)->LoopProcess(); } public: - ContentManagerServerManager(ServiceType *m) - : ncm_manager() - { - /* ... */ - } + ContentManagerServerManager() : ncm_manager() { /* ... */ } - ams::Result Initialize(std::shared_ptr manager_obj) { + ams::Result Initialize(std::shared_ptr manager_obj) { this->ncm_manager = manager_obj; - return this->RegisterServer(ContentManagerServiceName, ContentManagerManagerSessions, this->ncm_manager); + return this->RegisterServer(ContentManagerServiceName, ContentManagerManagerSessions, this->ncm_manager); } ams::Result StartThreads() { @@ -200,23 +197,20 @@ namespace { class LocationResolverServerManager : public sf::hipc::ServerManager { private: - using ServiceType = lr::LocationResolverManagerImpl; + using Interface = lr::ILocationResolverManager; + using ServiceImpl = lr::LocationResolverManagerImpl; private: os::ThreadType thread; - std::shared_ptr lr_manager; + std::shared_ptr lr_manager; private: static void ThreadFunction(void *_this) { reinterpret_cast(_this)->LoopProcess(); } public: - LocationResolverServerManager(ServiceType *m) - : lr_manager(sf::ServiceObjectTraits::SharedPointerHelper::GetEmptyDeleteSharedPointer(m)) - { - /* ... */ - } + LocationResolverServerManager(ServiceImpl &m) : lr_manager(sf::GetSharedPointerTo(m)) { /* ... */ } ams::Result Initialize() { - return this->RegisterServer(LocationResolverServiceName, LocationResolverManagerSessions, this->lr_manager); + return this->RegisterServer(LocationResolverServiceName, LocationResolverManagerSessions, this->lr_manager); } ams::Result StartThreads() { @@ -232,14 +226,10 @@ namespace { }; ncm::ContentManagerImpl g_ncm_manager_service_object; - ContentManagerServerManager g_ncm_server_manager(std::addressof(g_ncm_manager_service_object)); + ContentManagerServerManager g_ncm_server_manager; lr::LocationResolverManagerImpl g_lr_manager_service_object; - LocationResolverServerManager g_lr_server_manager(std::addressof(g_lr_manager_service_object)); - - ALWAYS_INLINE std::shared_ptr GetSharedPointerToContentManager() { - return sf::ServiceObjectTraits::SharedPointerHelper::GetEmptyDeleteSharedPointer(std::addressof(g_ncm_manager_service_object)); - } + LocationResolverServerManager g_lr_server_manager(g_lr_manager_service_object); /* Compile-time configuration. */ #ifdef NCM_BUILD_FOR_INTITIALIZE @@ -270,8 +260,8 @@ int main(int argc, char **argv) AMS_ASSERT(os::GetThreadPriority(os::GetCurrentThread()) == AMS_GET_SYSTEM_THREAD_PRIORITY(ncm, MainWaitThreads)); /* Create and initialize the content manager. */ - auto content_manager = GetSharedPointerToContentManager(); - R_ABORT_UNLESS(content_manager->Initialize(ManagerConfig)); + auto content_manager = sf::GetSharedPointerTo(g_ncm_manager_service_object); + R_ABORT_UNLESS(content_manager->GetImpl().Initialize(ManagerConfig)); /* Initialize ncm's server and start threads. */ R_ABORT_UNLESS(g_ncm_server_manager.Initialize(content_manager));