advgetopt 2.0.49
Parse complex command line arguments and configuration files in C++.
validator_keywords.cpp
Go to the documentation of this file.
1// Copyright (c) 2006-2025 Made to Order Software Corp. All Rights Reserved
2//
3// https://snapwebsites.org/project/advgetopt
4// contact@m2osw.com
5//
6// This program is free software; you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation; either version 2 of the License, or
9// (at your option) any later version.
10//
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15//
16// You should have received a copy of the GNU General Public License along
17// with this program; if not, write to the Free Software Foundation, Inc.,
18// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
28// self
29//
31
32
33// cppthread
34//
35#include <cppthread/log.h>
36
37
38// last include
39//
40#include <snapdev/poison.h>
41
42
43
44
45namespace advgetopt
46{
47
48
49
50namespace
51{
52
53
54
56 : public validator_factory
57{
58public:
60 {
61 validator::register_validator(*this);
62 }
63
64 virtual std::string get_name() const override
65 {
66 return std::string("keywords");
67 }
68
69 virtual std::shared_ptr<validator> create(string_list_t const & data) const override
70 {
71 return std::make_shared<validator_keywords>(data);
72 }
73};
74
76
77
78
79} // no name namespace
80
81
82
83
84
86{
87 if(keywords_list.empty())
88 {
89 cppthread::log << cppthread::log_level_t::error
90 << "validator_keywords() requires at least one parameter."
91 << cppthread::end;
92 return;
93 }
94
95 std::copy(
96 keywords_list.begin()
97 , keywords_list.end()
98 , std::inserter(f_keywords, f_keywords.begin()));
99}
100
101
108std::string validator_keywords::name() const
109{
110 return std::string("keywords");
111}
112
113
123bool validator_keywords::validate(std::string const & value) const
124{
125 return f_keywords.find(value) != f_keywords.end();
126}
127
128
129
130} // namespace advgetopt
131// vim: ts=4 sw=4 et
virtual std::shared_ptr< validator > create(string_list_t const &data) const override
virtual std::string name() const override
Return the name of this validator.
validator_keywords(string_list_t const &data)
virtual bool validate(std::string const &value) const override
Check the value against a list of keywords.
The advgetopt environment to parse command line options.
Definition version.h:37
constexpr flag_t option_flags_merge()
Definition flags.h:87
std::vector< std::string > string_list_t
Definition utils.h:41
Declaration of the keywords validator.

This document is part of the Snap! Websites Project.

Copyright by Made to Order Software Corp.