]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/membership.h
Module API changes to use Membership* where sensible
[user/henk/code/inspircd.git] / include / membership.h
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
6  * See: http://wiki.inspircd.org/Credits
7  *
8  * This program is free but copyrighted software; see
9  *            the file COPYING for details.
10  *
11  * ---------------------------------------------------
12  */
13
14 #ifndef __MEMBERSHIP_H__
15 #define __MEMBERSHIP_H__
16
17 class User;
18 class Channel;
19
20 struct Membership : public Extensible
21 {
22         User* const user;
23         Channel* const chan;
24         // mode list, sorted by prefix rank, higest first
25         std::string modes;
26         Membership(User* u, Channel* c) : user(u), chan(c) {}
27         inline bool hasMode(char m) const
28         {
29                 return modes.find(m) != std::string::npos;
30         }
31         unsigned int getRank();
32 };
33
34 typedef std::map<User*, Membership*> UserMembList;
35 typedef UserMembList::iterator UserMembIter;
36 typedef UserMembList::const_iterator UserMembCIter;
37
38 typedef std::set<User*> CUList;
39
40 #endif