~singpolyma/biboumi

ref: e840704b58a984351971e8034e74f5e9fdfaf114 biboumi/src/irc/irc_user.hpp -rw-r--r-- 779 bytes
e840704b — Florent Le Coz Convert received modes into roles and affiliations 9 years ago
                                                                                
bf7b05ef Florent Le Coz
e840704b Florent Le Coz
bf7b05ef Florent Le Coz
acf769d8 Florent Le Coz
bf7b05ef Florent Le Coz
acf769d8 Florent Le Coz
bf7b05ef Florent Le Coz
e840704b Florent Le Coz
bf7b05ef Florent Le Coz
acf769d8 Florent Le Coz
bf7b05ef Florent Le Coz
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