The complete source code of IdealIRC http://www.idealirc.org/
 
 
 
 
idealirc/IRCClient/IRCMemberEntry.h

35 lines
846 B

/*
* 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 <memory>
#include <string>
class IRCMember;
class IRCBase;
class IRCMemberEntry
{
public:
IRCMemberEntry(std::shared_ptr<IRCMember> member, IRCBase& owner);
~IRCMemberEntry() = default;
[[nodiscard]] std::shared_ptr<IRCMember> member() const;
[[nodiscard]] const std::string& modes() const;
void addMode(char m);
void delMode(char m);
private:
std::shared_ptr<IRCMember> 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