/* * IdealIRC Core - Internet Relay Chat API * Copyright (C) 2021 Tom-Andre Barstad. * This software is licensed under the Software Attribution License. * See LICENSE for more information. */ #ifndef IRCMEMBERENTRY_H #define IRCMEMBERENTRY_H #include #include class IRCMember; class IRCBase; class IRCMemberEntry { public: IRCMemberEntry(std::shared_ptr member, IRCBase& owner); ~IRCMemberEntry() = default; [[nodiscard]] std::shared_ptr member() const; [[nodiscard]] const std::string& modes() const; void addMode(char m); void delMode(char m); private: std::shared_ptr m_member; std::string m_modes; IRCBase* m_owner; // can't be reference since we store IRCMemberEntry in a vector, requiring assignment operator. }; #endif // IRCMEMBERENTRY_H