ncm: fix up main

This commit is contained in:
Michael Scire 2020-03-04 01:22:15 -08:00
parent e1a5e31152
commit 674fd8f1e2
2 changed files with 12 additions and 12 deletions

View File

@ -70,7 +70,7 @@ namespace ams::ncm {
} }
Result ContentManagerImpl::~ContentManagerImpl() { ContentManagerImpl::~ContentManagerImpl() {
{ {
std::scoped_lock lk(this->mutex); std::scoped_lock lk(this->mutex);

View File

@ -113,12 +113,13 @@ namespace {
} }
public: public:
ContentManagerServerManager(ServiceType *m) ContentManagerServerManager(ServiceType *m)
: thread(ThreadFunction, this, ThreadPriority), ncm_manager(sf::ServiceObjectTraits<ServiceType>::SharedPointerHelper::GetEmptyDeleteSharedPointer(m)) : thread(ThreadFunction, this, ThreadPriority), ncm_manager()
{ {
/* ... */ /* ... */
} }
ams::Result Initialize() { ams::Result Initialize(std::shared_ptr<ServiceType> manager_obj) {
this->ncm_manager = manager_obj;
return this->RegisterServer<ServiceType>(ContentManagerServiceName, ContentManagerManagerSessions, this->ncm_manager); return this->RegisterServer<ServiceType>(ContentManagerServiceName, ContentManagerManagerSessions, this->ncm_manager);
} }
@ -183,23 +184,22 @@ namespace {
lr::LocationResolverManagerImpl g_lr_manager_service_object; lr::LocationResolverManagerImpl g_lr_manager_service_object;
LocationResolverServerManager g_lr_server_manager(std::addressof(g_lr_manager_service_object)); LocationResolverServerManager g_lr_server_manager(std::addressof(g_lr_manager_service_object));
} ALWAYS_INLINE std::shared_ptr<ncm::ContentManagerImpl> GetSharedPointerToContentManager() {
return sf::ServiceObjectTraits<ncm::ContentManagerImpl>::SharedPointerHelper::GetEmptyDeleteSharedPointer(std::addressof(g_ncm_manager_service_object));
}
void ContentManagerServerMain(void *arg) {
/* Create services. */
R_ABORT_UNLESS(g_ncm_server_manager.RegisterServer<ncm::ContentManagerImpl>(ContentManagerServiceName, ContentManagerManagerSessions));
/* Loop forever, servicing our services. */
g_ncm_server_manager.LoopProcess();
} }
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
/* TODO: Initialize content manager implementation. */ auto content_manager = GetSharedPointerToContentManager();
R_ABORT_UNLESS(content_manager->Initialize());
R_ABORT_UNLESS(g_ncm_server_manager.Initialize()); R_ABORT_UNLESS(g_ncm_server_manager.Initialize(content_manager));
R_ABORT_UNLESS(g_ncm_server_manager.StartThreads()); R_ABORT_UNLESS(g_ncm_server_manager.StartThreads());
ncm::InitializeWithObject(content_manager);
R_ABORT_UNLESS(g_lr_server_manager.Initialize()); R_ABORT_UNLESS(g_lr_server_manager.Initialize());
R_ABORT_UNLESS(g_lr_server_manager.StartThreads()); R_ABORT_UNLESS(g_lr_server_manager.StartThreads());