58 std::vector<uint8_t> client_id_;
64 std::vector<uint8_t> hwaddr_;
67 std::thread::id thread_;
83 typedef boost::shared_ptr<Client> ClientPtr;
86 typedef boost::multi_index_container<
92 boost::multi_index::indexed_by<
95 boost::multi_index::hashed_unique<
98 boost::multi_index::member<
99 Client, std::vector<uint8_t>, &Client::client_id_
103 > ClientByIdContainer;
106 typedef boost::multi_index_container<
112 boost::multi_index::indexed_by<
115 boost::multi_index::hashed_unique<
118 boost::multi_index::composite_key<
120 boost::multi_index::member<
121 Client, uint16_t, &Client::htype_
123 boost::multi_index::member<
124 Client, std::vector<uint8_t>, &Client::hwaddr_
129 > ClientByHWAddrContainer;
137 static ClientPtr lookup(
const ClientIdPtr& client_id);
145 static ClientPtr lookup(
const HWAddrPtr& hwaddr);
152 static void addById(
const ClientPtr& client);
159 static void addByHWAddr(
const ClientPtr& client);
173 static void del(
const HWAddrPtr& hwaddr);
178 static std::mutex mutex_;
181 static ClientByIdContainer clients_client_id_;
184 static ClientByHWAddrContainer clients_hwaddr_;
233 void unLockByHWAddr();