#include "chromeos/ash/experiences/arc/session/arc_service_manager.h"
#include "base/check_op.h"
#include "chromeos/ash/experiences/arc/session/arc_bridge_service.h"
#include "chromeos/ash/experiences/arc/session/arc_session.h"
#include "chromeos/ash/experiences/arc/session/arc_session_runner.h"
namespace arc {
namespace {
ArcServiceManager* g_arc_service_manager = nullptr;
}
ArcServiceManager::ArcServiceManager()
: arc_bridge_service_(std::make_unique<ArcBridgeService>()) {
DCHECK(!g_arc_service_manager);
g_arc_service_manager = this;
}
ArcServiceManager::~ArcServiceManager() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK_EQ(g_arc_service_manager, this);
g_arc_service_manager = nullptr;
}
ArcServiceManager* ArcServiceManager::Get() {
if (!g_arc_service_manager) {
return nullptr;
}
DCHECK_CALLED_ON_VALID_THREAD(g_arc_service_manager->thread_checker_);
return g_arc_service_manager;
}
ArcBridgeService* ArcServiceManager::arc_bridge_service() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
return arc_bridge_service_.get();
}
}