class InspIRCd;
+typedef std::pair<char, unsigned int> prefixtype;
+typedef std::vector<prefixtype> pfxcontainer;
+typedef std::map<userrec*, std::vector<prefixtype> > prefixlist;
/** Holds all relevent information for a channel.
* This class represents a channel, and contains its name, modes, time created, topic, topic set time,
*/
static chanrec* ForceChan(InspIRCd* Instance, chanrec* Ptr,ucrec *a,userrec* user, int created);
+ prefixlist prefixes;
+
public:
/** The channels name.
*/
*/
void WriteAllExceptSender(userrec* user, char status, const std::string& text);
+ /** Returns the maximum number of bans allowed to be set on this channel
+ * @return The maximum number of bans allowed
+ */
long GetMaxBans();
+ /** Return the channel's modes with parameters.
+ * @param showkey If this is set to true, the actual key is shown,
+ * otherwise it is replaced with '<KEY>'
+ * @return The channel mode string
+ */
char* ChanModes(bool showkey);
+ /** Spool the NAMES list for this channel to the given user
+ * @param The user to spool the NAMES list to
+ */
void UserList(userrec *user);
+ /** Get the number of invisible users on this channel
+ * @return Number of invisible users
+ */
int CountInvisible();
+ /** Get a users status on this channel
+ * @param The user to look up
+ * @return One of STATUS_OP, STATUS_HOP, STATUS_VOICE, or zero.
+ */
+ int GetStatus(userrec *user);
+
+ /** Get a users status on this channel in a bitmask
+ * @param The user to look up
+ * @return A bitmask containing zero or more of STATUS_OP, STATUS_HOP, STATUS_VOICE
+ */
+ int GetStatusFlags(userrec *user);
+
+ /** Get a users status on this channel in a string
+ * @param The user to look up
+ * @return A character array containing the string "@", "%", "+" or ""
+ */
+ const char* GetStatusChar(userrec *user);
+
+ void RemoveAllPrefixes(userrec* user);
+
+ void SetPrefix(userrec* user, char prefix, unsigned int prefix_rank, bool adding);
+
/** Destructor for chanrec
*/
virtual ~chanrec() { /* stub */ }