summaryrefslogtreecommitdiff
path: root/ychat-0.8.2/src/chat/gcol.h
diff options
context:
space:
mode:
Diffstat (limited to 'ychat-0.8.2/src/chat/gcol.h')
-rwxr-xr-xychat-0.8.2/src/chat/gcol.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/ychat-0.8.2/src/chat/gcol.h b/ychat-0.8.2/src/chat/gcol.h
new file mode 100755
index 0000000..d1fcde3
--- /dev/null
+++ b/ychat-0.8.2/src/chat/gcol.h
@@ -0,0 +1,43 @@
+// garbage collector
+#include "../incl.h"
+
+#ifndef GCOL_H
+#define GCOL_H
+
+#include <vector>
+#include "room.h"
+#include "user.h"
+#include "../maps/shashmap.h"
+
+using namespace std;
+
+class gcol
+{
+private:
+ vector<room*> vec_rooms;
+ shashmap<user*>* p_map_users;
+
+ pthread_mutex_t mut_vec_rooms;
+
+ static void delete_users_( user* user_obj );
+
+#ifdef NCURSES
+
+ void print_garbage( );
+#endif
+
+public:
+ gcol();
+ ~gcol();
+
+ bool remove_garbage();
+ void add_room_to_garbage( room* p_room );
+ void add_user_to_garbage( user* p_user );
+ virtual room* get_room_from_garbage();
+ virtual room* get_room_from_garbage_or_new( string s_room );
+ user* get_user_from_garbage( string s_user );
+ virtual void lock_mutex();
+ virtual void unlock_mutex();
+};
+
+#endif