11 #include <boost/lexical_cast.hpp>
21 + WWebWidget::escapeText(user_) +
" joined.</span>";
26 WWebWidget::escapeText(user_))
27 +
" logged out.</span>";
29 return "<span class='chat-info'>"
30 + ((user == data_ || user == user_) ?
32 (WWebWidget::escapeText(user_) +
" is"))
33 +
" now known as " + WWebWidget::escapeText(data_) +
".</span>";
37 result =
WString(
"<span class='")
41 +
"'>" + WWebWidget::escapeText(user_) +
":</span>";
44 = (format ==
XHTMLText ? message_ : WWebWidget::escapeText(message_));
46 if (message_.toUTF8().find(user.
toUTF8()) != std::string::npos)
47 return result +
"<span class='chat-highlight'>" + msg +
"</span>";
64 boost::recursive_mutex::scoped_lock lock(
mutex_);
69 clientInfo.
sessionId = WApplication::instance()->sessionId();
81 boost::recursive_mutex::scoped_lock lock(
mutex_);
88 boost::recursive_mutex::scoped_lock lock(
mutex_);
102 boost::recursive_mutex::scoped_lock lock(
mutex_);
104 UserSet::iterator i =
users_.find(user);
118 boost::recursive_mutex::scoped_lock lock(
mutex_);
120 UserSet::iterator i =
users_.find(user);
123 if (
users_.count(newUser) == 0) {
138 boost::recursive_mutex::scoped_lock lock(
mutex_);
140 for (
int i = 1;; ++i) {
141 std::string s =
"guest " + boost::lexical_cast<std::string>(i);
156 boost::recursive_mutex::scoped_lock lock(
mutex_);
172 if (app && app->
sessionId() == i->second.sessionId)
173 i->second.eventCallback(event);
176 boost::bind(i->second.eventCallback, event));
182 boost::recursive_mutex::scoped_lock lock(
mutex_);