From 42b79aa5c591dde88e78922a519802f948d9ea60 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:42 +0200 Subject: tagging ychat-0.7.9.4 --- src/chat/room.cpp | 108 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 69 insertions(+), 39 deletions(-) (limited to 'src/chat/room.cpp') diff --git a/src/chat/room.cpp b/src/chat/room.cpp index b2f17f8..0e28c84 100755 --- a/src/chat/room.cpp +++ b/src/chat/room.cpp @@ -8,77 +8,107 @@ using namespace std; room::room( string s_name ) : name( s_name ) { - pthread_mutex_init( &mut_s_topic, NULL ); - p_logd = new logd( wrap::CONF->get_elem("chat.logging.roomlogdir") + get_lowercase_name(), - wrap::CONF->get_elem("chat.logging.roomloglines") ); - wrap::STAT->increment_num_rooms(); + pthread_mutex_init( &mut_s_topic, NULL ); +#ifdef LOGGING + + p_logd = new logd( wrap::CONF->get_elem("chat.logging.roomlogdir") + get_lowercase_name(), + wrap::CONF->get_elem("chat.logging.roomloglines") ); +#endif + + wrap::STAT->increment_num_rooms(); } room::~room() { - wrap::STAT->decrement_num_rooms(); + wrap::STAT->decrement_num_rooms(); - // Delete all user objects - run_func( mtools::delete_obj ); + // Delete all user objects + run_func( mtools::delete_obj ); - delete p_logd; +#ifdef LOGGING + + delete p_logd; +#endif - pthread_mutex_destroy( &mut_s_topic ); - pthread_mutex_destroy( &mut_s_name ); + pthread_mutex_destroy( &mut_s_topic ); + pthread_mutex_destroy( &mut_s_name ); } string room::get_topic() { - string s_ret; - pthread_mutex_lock ( &mut_s_topic ); - s_ret = s_topic; - pthread_mutex_unlock( &mut_s_topic ); - return s_ret; + string s_ret; + pthread_mutex_lock ( &mut_s_topic ); + s_ret = s_topic; + pthread_mutex_unlock( &mut_s_topic ); + return s_ret; +} + +void +room::set_topic( string s_topic ) +{ + pthread_mutex_lock ( &mut_s_topic ); + if ( s_topic == "" ) + this->s_topic = ""; + else + this->s_topic = s_topic + "

"; + pthread_mutex_unlock( &mut_s_topic ); + reload_onlineframe(); } void -room::set_topic( string s_topic) +room::set_topic( string s_topic, string s_color ) { - pthread_mutex_lock ( &mut_s_topic ); - this->s_topic = s_topic; - pthread_mutex_unlock( &mut_s_topic ); - reload_onlineframe(); + set_topic( "" + s_topic + ""); } void room::clean_room() { - pthread_mutex_lock ( &mut_s_topic ); - this->s_topic = ""; - pthread_mutex_unlock( &mut_s_topic ); - wrap::CHAT->del_elem( get_lowercase_name() ); - wrap::GCOL->add_room_to_garbage( this ); + pthread_mutex_lock ( &mut_s_topic ); + this->s_topic = ""; + pthread_mutex_unlock( &mut_s_topic ); + wrap::CHAT->del_elem( get_lowercase_name() ); + wrap::GCOL->add_room_to_garbage( this ); } void room::reload_onlineframe() { - string s_msg = "\n"; - msg_post( &s_msg ); + javascript_post("parent.online.location.reload();"); } -void +void room::set_name( string s_name ) { - if ( tool::to_lower(s_name) == get_lowercase_name() ) - { - name::set_name( s_name ); - return; - } + if ( tool::to_lower(s_name) == get_lowercase_name() ) + { + name::set_name( s_name ); + return; + } + +#ifdef LOGGING + p_logd->flush_logs(); +#endif + + if ( s_name == "" ) + return; + + name::set_name( s_name ); +#ifdef LOGGING - p_logd->flush_logs(); + p_logd->set_logfile( wrap::CONF->get_elem("chat.logging.roomlogdir"), get_lowercase_name() ); +#endif +} - if ( s_name == "" ) - return; +void +room::dumpit() +{ + dumpable::add("[room]"); + dumpable::add("Name: "+get_name()); + dumpable::add("Topic: "+get_topic()); + base::dumpit(); +} - name::set_name( s_name ); - p_logd->set_logfile( wrap::CONF->get_elem("chat.logging.roomlogdir"), get_lowercase_name() ); -} #endif -- cgit v1.2.3