/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Channel.hpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: aortigos +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/05/08 16:41:40 by aortigos #+# #+# */ /* Updated: 2026/05/08 16:41:40 by aortigos ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef CHANNEL_HPP # define CHANNEL_HPP # include # include # include # include "../User/User.hpp" class Channel { private: std::string name_; std::set members_; std::set operators_; bool isInviteOnly_; std::set invitedMembers_; public: Channel(); Channel(std::string &name); Channel(const Channel &other); Channel& operator=(const Channel &other); ~Channel(); // Getters std::string getName() const; const std::set &getMembers() const; // Users void addMember(int fd); void removeMember(int fd); bool hasMember(int fd) const; // Operators void addOperator(int fd); void removeOperator(int fd); bool hasOperator(int fd) const; void broadcast(const std::string &msg, const std::map &clients, int excludedFd); // modes void setMode(std::string& mode, std::string& args); void inviteMember(const User& client); bool isInviteOnly() const; bool isInvited(int fd) const; }; #endif