blob: df7e4acc78148bcdd37ec30751df2e2991d30e4d [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/services/multidevice_setup/privileged_host_device_setter_impl.h"
#include "base/memory/ptr_util.h"
#include "base/no_destructor.h"
#include "chromeos/components/multidevice/logging/logging.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_base.h"
namespace chromeos {
namespace multidevice_setup {
// static
PrivilegedHostDeviceSetterImpl::Factory*
PrivilegedHostDeviceSetterImpl::Factory::test_factory_ = nullptr;
// static
PrivilegedHostDeviceSetterImpl::Factory*
PrivilegedHostDeviceSetterImpl::Factory::Get() {
if (test_factory_)
return test_factory_;
static base::NoDestructor<Factory> factory;
return factory.get();
}
// static
void PrivilegedHostDeviceSetterImpl::Factory::SetFactoryForTesting(
Factory* test_factory) {
test_factory_ = test_factory;
}
PrivilegedHostDeviceSetterImpl::Factory::~Factory() = default;
std::unique_ptr<PrivilegedHostDeviceSetterBase>
PrivilegedHostDeviceSetterImpl::Factory::BuildInstance(
MultiDeviceSetupBase* multidevice_setup) {
return base::WrapUnique(
new PrivilegedHostDeviceSetterImpl(multidevice_setup));
}
PrivilegedHostDeviceSetterImpl::PrivilegedHostDeviceSetterImpl(
MultiDeviceSetupBase* multidevice_setup)
: multidevice_setup_(multidevice_setup) {}
PrivilegedHostDeviceSetterImpl::~PrivilegedHostDeviceSetterImpl() = default;
void PrivilegedHostDeviceSetterImpl::SetHostDevice(
const std::string& host_device_id,
SetHostDeviceCallback callback) {
multidevice_setup_->SetHostDeviceWithoutAuthToken(host_device_id,
std::move(callback));
}
} // namespace multidevice_setup
} // namespace chromeos