blob: a388ee6b479367e2be4810434e3d43af0d83459d [file] [log] [blame]
// Copyright (c) 2013 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.
#ifndef REMOTING_HOST_HOST_STATUS_MONITOR_H_
#define REMOTING_HOST_HOST_STATUS_MONITOR_H_
#include "base/memory/ref_counted.h"
#include "base/observer_list.h"
namespace remoting {
class HostStatusObserver;
// Helper used to deliver host status notifications to observers.
class HostStatusMonitor : public base::RefCountedThreadSafe<HostStatusMonitor> {
public:
HostStatusMonitor();
// Add/Remove |observer| to/from the list of status observers.
void AddStatusObserver(HostStatusObserver* observer);
void RemoveStatusObserver(HostStatusObserver* observer);
const base::ObserverList<HostStatusObserver>::Unchecked& observers() {
return observers_;
};
protected:
friend class base::RefCountedThreadSafe<HostStatusMonitor>;
base::ObserverList<HostStatusObserver>::Unchecked observers_;
virtual ~HostStatusMonitor();
};
} // namespace remoting
#endif // REMOTING_HOST_HOST_STATUS_MONITOR_H_