2
* Copyright © 2012 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3,
6
* as published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Alan Griffiths <alan@octopull.co.uk>
19
#ifndef MIR_FRONTEND_CONNECTED_SESSIONS_H_
20
#define MIR_FRONTEND_CONNECTED_SESSIONS_H_
32
template<class Session>
33
class ConnectedSessions
36
ConnectedSessions() {}
37
~ConnectedSessions() { clear(); }
39
void add(std::shared_ptr<Session> const& session)
41
std::unique_lock<std::mutex> lock(mutex);
42
shell_list[session->id()] = session;
47
std::unique_lock<std::mutex> lock(mutex);
51
bool includes(int id) const
53
std::unique_lock<std::mutex> lock(mutex);
54
return shell_list.find(id) != shell_list.end();
59
std::unique_lock<std::mutex> lock(mutex);
65
ConnectedSessions(ConnectedSessions const&) = delete;
66
ConnectedSessions& operator =(ConnectedSessions const&) = delete;
69
std::map<int, std::shared_ptr<Session>> shell_list;
75
#endif // MIR_FRONTEND_CONNECTED_SESSIONS_H_