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

Dns.h

00001 /* -*- Mode: C++; c-file-style: "stroustrup"; indent-tabs-mode: nil -*- */
00002 /*
00003  * Dns.h
00004  *   Abstract class for DNS backend.
00005  *
00006  * $Id: Dns.h,v 1.7 2001/01/21 19:50:04 rex Exp $
00007  *
00008  * Copyright (c) 2000-2001 Remi Lefebvre <remi@step.polymtl.ca>
00009  *
00010  * DDT comes with ABSOLUTELY NO WARRANTY and is licenced under the
00011  * GNU General Public License (version 2 or later). This license
00012  * can be retrieved from http://www.gnu.org/copyleft/gnu.html.
00013  *
00014  */
00015 
00016 #ifndef DNS_H
00017 #define DNS_H
00018 
00019 #ifdef HAVE_CONFIG_H
00020 #include "config.h"
00021 #endif
00022 
00023 #include "Logger.h"
00024 #include "Exception.h"
00025 #include "global.h"
00026 
00027 #include "DnsRecord.h"
00028 
00029 enum DnsRecordType {A, CNAME, NS, MX, ANY};
00030 
00035 class Dns
00036 {
00037   public:
00039     Dns(Logger *log);
00040 
00042     virtual ~Dns() { };
00043 
00045     virtual void addDnsRecord(int id, const char *dname, DnsRecordType type,
00046                               const char *data) = 0;
00048     virtual void delDnsRecords(char *dname) = 0;
00049     virtual void delDnsRecord(int id, const char *dname, DnsRecordType type,
00050                               const char *data) = 0;
00051 
00052     virtual void updateDnsRecord(int id, const char *dname, DnsRecordType type,
00053                                  const char *data) = 0;
00054 
00055   protected:
00057     Dns() { };
00058 
00059   private:
00060     Logger *log;
00061 };
00062 
00063 #endif // DNS_H

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