blob: d3397cab3692efe484e26f9921b67fd444157cdc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#ifndef IRC_USER_INCLUDED
# define IRC_USER_INCLUDED
#include <vector>
#include <string>
#include <map>
#include <set>
/**
* Keeps various information about one IRC channel user
*/
class IrcUser
{
public:
explicit IrcUser(const std::string& name,
const std::map<char, char>& prefix_to_mode);
explicit IrcUser(const std::string& name);
void add_mode(const char mode);
void remove_mode(const char mode);
char get_most_significant_mode(const std::vector<char>& sorted_user_modes) const;
std::string nick;
std::string host;
std::set<char> modes;
private:
IrcUser(const IrcUser&) = delete;
IrcUser(IrcUser&&) = delete;
IrcUser& operator=(const IrcUser&) = delete;
IrcUser& operator=(IrcUser&&) = delete;
};
#endif // IRC_USER_INCLUDED
|