Files
ft_irc/Channel/Channel.hpp
2026-05-17 13:44:55 +02:00

59 lines
1.7 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* Channel.hpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: aortigos <aortigos@student.42malaga.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 <iostream>
# include <set>
# include <map>
# include "../User/User.hpp"
class Channel
{
private:
std::string name_;
std::set<int> members_;
std::set<int> operators_;
public:
Channel();
Channel(std::string &name);
Channel(const Channel &other);
Channel& operator=(const Channel &other);
~Channel();
// Getters
std::string getName() const;
const std::set<int> &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, std::map<int, User> &clients, int excludedFd);
};
#endif