*/
typedef std::vector<User*> OperList;
+ /** A list holding local users
+ */
+ typedef insp::intrusive_list<LocalUser> LocalList;
+
private:
/** Map of IP addresses for clone counting
*/
*/
const CloneCounts zeroclonecounts;
+ /** Local client list, a list containing only local clients
+ */
+ LocalList local_users;
+
public:
/** Constructor, initializes variables
*/
*/
user_hash uuidlist;
- /** Local client list, a list containing only local clients
- */
- LocalUserList local_users;
-
/** Oper list, a vector containing all local and remote opered users
*/
OperList all_opers;
/**
* Reset the already_sent IDs so we don't wrap it around and drop a message
- * Also removes all expired invites
*/
void GarbageCollect();
*/
void RemoveCloneCounts(User *user);
+ /** Rebuild clone counts
+ */
+ void RehashCloneCounts();
+
/** Return the number of local and global clones of this user
* @param user The user to get the clone counts for
* @return The clone counts of this user. The returned reference is volatile - you
*/
user_hash& GetUsers() { return clientlist; }
+ /** Get a list containing all local users
+ * @return A const list of local users
+ */
+ const LocalList& GetLocalUsers() const { return local_users; }
+
/** Send a server notice to all local users
* @param text The text format string to send
* @param ... The format arguments