79 lines
2.9 KiB
C++
79 lines
2.9 KiB
C++
#ifndef RECORD_HPP
|
|
#define RECORD_HPP
|
|
#include <cstdint>
|
|
#include "Resource.hpp"
|
|
#include <iostream>
|
|
#include <sstream>
|
|
|
|
namespace Plains {
|
|
namespace Core {
|
|
namespace DNS {
|
|
|
|
using std::ostream;
|
|
using std::stringbuf;
|
|
|
|
// Provides an abstract class for dns records that may be stored in the database
|
|
class Record : public Resource
|
|
{
|
|
public:
|
|
const uint16_t _id;
|
|
ostream& operator>>(Serializable& object);
|
|
Record(const uint16_t id);
|
|
|
|
private:
|
|
stringbuf _sb;
|
|
ostream* _os;
|
|
};
|
|
|
|
class ARecord : public Record { ARecord(); };
|
|
class AAAARecord : public Record { AAAARecord(); };
|
|
class AFSDBRecord : public Record { AFSDBRecord(); };
|
|
class APLRecord : public Record { APLRecord(); };
|
|
class CAARecord : public Record { CAARecord(); };
|
|
class CDNSKEYRecord : public Record { CDNSKEYRecord(); };
|
|
class CDSRecord : public Record { CDSRecord(); };
|
|
class CERTRecord : public Record { CERTRecord(); };
|
|
class CNAMERecord : public Record { CNAMERecord(); };
|
|
class CSYNCRecord : public Record { CSYNCRecord(); };
|
|
class DHCIDRecord : public Record { DHCIDRecord(); };
|
|
class DLVRecord : public Record { DLVRecord(); };
|
|
class DNAMERecord : public Record { DNAMERecord(); };
|
|
class DNSKEYRecord : public Record { DNSKEYRecord(); };
|
|
class DSRecord : public Record { DSRecord(); };
|
|
class EUI48Record : public Record { EUI48Record(); };
|
|
class EUI64Record : public Record { EUI64Record(); };
|
|
class HINFORecord : public Record { HINFORecord(); };
|
|
class HIPRecord : public Record { HIPRecord(); };
|
|
class IPSECKEYRecord : public Record { IPSECKEYRecord(); };
|
|
class KEYRecord : public Record { KEYRecord(); };
|
|
class KXRecord : public Record { KXRecord(); };
|
|
class LOCRecord : public Record { LOCRecord(); };
|
|
class MXRecord : public Record { MXRecord(); };
|
|
class NAPTRRecord : public Record { NAPTRRecord(); };
|
|
class NSRecord : public Record { NSRecord(); };
|
|
class NSECRecord : public Record { NSECRecord(); };
|
|
class NSEC3Record : public Record { NSEC3Record(); };
|
|
class NSEC3PARAMRecord : public Record { NSEC3PARAMRecord(); };
|
|
class OPENPGPKEYRecord : public Record { OPENPGPKEYRecord(); };
|
|
class PTRRecord : public Record { PTRRecord(); };
|
|
class RRSIGRecord : public Record { RRSIGRecord(); };
|
|
class RPRecord : public Record { RPRecord(); };
|
|
class SIGRecord : public Record { SIGRecord(); };
|
|
class SMIMEARecord : public Record { SMIMEARecord(); };
|
|
class SOARecord : public Record { SOARecord(); };
|
|
class SRVRecord : public Record { SRVRecord(); };
|
|
class SSHFPRecord : public Record { SSHFPRecord(); };
|
|
class TARecord : public Record { TARecord(); };
|
|
class TKEYRecord : public Record { TKEYRecord(); };
|
|
class TLSARecord : public Record { TLSARecord(); };
|
|
class TSIGRecord : public Record { TSIGRecord(); };
|
|
class TXTRecord : public Record { TXTRecord(); };
|
|
class URIRecord : public Record { URIRecord(); };
|
|
class ZONEMDRecord : public Record { ZONEMDRecord(); };
|
|
class SVCBRecord : public Record { SVCBRecord(); };
|
|
class HTTPSRecord : public Record { HTTPSRecord(); };
|
|
|
|
|
|
}}}
|
|
#endif
|