chromium/remoting/host/desktop_display_info_monitor.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_HOST_DESKTOP_DISPLAY_INFO_MONITOR_H_
#define REMOTING_HOST_DESKTOP_DISPLAY_INFO_MONITOR_H_

#include <memory>

#include "base/callback_list.h"
#include "base/functional/callback.h"
#include "base/memory/scoped_refptr.h"
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/timer/timer.h"
#include "remoting/host/desktop_display_info.h"
#include "remoting/host/desktop_display_info_loader.h"

namespace base {
class SequencedTaskRunner;
}  // namespace base

namespace remoting {

// This class regularly queries the OS for any changes to the multi-monitor
// display configuration, and reports any changes to the registered callbacks.
// This class ensures that the DisplayInfo is fetched on the UI thread, which
// may be different from the calling thread. This is helpful on platforms where
// REMOTING_MULTI_PROCESS == false, allowing this class to be used on the
// network thread. When REMOTING_MULTI_PROCESS == true, this instance lives in
// the Desktop process.
class DesktopDisplayInfoMonitor {};

}  // namespace remoting

#endif  // REMOTING_HOST_DESKTOP_DISPLAY_INFO_MONITOR_H_