blob: c1507d8865fefc4dc568135c31a365d8439b6269 [file] [log] [blame]
// Copyright 2019 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/dbus/fake_vm_plugin_dispatcher_client.h"
#include <utility>
#include "base/bind.h"
#include "base/threading/thread_task_runner_handle.h"
namespace chromeos {
FakeVmPluginDispatcherClient::FakeVmPluginDispatcherClient() = default;
FakeVmPluginDispatcherClient::~FakeVmPluginDispatcherClient() = default;
void FakeVmPluginDispatcherClient::AddObserver(Observer* observer) {
observer_list_.AddObserver(observer);
}
void FakeVmPluginDispatcherClient::RemoveObserver(Observer* observer) {
observer_list_.RemoveObserver(observer);
}
void FakeVmPluginDispatcherClient::StartVm(
const vm_tools::plugin_dispatcher::StartVmRequest& request,
DBusMethodCallback<vm_tools::plugin_dispatcher::StartVmResponse> callback) {
start_vm_called_ = true;
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(callback), start_vm_response_));
}
void FakeVmPluginDispatcherClient::ListVms(
const vm_tools::plugin_dispatcher::ListVmRequest& request,
DBusMethodCallback<vm_tools::plugin_dispatcher::ListVmResponse> callback) {
list_vms_called_ = true;
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(callback), list_vms_response_));
}
void FakeVmPluginDispatcherClient::StopVm(
const vm_tools::plugin_dispatcher::StopVmRequest& request,
DBusMethodCallback<vm_tools::plugin_dispatcher::StopVmResponse> callback) {
stop_vm_called_ = true;
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(callback),
vm_tools::plugin_dispatcher::StopVmResponse()));
}
void FakeVmPluginDispatcherClient::SuspendVm(
const vm_tools::plugin_dispatcher::SuspendVmRequest& request,
DBusMethodCallback<vm_tools::plugin_dispatcher::SuspendVmResponse>
callback) {
suspend_vm_called_ = true;
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
base::BindOnce(std::move(callback),
vm_tools::plugin_dispatcher::SuspendVmResponse()));
}
void FakeVmPluginDispatcherClient::ShowVm(
const vm_tools::plugin_dispatcher::ShowVmRequest& request,
DBusMethodCallback<vm_tools::plugin_dispatcher::ShowVmResponse> callback) {
show_vm_called_ = true;
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(callback),
vm_tools::plugin_dispatcher::ShowVmResponse()));
}
void FakeVmPluginDispatcherClient::WaitForServiceToBeAvailable(
dbus::ObjectProxy::WaitForServiceToBeAvailableCallback callback) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(callback), true));
}
void FakeVmPluginDispatcherClient::NotifyVmStateChanged(
const vm_tools::plugin_dispatcher::VmStateChangedSignal& signal) {
for (auto& observer : observer_list_) {
observer.OnVmStateChanged(signal);
}
}
} // namespace chromeos