diff options
Diffstat (limited to 'src/irc/irc_user.hpp')
-rw-r--r-- | src/irc/irc_user.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/irc/irc_user.hpp b/src/irc/irc_user.hpp new file mode 100644 index 0000000..c84030e --- /dev/null +++ b/src/irc/irc_user.hpp @@ -0,0 +1,33 @@ +#pragma once + + +#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); + + IrcUser(const IrcUser&) = delete; + IrcUser(IrcUser&&) = delete; + IrcUser& operator=(const IrcUser&) = delete; + IrcUser& operator=(IrcUser&&) = delete; + + 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; +}; + + |