]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/sortlist.hh
Merge pull request #2945 from cmouse/geoip-interpolation
[thirdparty/pdns.git] / pdns / sortlist.hh
1 #pragma once
2 #include "iputils.hh"
3 #include "dnsrecords.hh"
4
5 struct SortListOrder
6 {
7 NetmaskTree<int> d_orders;
8 };
9
10
11 struct SortListOrderCmp
12 {
13 SortListOrderCmp(SortListOrder slo) : d_slo(slo) {}
14 bool operator()(const ComboAddress& a, const ComboAddress& b) const;
15 bool operator()(const DNSRecord& a, const DNSRecord& b) const;
16 const SortListOrder d_slo;
17 };
18
19 class SortList {
20 public:
21 void clear();
22 void addEntry(const Netmask& covers, const Netmask& answermask, int order=-1);
23 int getMaxOrder(const Netmask& formask) const;
24 std::unique_ptr<SortListOrderCmp> getOrderCmp(const ComboAddress& who);
25 private:
26
27 NetmaskTree<SortListOrder> d_sortlist;
28 };