#ifndef RECORD_HPP #define RECORD_HPP #include #include "Resource.hpp" #include #include 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