#ifndef CHANNEL_HPP #define CHANNEL_HPP #include #include #include #include // Include for the send function #include // Include for the strlen function #include #include #include #include #include #include #include #include "Client.hpp" #include #include #include class Channel { private: std::string Channelname; std::string topic; std::string key; std::string pass; int limite; std::map userFdMap; // Mapping of usernames to file descriptors std::map invitedUsers; std::map operators; int opperatorfd; bool issettop; bool isinveted; bool channelconnect; public: Channel(); Channel(const std::string& name); ~Channel(); void setTopic(const std::string& newTopic); std::string getTopic() const; //checks void setoperator(int value); int getoperator(); //check void setlimitchannel(int value); int getlimitechannel(); //checks void setbooltopic(bool value); bool getbooltopic(); //checks void setboolinvited(bool value); bool getboolinvited(); void addClient(const std::string& client, int fd); void addClientinveted(const std::string& client, int fd); void addOperator(const std::string& operatorName, int fd); int getUserFd(const std::string& username) const; bool isUserInChannel(const std::string& nickname) const; std::vector getClients() const; std::string getNickname(int fd) const; bool isOperator(int fd); bool isInvited(std::string nickname); int findUserFdForKickRegulars(const std::string& username); void ejectUserfromusers(int fd); void ejectUserfromivited(std::string nickname); std::string getOperatorNickname(int fd) const; void removeOperator(const std::string& operatorName ); void setPass(const std::string &Newpass) { pass = Newpass; } std::string getPass() { return pass; } }; #endif