#ifndef ASH_PUBLIC_CPP_PROJECTOR_PROJECTOR_SESSION_H_
#define ASH_PUBLIC_CPP_PROJECTOR_PROJECTOR_SESSION_H_
#include "ash/public/cpp/ash_public_export.h"
#include "base/observer_list_types.h"
namespace ash {
class ASH_PUBLIC_EXPORT ProjectorSessionObserver
: public base::CheckedObserver {
public:
virtual void OnProjectorSessionActiveStateChanged(bool active) {}
};
class ASH_PUBLIC_EXPORT ProjectorSession {
public:
ProjectorSession();
ProjectorSession(const ProjectorSession&) = delete;
ProjectorSession& operator=(const ProjectorSession&) = delete;
virtual ~ProjectorSession();
static ProjectorSession* Get();
bool is_active() const { return active_; }
virtual void AddObserver(ProjectorSessionObserver* observer) = 0;
virtual void RemoveObserver(ProjectorSessionObserver* observer) = 0;
protected:
bool active_ = false;
};
}
#endif