summaryrefslogtreecommitdiff
path: root/ychat-0.7.1/src/chat/chat.h
diff options
context:
space:
mode:
Diffstat (limited to 'ychat-0.7.1/src/chat/chat.h')
-rwxr-xr-xychat-0.7.1/src/chat/chat.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/ychat-0.7.1/src/chat/chat.h b/ychat-0.7.1/src/chat/chat.h
new file mode 100755
index 0000000..c37bebc
--- /dev/null
+++ b/ychat-0.7.1/src/chat/chat.h
@@ -0,0 +1,61 @@
+// class chat declaration.
+
+class chat;
+
+#ifndef CHAT_H
+#define CHAT_H
+
+#include <vector>
+#include "../incl.h"
+#include "base.h"
+#include "perm.h"
+#include "room.h"
+#include "user.h"
+#include "sess.h"
+#include "../tool/tool.h"
+
+using namespace std;
+
+
+#undef chat
+class chat : public base<room>, public perm
+{
+private:
+ map_string map_replace_strings;
+ vector<string> vec_replace_keys;
+
+public:
+ virtual room* get_room( string s_name )
+ {
+ bool b_bool;
+ return get_room( s_name, b_bool );
+ }
+
+ virtual room* get_room( string &s_name, bool &b_found )
+ {
+ return static_cast<room*>( get_elem( s_name, b_found ) );
+ }
+
+ // public methods:
+ explicit chat(); // a standard constructor.
+ ~chat(); // destructor.
+
+ // get the object of a specific user.
+ user* get_user( string &s_nick );
+ user* get_user( string &s_nick, bool &b_found );
+ static void get_user_( room* room_obj, void *v_arg );
+
+ // will be called every time a user tries to login.
+ void login( map_string &map_params );
+
+ // will be called if a user posts a message.
+ void post ( user* u_user, map_string &map_params );
+
+ void del_elem( string s_name )
+ {
+ smap<room*,string>::del_elem( s_name );
+ }
+
+ void reconf();
+};
+#endif