summaryrefslogtreecommitdiff
path: root/ychat-0.7.9.2/src/chat/room.h
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2013-04-06 13:14:41 +0200
committerPaul Buetow <paul@buetow.org>2013-04-06 13:14:41 +0200
commit9cd3ccffd5372dfde3af478e3f832f18db4be3f1 (patch)
tree631c295a4a4a16b57502b847626763a279bf6df7 /ychat-0.7.9.2/src/chat/room.h
parent13aaf70af703748fe096e0664c305cd202637ad2 (diff)
tagging tags
Diffstat (limited to 'ychat-0.7.9.2/src/chat/room.h')
-rwxr-xr-xychat-0.7.9.2/src/chat/room.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/ychat-0.7.9.2/src/chat/room.h b/ychat-0.7.9.2/src/chat/room.h
new file mode 100755
index 0000000..4c5fac6
--- /dev/null
+++ b/ychat-0.7.9.2/src/chat/room.h
@@ -0,0 +1,93 @@
+// class room declaration.
+
+#include "../incl.h"
+#include "../wrap.h"
+
+#ifndef ROOM_H
+#define ROOM_H
+
+#include "base.h"
+#include "../name.h"
+#include "user.h"
+#include "../tool/tool.h"
+#include "../logd.h"
+
+using namespace std;
+
+class room : public base<user>, public name
+{
+private:
+ string s_topic;
+ pthread_mutex_t mut_s_topic;
+#ifdef LOGGING
+
+ logd* p_logd;
+#endif
+
+ void dumpit();
+
+public:
+ room( string s_name );
+ ~room();
+
+ virtual void reload_onlineframe();
+
+ void add_user( user* p_user )
+ {
+ add_elem( p_user );
+ p_user->set_p_room( this );
+ reload_onlineframe();
+ }
+
+ user* get_user( string &s_name, bool &b_found )
+ {
+ return static_cast<user*>( get_elem( s_name, b_found ) );
+ }
+
+ void del_elem( string &s_name )
+ {
+ base<user>::del_elem( s_name );
+
+ if ( base<user>::size() == 0 )
+ clean_room();
+
+ else
+ reload_onlineframe();
+ }
+
+ void msg_post( string s_msg )
+ {
+ msg_post( &s_msg );
+ }
+
+ void msg_post( string *p_msg )
+ {
+#ifdef LOGGING
+ p_logd->log_simple_line( logd::remove_html_tags(*p_msg) );
+#endif
+
+ base<user>::msg_post( p_msg );
+ }
+
+ void javascript_post( string s_msg )
+ {
+ string s_js = "<script language=\"JavaScript\">"+s_msg+"</script>\n";
+ base<user>::msg_post( &s_js );
+ }
+
+ string get_bold_name()
+ {
+ return "<b>" + get_name() + "</b>";
+ }
+
+ virtual void set_name( string s_name );
+ string get_topic();
+ void set_topic( string s_topic );
+ void set_topic( string s_topic, string s_color );
+ void clean_room();
+
+
+
+};
+
+#endif