00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _TMWSERV_CHATCHANNEL_H_
00023 #define _TMWSERV_CHATCHANNEL_H_
00024
00025 #include <string>
00026 #include <vector>
00027
00028 class ChatClient;
00029
00041 class ChatChannel
00042 {
00043 public:
00044 typedef std::vector< ChatClient * > ChannelUsers;
00045
00054 ChatChannel(int id,
00055 const std::string &name,
00056 const std::string &announcement = std::string(),
00057 const std::string &password = std::string(),
00058 bool joinable = true);
00059
00063 int getId() const
00064 { return mId; }
00065
00069 const std::string& getName() const
00070 { return mName; }
00071
00075 const std::string& getAnnouncement() const
00076 { return mAnnouncement; }
00077
00081 const std::string& getPassword() const
00082 { return mPassword; }
00083
00087 void setName(const std::string &channelName)
00088 { mName = channelName; }
00089
00093 void setAnnouncement(const std::string &channelAnnouncement)
00094 { mAnnouncement = channelAnnouncement; }
00095
00099 void setPassword(const std::string &channelPassword)
00100 { mPassword = channelPassword; }
00101
00105 const ChannelUsers& getUserList() const
00106 { return mRegisteredUsers; }
00107
00113 bool addUser(ChatClient *);
00114
00120 bool removeUser(ChatClient *);
00121
00125 void removeAllUsers();
00126
00130 bool canJoin() const;
00131
00135 void setUserMode(ChatClient *, unsigned char mode);
00136
00140 std::string getUserMode(ChatClient *);
00141
00142 private:
00143 unsigned short mId;
00144 std::string mName;
00145 std::string mAnnouncement;
00146 std::string mPassword;
00147 bool mJoinable;
00148 ChannelUsers mRegisteredUsers;
00149 std::string mOwner;
00150 };
00151
00152 #endif