23 #include "addressfilter.h"
25 bool AddressFilter::contains(
const QPair<QHostAddress, int> &subnet)
const
27 return subnets.contains(subnet);
30 bool AddressFilter::isEmpty()
const
32 return subnets.isEmpty();
37 if (subnets.isEmpty())
40 for (
const auto &subnet : subnets)
42 if (address.isInSubnet(subnet))
48 AddressFilter &AddressFilter::operator<<(const QPair<QHostAddress, int> &subnet)
50 subnets.append(subnet);
54 bool AddressFilter::operator==(
const AddressFilter &other)
const
56 return subnets == other.subnets;
59 bool AddressFilter::operator!=(
const AddressFilter &other)
const
61 return subnets != other.subnets;
64 AddressFilter AddressFilter::deserialize(
const QVariant &variant)
68 QVariantList subnetsVariantList = variant.toList();
69 for (
const QVariant &subnetVariant : subnetsVariantList)
71 QVariantMap subnetVariantMap = subnetVariant.toMap();
72 QPair<QHostAddress, int> subnet;
73 subnet.first = QHostAddress(subnetVariantMap[
"address"].
toString());
74 subnet.second = subnetVariantMap[
"mask"].toInt();
75 if (!subnet.first.isNull())
82 QVariant AddressFilter::serialize()
const
85 for (
const auto &subnet : subnets)
88 pair[
"address"] = subnet.first.toString();
89 pair[
"mask"] = subnet.second;
98 for (
const auto &subnet : subnets)
100 tokens << QString(
"%1/%2").arg(subnet.first.toString()).arg(subnet.second);
102 return tokens.join(
",");