00001
00002 #ifndef SENDS_USER_DATA_HH
00003 #define SENDS_USER_DATA_HH
00004 #include <string>
00005 #include <map>
00006
00007 namespace sends {
00008
00016 class user_data {
00017 public:
00018
00022 user_data(void) {}
00023
00030 user_data(const std::string& name, const std::string& pwd,
00031 long access=0);
00032
00036 ~user_data(void);
00037
00042 const std::string& user(void) const;
00043
00049 const std::string& passwd(void) const;
00050
00055 long access(void) const;
00056
00057 private:
00058 std::string mUserName;
00059 std::string mKeyWord;
00060 long mAccess;
00061 };
00062
00063
00064 inline const std::string&
00065 user_data::user(void) const {
00066 return mUserName;
00067 }
00068
00069 inline const std::string&
00070 user_data::passwd(void) const {
00071 return mKeyWord;
00072 }
00073
00074 inline long
00075 user_data::access(void) const {
00076 return mAccess;
00077 }
00078
00086 class user_list {
00087 public:
00090 typedef std::map<std::string, user_data> user_map;
00091
00094 typedef user_map::iterator user_iterator;
00095
00098 typedef user_map::const_iterator const_user_iterator;
00099 public:
00103 user_list(void);
00104
00108 ~user_list(void);
00109
00114 void readFile(const std::string& file);
00115
00123 const user_data& operator[](const std::string& name) const;
00124 private:
00125 user_map mUserMap;
00126 };
00127
00128 }
00129
00130 #endif // SENDS_USER_DATA_HH