Add Client* ClientManager::get_client_ifp() that can return nullptr

This commit is contained in:
Maxime Coste 2013-12-07 13:43:48 +00:00
parent 3dde0b2260
commit 05d0397936
2 changed files with 12 additions and 3 deletions

View File

@ -139,14 +139,22 @@ bool ClientManager::validate_client_name(const String& name) const
return it == m_clients.end(); return it == m_clients.end();
} }
Client& ClientManager::get_client(const String& name) Client* ClientManager::get_client_ifp(const String& name)
{ {
for (auto& client : m_clients) for (auto& client : m_clients)
{ {
if (client->context().name() == name) if (client->context().name() == name)
return *client; return client.get();
} }
throw runtime_error("no client named: " + name); return nullptr;
}
Client& ClientManager::get_client(const String& name)
{
Client* client = get_client_ifp(name);
if (not client)
throw runtime_error("no client named: " + name);
return *client;
} }
void ClientManager::redraw_clients() const void ClientManager::redraw_clients() const

View File

@ -25,6 +25,7 @@ public:
void redraw_clients() const; void redraw_clients() const;
Client* get_client_ifp(const String& name);
Client& get_client(const String& name); Client& get_client(const String& name);
bool validate_client_name(const String& name) const; bool validate_client_name(const String& name) const;
void remove_client(Client& client); void remove_client(Client& client);