ft_irc 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
Channel.hpp
[詳解]
1
17#ifndef CHANNEL_HPP
18#define CHANNEL_HPP
19
20#include <map>
21#include <string>
22
23class Client; // Forward declaration
24
25class Channel {
26 private:
27 std::string _name;
28 std::string _topic;
29 std::string _key; // For +k mode
30 unsigned int _limit; // For +l mode
33 std::map<int, Client *> _operators;
34 std::map<int, Client *> _invitedUsers; // For +i mode
35
36 public:
37 Channel(const std::string &name);
38 ~Channel();
39
40 // Member management
41 void addMember(Client *client);
42 void removeMember(Client *client);
43 void broadcast(const std::string &message, Client *excludeClient);
44 bool isMember(Client *client) const;
45
46 // Getters & Setters
47 const std::string &getName() const;
49 const std::string &getTopic() const;
50 void setTopic(const std::string &topic);
51
52 // Operator management
53 void addOperator(Client *client);
54 void removeOperator(Client *client);
55 bool isOperator(Client *client) const;
56
57 // Mode management
58 void setMode(char mode, bool value);
59 bool hasMode(char mode) const;
60 std::string getModes() const;
61
62 // Mode specific getters/setters
63 void setKey(const std::string &key);
64 bool checkKey(const std::string &key) const;
65 const std::string &getKey() const;
66
67 void setLimit(unsigned int limit);
68 unsigned int getLimit() const;
69
70 void addInvitedUser(Client *client);
71 void removeInvitedUser(Client *client);
72 bool isInvitedUser(Client *client) const;
73};
74
75#endif
チャンネルのメンバーと状態を管理するクラス。
Definition Channel.hpp:25
void setMode(char mode, bool value)
Definition Channel.cpp:53
void addMember(Client *client)
Definition Channel.cpp:30
const std::map< int, Client * > & getMembers() const
Definition Channel.cpp:24
unsigned int getLimit() const
Definition Channel.cpp:85
std::string getModes() const
Definition Channel.cpp:67
const std::string & getName() const
Definition Channel.cpp:22
~Channel()
Definition Channel.cpp:20
bool hasMode(char mode) const
Definition Channel.cpp:59
bool isMember(Client *client) const
Definition Channel.cpp:37
void setTopic(const std::string &topic)
Definition Channel.cpp:28
void addInvitedUser(Client *client)
Definition Channel.cpp:87
void setLimit(unsigned int limit)
Definition Channel.cpp:83
void removeOperator(Client *client)
Definition Channel.cpp:49
void addOperator(Client *client)
Definition Channel.cpp:47
bool isInvitedUser(Client *client) const
Definition Channel.cpp:91
const std::string & getKey() const
Definition Channel.cpp:81
void broadcast(const std::string &message, Client *excludeClient)
Definition Channel.cpp:39
bool isOperator(Client *client) const
Definition Channel.cpp:51
void removeMember(Client *client)
Definition Channel.cpp:32
bool checkKey(const std::string &key) const
Definition Channel.cpp:79
void setKey(const std::string &key)
Definition Channel.cpp:77
void removeInvitedUser(Client *client)
Definition Channel.cpp:89
const std::string & getTopic() const
Definition Channel.cpp:26
Represents an IRC client connected to the server.
Definition Client.hpp:25