00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __CORE_ACCESS_H__
00032 #define __CORE_ACCESS_H__
00033
00034 #include "global.h"
00035
00036 namespace tacpp {
00037
00043 class Acl_entry {
00046 string permit_;
00049 string deny_;
00052 pthread_mutex_t Mutex_;
00055 void lock();
00058 void unlock();
00059 public:
00062 string getPermit();
00065 void setPermit(const string);
00068 string getDeny();
00071 void setDeny(const string);
00074 bool checkPermit(const string);
00077 bool checkDeny(const string);
00080 Acl_entry(const string,const string);
00083 ~Acl_entry();
00084 };
00085
00091 class Acl_data {
00094 list<Acl_entry*> acl_;
00097 pthread_mutex_t Mutex_;
00100 void lock();
00103 void unlock();
00106 int number_;
00107 public:
00110 int getNumber();
00113 Acl_data(const int);
00116 ~Acl_data();
00119 bool check(const char*);
00122 string buildcfstr();
00125 bool add_permit(const char*);
00128 bool add_deny(const char*);
00131 bool del_permit(const char*);
00134 bool del_deny(const char*);
00135 };
00136
00142 class CoreAccess : public Core_data {
00145 list<Acl_data*> acl_;
00148 pthread_mutex_t Mutex_;
00151 void lock();
00154 void unlock();
00155 public:
00158 CoreAccess(const string,const string);
00161 ~CoreAccess();
00164 bool add_permit(int,const char*);
00167 bool add_deny(int,const char*);
00170 void add(int);
00173 bool del(int);
00176 bool del_permit(int,const char*);
00179 bool del_deny(int,const char*);
00182 bool check(int,const char*);
00185 string buildcfstr(int);
00188 string applycf(char * const*mask,const string cmdname,const list<string>paramList,Command * cmd=NULL)throw (CmdErr);
00189 };
00190
00191 };
00192
00193 #endif // __CORE_ACCESS_H__