#ifndef CHANNEL_HPP # define CHANNEL_HPP # include # include class Channel { private: std::string _name; std::string _topic; std::string _key; std::vector _members; std::vector _operators; std::vector _invited; bool _inviteOnly; bool _topicRestricted; size_t _userLimit; public: Channel(void); explicit Channel(const std::string &name); Channel(const Channel &other); Channel &operator=(const Channel &other); ~Channel(void); const std::string &getName(void) const; const std::string &getTopic(void) const; const std::string &getKey(void) const; size_t getUserLimit(void) const; bool isInviteOnly(void) const; bool isTopicRestricted(void) const; void setTopic(const std::string &topic); void setKey(const std::string &key); void setUserLimit(size_t limit); void setInviteOnly(bool val); void setTopicRestricted(bool val); bool hasMember(int fd) const; bool isOperator(int fd) const; bool isInvited(int fd) const; void addMember(int fd); void removeMember(int fd); void addOperator(int fd); void removeOperator(int fd); void addInvited(int fd); void removeInvited(int fd); const std::vector &getMembers(void) const; size_t memberCount(void) const; }; #endif