Main Page | Class Hierarchy | Class List | Directories | File List | Class Members

Db.h

00001 /* -*- Mode: C++; c-file-style: "stroustrup"; indent-tabs-mode: nil -*- */
00002 /*
00003  * Db.h
00004  *   Pure virtual base class for database interaction classes.
00005  *
00006  * $Id: Db.h,v 1.13 2003/04/24 04:44:56 benoit Exp $
00007  *
00008  * Copyright (c) 2000-2001 Remi Lefebvre <remi@debian.org>
00009  * Copyright (c) 2000 Benoit Joly <benoit@dhis.net>
00010  * Copyright (c) 2000 Luca Filipozzi <lfilipoz@dhis.net>
00011  *
00012  * DDT comes with ABSOLUTELY NO WARRANTY and is licenced under the
00013  * GNU General Public License (version 2 or later). This license
00014  * can be retrieved from http://www.gnu.org/copyleft/gnu.html.
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     /*********** userAccounts ***********/
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 //    virtual int dumpAccountInfo (int id) {};
00069 
00071 //    virtual void updateLastAccess(int id) = 0;
00072 
00073     virtual void getActiveAccounts() = 0;
00074 
00075     virtual int pruneActiveAccount(void (*func)(int, unsigned long, 
00076                                                 time_t)) = 0;
00077 
00078 
00079     /***********  dnsRecords *********/
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

Generated on Tue Sep 13 01:32:46 2005 for DDT Project by  doxygen 1.4.4