42 #ifndef _DWMIPV4COUNTRYDB_HH_ 43 #define _DWMIPV4COUNTRYDB_HH_ 50 #include "DwmIpv4Prefix.hh" 52 #include "DwmReadable.hh" 53 #include "DwmWritable.hh" 54 #include "DwmTimeValue64.hh" 64 :
public Dwm::Readable,
public Dwm::Writable,
65 public GZReadable,
public GZWritable,
66 public BZ2Readable,
public BZ2Writable
78 const TimeValue64 & lastChanged,
79 const TimeValue64 & lastUpdated = TimeValue64(
true));
89 const std::string &
Code()
const;
94 const std::string &
Code(
const std::string code);
104 const TimeValue64 &
LastUpdated(
const TimeValue64 & lastUpdated);
117 const TimeValue64 &
LastChanged(
const TimeValue64 & lastUpdated);
122 std::istream &
Read(std::istream & is);
128 ssize_t
Read(
int fd);
134 size_t Read(FILE * f);
140 int Read(gzFile gzf);
151 std::ostream &
Write(std::ostream & os)
const;
157 ssize_t
Write(
int fd)
const;
163 size_t Write(FILE *f)
const;
169 int Write(gzFile gzf)
const;
175 int BZWrite(BZFILE *bzf)
const;
188 Json::Value Json()
const;
192 std::tuple<std::string,TimeValue64,TimeValue64> _data;
206 Ipv4CountryDb(
const std::string & fn =
"/usr/local/etc/ipv4country.db");
225 void PrintJson(std::ostream & os)
const;
227 void CreateCountryAggregates();
229 std::vector<Ipv4Prefix>
230 PrefixesForCountries(
const std::vector<std::string> & countries);
232 std::vector<Ipv4Prefix>
233 PrefixesForCountries(
const std::string & regExpression,
234 bool minimalSet =
true);
236 void AggregateAdjacents();
239 std::string _filename;
241 void CreateCountryAggregates(uint8_t maslken);
242 static void CoalesceAdjacentPrefixes(std::vector<Ipv4Prefix> & vp);
243 static void CoalesceContainedPrefixes(std::vector<Ipv4Prefix> & vp);
248 #endif // _DWMIPV4COUNTRYDB_HH_ Ipv4CountryDbValue()
Default constructor.
const std::string & Code() const
Returns the country code.
std::ostream & Write(std::ostream &os) const
Writes the value to an ostream. Returns the ostream.
const TimeValue64 & LastChanged() const
Returns the last-changed timestamp.
Encapsulates a database to map Ipv4Prefix to Ipv4CountryDbValue.
Definition: DwmIpv4CountryDb.hh:198
uint32_t StreamedLength() const
Returns the number of bytes that would be written if one of the Write() members were called...
const TimeValue64 & LastUpdated() const
Returns the last-updated timestamp.
Dwm::RDAP::Ipv4Routes class template definition.
Dwm::RDAP::Response class definition.
Encapsulate an RDAP ip query response.
Definition: DwmRDAPResponse.hh:70
Encapsulates a value stored in a Ipv4CountryDb.
Definition: DwmIpv4CountryDb.hh:63
This template class provides an associative container keyed by IPv4 addresses, with longest-match sea...
Definition: DwmRDAPIpv4Routes.hh:83
Definition: DwmCountryCode.hh:53
int BZWrite(BZFILE *bzf) const
Writes the value to a BZFILE.
int BZRead(BZFILE *bzf)
Reads the value from a BZFILE.
std::istream & Read(std::istream &is)
Reads the value from an istream. Returns the istream.
bool operator==(const Ipv4CountryDbValue &val) const
operator ==