]> git.ipfire.org Git - thirdparty/squid.git/blob - src/adaptation/DynamicGroupCfg.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / adaptation / DynamicGroupCfg.h
1 /*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 #ifndef SQUID_ADAPTATION__DYNAMIC_GROUP_CFG_H
10 #define SQUID_ADAPTATION__DYNAMIC_GROUP_CFG_H
11
12 #include "SquidString.h"
13
14 #include <vector>
15
16 namespace Adaptation
17 {
18
19 /// DynamicServiceGroup configuration to remember future dynamic chains
20 class DynamicGroupCfg
21 {
22 public:
23 typedef std::vector<String> Store;
24 typedef String Id;
25
26 Id id; ///< group id
27 Store services; ///< services in the group
28
29 bool empty() const { return services.empty(); } ///< no services added
30
31 /// configured service IDs in X-Next-Services value (comma-separated) format
32 const String &serviceIds() const { return id; }
33
34 void add(const String &item); ///< updates group id and services
35 void clear(); ///< makes the config empty
36 };
37
38 inline
39 std::ostream &operator <<(std::ostream &os, const DynamicGroupCfg &cfg)
40 {
41 return os << cfg.id;
42 }
43
44 } // namespace Adaptation
45
46 #endif /* SQUID_ADAPTATION__DYNAMIC_GROUP_CFG_H */
47