7 #ifndef SIMPLECHATSERVER_H_ 8 #define SIMPLECHATSERVER_H_ 10 #include <Wt/WSignal.h> 11 #include <Wt/WString.h> 34 enum Type { Login, Logout, Rename, Message };
42 const Wt::WString&
user()
const {
return user_; }
46 const Wt::WString&
message()
const {
return message_; }
50 const Wt::WString&
data()
const {
return data_; }
56 const Wt::WString formattedHTML(
const Wt::WString& user,
57 Wt::TextFormat format)
const;
68 ChatEvent(
const Wt::WString& user,
const Wt::WString& message)
69 : type_(Message), user_(user), message_(message)
73 const Wt::WString& data = Wt::WString::Empty)
74 : type_(type), user_(user), data_(data)
116 bool disconnect(
Client *client);
122 bool login(
const Wt::WString& user);
126 void logout(
const Wt::WString& user);
130 bool changeName(
const Wt::WString& user,
const Wt::WString& newUser);
134 Wt::WString suggestGuest();
138 void sendMessage(
const Wt::WString& user,
const Wt::WString& message);
161 void postChatEvent(
const ChatEvent& event);
166 #endif // SIMPLECHATSERVER_H_
Type type() const
Get the event type.
std::function< void(const ChatEvent &)> ChatEventCallback
std::map< Client *, ClientInfo > ClientMap
ChatEventCallback eventCallback
const Wt::WString & data() const
Get the extra data for this event.
Encapsulate a chat event.
std::set< Wt::WString > UserSet
Typedef for a collection of user names.
Type
Enumeration for the event type.
ChatEvent(const Wt::WString &user, const Wt::WString &message)
std::recursive_mutex mutex_
const Wt::WString & message() const
Get the message of the event.
ChatEvent(Type type, const Wt::WString &user, const Wt::WString &data=Wt::WString::Empty)
const Wt::WString & user() const
Get the user who caused the event.