summaryrefslogtreecommitdiff
path: root/src/chat/gcol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat/gcol.cpp')
-rwxr-xr-xsrc/chat/gcol.cpp161
1 files changed, 86 insertions, 75 deletions
diff --git a/src/chat/gcol.cpp b/src/chat/gcol.cpp
index 3731eb0..d4c9416 100755
--- a/src/chat/gcol.cpp
+++ b/src/chat/gcol.cpp
@@ -7,130 +7,141 @@ using namespace std;
gcol::gcol()
{
- pthread_mutex_init( &mut_vec_rooms , NULL);
+ pthread_mutex_init( &mut_vec_rooms , NULL);
- p_map_users = new shashmap<user*>;
- wrap::system_message( GARBAGE );
+ p_map_users = new shashmap<user*>;
+ wrap::system_message( GARBAGE );
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
}
gcol::~gcol()
{
- remove_garbage();
- pthread_mutex_destroy( &mut_vec_rooms );
- delete p_map_users;
+ remove_garbage();
+ pthread_mutex_destroy( &mut_vec_rooms );
+ delete p_map_users;
}
void
gcol::add_room_to_garbage( room* p_room )
-{
- pthread_mutex_lock ( &mut_vec_rooms );
- vec_rooms.push_back( p_room );
- pthread_mutex_unlock( &mut_vec_rooms );
- wrap::system_message( GARROOM + p_room->get_name() );
+{
+ pthread_mutex_lock ( &mut_vec_rooms );
+ vec_rooms.push_back( p_room );
+ pthread_mutex_unlock( &mut_vec_rooms );
+ wrap::system_message( GARROOM + p_room->get_name() );
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
}
void
gcol::add_user_to_garbage( user* p_user )
-{
- p_user->s_mess_delete();
- p_map_users->add_elem( p_user, tool::to_lower(p_user->get_name()) );
- wrap::system_message( GARUSER + p_user->get_name() );
+{
+ p_user->s_mess_delete();
+ p_map_users->add_elem( p_user, tool::to_lower(p_user->get_name()) );
+ wrap::system_message( GARUSER + p_user->get_name() );
+ p_user->destroy_session();
+
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
}
bool
gcol::remove_garbage()
{
- bool b_empty;
+ bool b_empty;
- pthread_mutex_lock ( &mut_vec_rooms );
- b_empty = ( vec_rooms.empty() && p_map_users->size() == 0);
- pthread_mutex_unlock( &mut_vec_rooms );
+ pthread_mutex_lock ( &mut_vec_rooms );
+ b_empty = ( vec_rooms.empty() && p_map_users->size() == 0);
+ pthread_mutex_unlock( &mut_vec_rooms );
- if ( b_empty )
- return false;
+ if ( b_empty )
+ return false;
- wrap::system_message( GARBACT );
+ wrap::system_message( GARBACT );
- pthread_mutex_lock ( &mut_vec_rooms );
- for ( vector<room*>::iterator iter = vec_rooms.begin();
- iter != vec_rooms.end(); iter++ )
- {
- wrap::system_message( REMROOM + (*iter)->get_name() );
- delete *iter;
- }
- vec_rooms.clear();
- pthread_mutex_unlock( &mut_vec_rooms );
+ pthread_mutex_lock ( &mut_vec_rooms );
+ for ( vector<room*>::iterator iter = vec_rooms.begin();
+ iter != vec_rooms.end(); iter++ )
+ {
+ wrap::system_message( REMROOM + (*iter)->get_name() );
+ delete *iter;
+ }
+ vec_rooms.clear();
+ pthread_mutex_unlock( &mut_vec_rooms );
- p_map_users->run_func( delete_users_ );
- p_map_users->clear();
+ p_map_users->run_func( delete_users_ );
+ p_map_users->clear();
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
- return true;
+
+ return true;
}
room*
gcol::get_room_from_garbage()
{
- pthread_mutex_lock ( &mut_vec_rooms );
+ pthread_mutex_lock ( &mut_vec_rooms );
- if ( vec_rooms.empty() )
- {
- pthread_mutex_unlock( &mut_vec_rooms );
- return NULL;
- }
+ if ( vec_rooms.empty() )
+ {
+ pthread_mutex_unlock( &mut_vec_rooms );
+ return NULL;
+ }
- room* p_room = vec_rooms.back();
- vec_rooms.pop_back();
- pthread_mutex_unlock( &mut_vec_rooms );
+ room* p_room = vec_rooms.back();
+ vec_rooms.pop_back();
+ pthread_mutex_unlock( &mut_vec_rooms );
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
- return p_room;
+ return p_room;
}
room*
gcol::get_room_from_garbage_or_new( string s_room )
{
- room* p_room = get_room_from_garbage();
- if ( p_room == NULL )
- return new room( s_room );
- p_room->set_name( s_room );
- return p_room;
+ room* p_room = get_room_from_garbage();
+ if ( p_room == NULL )
+ return new room( s_room );
+ p_room->set_name( s_room );
+ return p_room;
}
user*
gcol::get_user_from_garbage( string s_user )
{
- user* p_user = p_map_users->get_elem( tool::to_lower(s_user) );;
+ user* p_user = p_map_users->get_elem( tool::to_lower(s_user) );
+ ;
- if ( p_user != NULL )
+ if ( p_user != NULL )
{
- p_map_users->del_elem( tool::to_lower(s_user) );
- p_user->set_name( s_user );
- p_user->set_online( true );
- p_user->set_invisible( false );
- p_user->renew_timeout();
- wrap::system_message(GARUSE2 + p_user->get_name() );
+ p_map_users->del_elem( tool::to_lower(s_user) );
+ p_user->set_name( s_user );
+ p_user->set_online( true );
+ p_user->set_invisible( false );
+ p_user->renew_timeout();
+ wrap::system_message(GARUSE2 + p_user->get_name() );
#ifdef NCURSES
- print_garbage();
+
+ print_garbage();
#endif
+
}
return p_user;
@@ -139,34 +150,34 @@ gcol::get_user_from_garbage( string s_user )
void
gcol::delete_users_( user *user_obj )
{
- wrap::system_message( REMUSER + user_obj->get_name() );
- user_obj->clean();
- delete user_obj;
+ wrap::system_message( REMUSER + user_obj->get_name() );
+ user_obj->clean();
+ delete user_obj;
}
void
gcol::lock_mutex()
{
- pthread_mutex_lock ( &mut_vec_rooms );
+ pthread_mutex_lock ( &mut_vec_rooms );
}
void
gcol::unlock_mutex()
{
- pthread_mutex_unlock ( &mut_vec_rooms );
+ pthread_mutex_unlock ( &mut_vec_rooms );
}
#ifdef NCURSES
void
gcol::print_garbage( )
{
- if ( wrap::NCUR->is_ready() )
- {
- pthread_mutex_lock ( &mut_vec_rooms );
- mvprintw( NCUR_GARBAGE_X,NCUR_GARBAGE_Y, "Garbage: %d ", p_map_users->size() + vec_rooms.size() );
- pthread_mutex_unlock( &mut_vec_rooms );
- refresh();
- }
+ if ( wrap::NCUR->is_ready() )
+ {
+ pthread_mutex_lock ( &mut_vec_rooms );
+ mvprintw( NCUR_GARBAGE_X,NCUR_GARBAGE_Y, "Garbage: %d ", p_map_users->size() + vec_rooms.size() );
+ pthread_mutex_unlock( &mut_vec_rooms );
+ refresh();
+ }
}
#endif