NetworkManagerQt

setting.h
1 /*
2  SPDX-FileCopyrightText: 2012-2019 Jan Grulich <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 
7 #ifndef NETWORKMANAGERQT_SETTING_H
8 #define NETWORKMANAGERQT_SETTING_H
9 
10 #include <networkmanagerqt/networkmanagerqt_export.h>
11 
12 #include "generictypes.h"
13 
14 #undef signals
15 #include <libnm/NetworkManager.h>
16 #define signals Q_SIGNALS
17 
18 #include <QSharedPointer>
19 #include <QStringList>
20 #include <QVariantMap>
21 
22 namespace NetworkManager
23 {
24 class SettingPrivate;
25 
26 /**
27  * Base class for all kinds of setting
28  */
29 class NETWORKMANAGERQT_EXPORT Setting
30 {
31 public:
33  typedef QList<Ptr> List;
34  enum SettingType {
35  Adsl,
36  Cdma,
37  Gsm,
38  Infiniband,
39  Ipv4,
40  Ipv6,
41  Ppp,
42  Pppoe,
43  Security8021x,
44  Serial,
45  Vpn,
46  Wired,
47  Wireless,
48  WirelessSecurity,
49  Bluetooth,
50  OlpcMesh,
51  Vlan,
52  Wimax,
53  Bond,
54  Bridge,
55  BridgePort,
56  Team,
57  Generic,
58  Tun,
59  Vxlan,
60  IpTunnel,
61  Proxy,
62  User,
63  OvsBridge,
64  OvsInterface,
65  OvsPatch,
66  OvsPort,
67  Match,
68  Tc,
69  TeamPort,
70  Macsec,
71  Dcb,
72  WireGuard,
73  };
74 
75  enum SecretFlagType {
76  None = 0,
77  AgentOwned = 0x01,
78  NotSaved = 0x02,
79  NotRequired = 0x04,
80  };
81  Q_DECLARE_FLAGS(SecretFlags, SecretFlagType)
82 
83  enum MacAddressRandomization {
84  MacAddressRandomizationDefault = 0,
85  MacAddressRandomizationNever,
86  MacAddressRandomizationAlways,
87  };
88 
89  static QString typeAsString(SettingType type);
90  static SettingType typeFromString(const QString &type);
91 
92  explicit Setting(SettingType type);
93  explicit Setting(const Ptr &setting);
94  virtual ~Setting();
95 
96  /**
97  * @brief Must be reimplemented, default implementation does nothing
98  */
99  virtual void fromMap(const QVariantMap &map);
100 
101  /**
102  * @brief Must be reimplemented, default implementationd does nothing
103  */
104  virtual QVariantMap toMap() const;
105 
106  virtual void secretsFromMap(const QVariantMap &map);
107 
108  /**
109  * @brief secretsFromStringMap is a convenience function
110  * to set the secrets from a map of strings.
111  * @param map to extract secrets from
112  */
113  virtual void secretsFromStringMap(const NMStringMap &map);
114 
115  virtual QVariantMap secretsToMap() const;
116 
117  /**
118  * @brief secretsToStringMap is a convenience function
119  * to get the secrets to map of strings.
120  * @return string map with current secrets
121  */
122  virtual NMStringMap secretsToStringMap() const;
123 
124  virtual QStringList needSecrets(bool requestNew = false) const;
125 
126  /**
127  * @brief Must be reimplemented, default implementationd does nothing
128  */
129  virtual QString name() const;
130 
131  void setInitialized(bool initialized);
132 
133  bool isNull() const;
134 
135  void setType(SettingType type);
136  SettingType type() const;
137 
138 protected:
139  SettingPrivate *d_ptr;
140 
141 private:
142  Q_DECLARE_PRIVATE(Setting)
143 };
144 Q_DECLARE_OPERATORS_FOR_FLAGS(Setting::SecretFlags)
145 
146 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const Setting &setting);
147 
148 }
149 
150 #endif // NETWORKMANAGERQT_SETTING_H
KCALENDARCORE_EXPORT QDataStream & operator<<(QDataStream &out, const KCalendarCore::Alarm::Ptr &)
This class allows querying the underlying system to discover the available network interfaces and rea...
Definition: accesspoint.h:20
Base class for all kinds of setting.
Definition: setting.h:29
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Thu Sep 21 2023 03:59:36 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.