00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef DB_H
00019 #define DB_H
00020
00021 #include <vector>
00022 #include "global.h"
00023 #include "Dns.h"
00024 #include "Logger.h"
00025 #include "UserAccount.h"
00026 #include "DnsRecord.h"
00027
00031 class Db
00032 {
00033 public:
00035 Db() { };
00036
00038 virtual ~Db() { };
00039
00040
00041
00042
00044 virtual int addUserAccount(UserAccount *account) = 0;
00045
00047 virtual void delUserAccount(int id) = 0;
00048
00050 virtual bool accountIdExists(int id) = 0;
00051
00053 virtual void modUserAccount(int id, char *field, char *value) = 0;
00055 virtual void modUserAccount(int id, char *field, int value) = 0;
00056
00058 virtual bool fetchAccountInfo(int id, UserAccount *account) = 0;
00059
00061 virtual int findUserAccountIdFromFqdn(const char *fqdn) = 0;
00062
00064 virtual unsigned long fetchAcctAddr(int id) = 0;
00065
00066
00068
00069
00071
00072
00073 virtual void getActiveAccounts() = 0;
00074
00075 virtual int pruneActiveAccount(void (*func)(int, unsigned long,
00076 time_t)) = 0;
00077
00078
00079
00080
00082 virtual void addDnsRecord(int id, const char *dname, DnsRecordType type,
00083 const char *data) = 0;
00084
00086 virtual void delDnsRecords(int id) = 0;
00087
00089 virtual void delDnsRecord(int id, const char *dname, DnsRecordType type,
00090 const char *data) = 0;
00091
00092 virtual void listDnsRecords(int id, std::vector<DnsRecord> &dnsRecordList) = 0;
00093
00094 protected:
00096 Logger *log;
00097 };
00098
00099 #endif // DB_H