#include "remoting/host/daemon_process.h"
#include <algorithm>
#include <memory>
#include <string>
#include <utility>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/task/single_thread_task_runner.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "remoting/base/auto_thread_task_runner.h"
#include "remoting/base/constants.h"
#include "remoting/host/base/host_exit_codes.h"
#include "remoting/host/base/screen_resolution.h"
#include "remoting/host/branding.h"
#include "remoting/host/config_file_watcher.h"
#include "remoting/host/desktop_session.h"
#include "remoting/host/host_event_logger.h"
#include "remoting/host/host_status_observer.h"
#include "remoting/protocol/transport.h"
namespace remoting {
namespace {
const char kApplicationName[] = …;
std::ostream& operator<<(std::ostream& os, const ScreenResolution& resolution) { … }
}
DaemonProcess::~DaemonProcess() { … }
void DaemonProcess::OnConfigUpdated(const std::string& serialized_config) { … }
void DaemonProcess::OnConfigWatcherError() { … }
void DaemonProcess::OnChannelConnected(int32_t peer_pid) { … }
void DaemonProcess::OnPermanentError(int exit_code) { … }
void DaemonProcess::OnWorkerProcessStopped() { … }
void DaemonProcess::OnAssociatedInterfaceRequest(
const std::string& interface_name,
mojo::ScopedInterfaceEndpointHandle handle) { … }
void DaemonProcess::CloseDesktopSession(int terminal_id) { … }
DaemonProcess::DaemonProcess(
scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
scoped_refptr<AutoThreadTaskRunner> io_task_runner,
base::OnceClosure stopped_callback)
: … { … }
void DaemonProcess::CreateDesktopSession(int terminal_id,
const ScreenResolution& resolution,
bool virtual_terminal) { … }
void DaemonProcess::SetScreenResolution(int terminal_id,
const ScreenResolution& resolution) { … }
void DaemonProcess::CrashNetworkProcess(const base::Location& location) { … }
void DaemonProcess::Initialize() { … }
void DaemonProcess::Stop() { … }
bool DaemonProcess::WasTerminalIdAllocated(int terminal_id) { … }
void DaemonProcess::OnClientAccessDenied(const std::string& signaling_id) { … }
void DaemonProcess::OnClientAuthenticated(const std::string& signaling_id) { … }
void DaemonProcess::OnClientConnected(const std::string& signaling_id) { … }
void DaemonProcess::OnClientDisconnected(const std::string& signaling_id) { … }
void DaemonProcess::OnClientRouteChange(const std::string& signaling_id,
const std::string& channel_name,
const protocol::TransportRoute& route) { … }
void DaemonProcess::OnHostStarted(const std::string& owner_email) { … }
void DaemonProcess::OnHostShutdown() { … }
void DaemonProcess::DeleteAllDesktopSessions() { … }
base::FilePath DaemonProcess::GetConfigPath() { … }
}