Files
plains/src/core/dns/include/Record.hpp
T
2021-04-11 15:06:50 +02:00

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