aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/ClientList.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/ClientList.hxx')
-rw-r--r--src/client/ClientList.hxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/client/ClientList.hxx b/src/client/ClientList.hxx
index 4d9a96dcb..7d20a8737 100644
--- a/src/client/ClientList.hxx
+++ b/src/client/ClientList.hxx
@@ -20,21 +20,21 @@
#ifndef MPD_CLIENT_LIST_HXX
#define MPD_CLIENT_LIST_HXX
-#include <list>
+#include "Client.hxx"
class Client;
class ClientList {
- typedef std::list<Client *> List;
+ typedef boost::intrusive::list<Client,
+ boost::intrusive::constant_time_size<true>> List;
const unsigned max_size;
- unsigned size;
List list;
public:
ClientList(unsigned _max_size)
- :max_size(_max_size), size(0) {}
+ :max_size(_max_size) {}
~ClientList() {
CloseAll();
}
@@ -48,12 +48,11 @@ public:
}
bool IsFull() const {
- return size >= max_size;
+ return list.size() >= max_size;
}
void Add(Client &client) {
- list.push_front(&client);
- ++size;
+ list.push_front(client);
}
void Remove(Client &client);