/home/matthew/data/programming/current/libircpp/mainuserlist.h

00001 /* 
00002  * libircpp++ mainuserlist.h
00003  */
00004 #ifndef __MAINUSERLIST_H__
00005 #define __MAINUSERLIST_H__
00006 
00007 #include <string>
00008 #include <boost/signal.hpp>
00009 #include "entity.h"
00010 #include "user.h"
00011 #include "irclist.h"
00012 
00013 namespace ircpp {
00014         class message;
00015 
00016         class mainuserlist
00017         {
00018                 /* Interface functions */
00019                 public:
00020                         /* Constructors and destructors */
00021                         mainuserlist(session& parent, listmode mode);
00022                         ~mainuserlist();
00023 
00024                         /* Data access functions */
00025                         user& find(const std::string& name) const;
00026                         user& add(const std::string& name);
00027                         irclist<user>::iterator begin() const;
00028                         irclist<user>::iterator end() const;
00029                         size_t count() const;
00030                         bool remove(user& u);
00031                         bool clear();
00032 
00033                         /* Slots */
00034                         void user_deletable_slot(entity& e);
00035                         void pre_names_slot(const message& msg);
00036                         void post_quit_slot(message& msg);
00037                         void user_deleting_slot(entity& u);
00038 
00039                 /* Private data */
00040                 private:
00041                         session& _s;
00042                         listmode _mode;
00043                         irclist<user> _list;
00044 
00045                         boost::signals::connection post_quit_connection;
00046         };
00047 
00048 } /* namespace ircpp */
00049 
00050 #endif /* __MAINUSERLIST_H__ */

Generated on Sat Oct 13 23:35:40 2007 for libircpp by  doxygen 1.5.3