cutelyst 5.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
validatorip.h
1/*
2 * SPDX-FileCopyrightText: (C) 2017-2025 Matthias Fehring <mf@huessenbergnetz.de>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#ifndef CUTELYSTVALIDATORIP_H
6#define CUTELYSTVALIDATORIP_H
7
8#include "validatorrule.h"
9
10namespace Cutelyst {
11
12class ValidatorIpPrivate;
13
34class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT ValidatorIp : public ValidatorRule
35{
36public:
41 NoConstraint = 0,
42 IPv4Only = 1,
43 IPv6Only = 2,
44 NoPrivateRange = 4,
46 NoReservedRange = 8,
48 NoMultiCast = 16,
49 PublicOnly = NoPrivateRange | NoReservedRange |
50 NoMultiCast
51 };
52 Q_DECLARE_FLAGS(Constraints, Constraint)
53
54
63 explicit ValidatorIp(const QString &field,
64 Constraints constraints = NoConstraint,
65 const ValidatorMessages &messages = {},
66 const QString &defValKey = {});
67
71 ~ValidatorIp() override;
72
80 static bool validate(const QString &value, Constraints constraints = NoConstraint);
81
82protected:
89 ValidatorReturnType validate(Context *c, const ParamsMultiMap &params) const override;
90
100 void validateCb(Context *c, const ParamsMultiMap &params, ValidatorRtFn cb) const override;
101
105 QString genericValidationError(Context *c,
106 const QVariant &errorData = QVariant()) const override;
107
108private:
109 Q_DECLARE_PRIVATE(ValidatorIp) // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast)
110 Q_DISABLE_COPY(ValidatorIp)
111};
112
113} // namespace Cutelyst
114
115Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::ValidatorIp::Constraints)
116
117#endif // CUTELYSTVALIDATORIP_H
The Cutelyst Context.
Definition context.h:42
Checks if the field value is a valid IP address.
Definition validatorip.h:35
Constraint
Acceptable address ranges.
Definition validatorip.h:40
Base class for all validator rules.
std::function< void(ValidatorReturnType &&result)> ValidatorRtFn
Void callback function for validator rules that processes the ValidatorReturnType.
The Cutelyst namespace holds all public Cutelyst API.
Stores custom error messages and the input field label.
Contains the result of a single input parameter validation.