The complete source code of IdealIRC
http://www.idealirc.org/
35 lines
846 B
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
|
|
|