]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/usermanager.h
Populate a Modes::ChangeList object in ModeParser::Process()
[user/henk/code/inspircd.git] / include / usermanager.h
index eb1d75e8d50b188621aa6e2b32889c6299724cc4..3671e8907e6de89101afa39d9581f15d39a9bb9d 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <list>
 
-class CoreExport UserManager
+class CoreExport UserManager : public fakederef<UserManager>
 {
  public:
        struct CloneCounts
@@ -35,6 +35,14 @@ class CoreExport UserManager
         */
        typedef std::map<irc::sockets::cidr_mask, CloneCounts> CloneMap;
 
+       /** Sequence container in which each element is a User*
+        */
+       typedef std::vector<User*> OperList;
+
+       /** A list holding local users
+       */
+       typedef insp::intrusive_list<LocalUser> LocalList;
+
  private:
        /** Map of IP addresses for clone counting
         */
@@ -44,6 +52,10 @@ class CoreExport UserManager
         */
        const CloneCounts zeroclonecounts;
 
+       /** Local client list, a list containing only local clients
+        */
+       LocalList local_users;
+
  public:
        /** Constructor, initializes variables
         */
@@ -62,13 +74,9 @@ class CoreExport UserManager
         */
        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
         */
-       std::list<User*> all_opers;
+       OperList all_opers;
 
        /** Number of unregistered users online right now.
         * (Unregistered means before USER/NICK/dns)
@@ -165,6 +173,11 @@ class CoreExport UserManager
         */
        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