From 3ffb95a12391eac5cf89549af9e790362fbfc075 Mon Sep 17 00:00:00 2001 From: brain Date: Tue, 26 Apr 2005 17:09:25 +0000 Subject: Commented new functions git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1198 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/channels.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/include/channels.h b/include/channels.h index 3f5c69dff..6080cda98 100644 --- a/include/channels.h +++ b/include/channels.h @@ -187,12 +187,50 @@ class chanrec : public Extensible */ std::string GetModeParameter(char mode); + /** Increment the channel "user counter" + * The channel user counter is a reference counter which + * holds the number of users on the channel. If it decremented + * to 0 then the channel is removed from the system. + */ void IncUserCounter(); + + /** Decrement the channel "user counter" + * The channel user counter is a reference counter which + * holds the number of users on the channel. If it decremented + * to 0 then the channel is removed from the system. + * Modules may alter the reference count to hold channels open + * which have no users and would normally be deleted once empty. + */ void DecUserCounter(); + + /** Obtain the channel "user counter" + * This returns the channel reference counter, which is initialized + * to 0 when the channel is created and incremented/decremented + * upon joins, parts quits and kicks. + */ long GetUserCounter(); + /** Add a user pointer to the internal reference list + * The data inserted into the reference list is a table as it is + * an arbitary pointer compared to other users by its memory address, + * as this is a very fast 32 or 64 bit integer comparison. + */ void AddUser(char* castuser); + + /** Delete a user pointer to the internal reference list + * The data removed from the reference list is a table as it is + * an arbitary pointer compared to other users by its memory address, + * as this is a very fast 32 or 64 bit integer comparison. + */ void DelUser(char* castuser); + + /** Obrain the internal reference list + * The internal reference list contains a list of userrec* + * cast to char*. These are used for rapid comparison to determine + * channel membership for PRIVMSG, NOTICE, QUIT, PART etc. + * The resulting pointer to the vector should be considered + * readonly and only modified via AddUser and DelUser. + */ std::vector *GetUsers(); /** Creates a channel record and initialises it with default values -- cgit v1.2.3