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();