summaryrefslogtreecommitdiffstats
path: root/tdecore/tdehw/tdenetworkconnections.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/tdehw/tdenetworkconnections.h')
-rw-r--r--tdecore/tdehw/tdenetworkconnections.h1596
1 files changed, 1596 insertions, 0 deletions
diff --git a/tdecore/tdehw/tdenetworkconnections.h b/tdecore/tdehw/tdenetworkconnections.h
new file mode 100644
index 000000000..b8425196a
--- /dev/null
+++ b/tdecore/tdehw/tdenetworkconnections.h
@@ -0,0 +1,1596 @@
+/* This file is part of the TDE libraries
+ Copyright (C) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+#ifndef _TDENETWORKCONNECTIONS_H
+#define _TDENETWORKCONNECTIONS_H
+
+// TDE includes
+#include <tqobject.h>
+#include <tqstring.h>
+#include <tqptrlist.h>
+#include <tqdatetime.h>
+#include <tqstringlist.h>
+#include <tqhostaddress.h>
+#include "kiconloader.h"
+#include "tdelibs_export.h"
+
+#define CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(x) \
+ inline x operator|(x a, x b) \
+ { \
+ return static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
+ } \
+ \
+ inline x operator&(x a, x b) \
+ { \
+ return static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
+ } \
+ \
+ inline x operator~(x a) \
+ { \
+ return static_cast<x>(~static_cast<int>(a)); \
+ } \
+ \
+ inline x &operator|=(x& a, const x& b) \
+ { \
+ a = static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
+ return a; \
+ } \
+ \
+ inline x &operator&=(x& a, const x& b) \
+ { \
+ a = static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
+ return a; \
+ }
+
+class TDENetworkDevice;
+
+typedef TQValueList<TQ_UINT8> TDENetworkByteList;
+typedef TQValueList<TQHostAddress> TDENetworkAddressList;
+typedef TQMap<TQString, TQString> TDENetworkSettingsMap;
+typedef TQMap<TQ_UINT32, TQ_UINT32> TDENetworkPriorityMap;
+
+namespace TDENetworkDeviceType {
+ enum TDENetworkDeviceType {
+ BackendOnly,
+ WiredEthernet,
+ WiFi,
+ Bluetooth,
+ OLPCMesh,
+ WiMax,
+ Modem,
+ Infiniband,
+ Bond,
+ VLAN,
+ ADSL,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkConnectionType {
+ enum TDENetworkConnectionType {
+ WiredEthernet,
+ WiFi,
+ Bluetooth,
+ OLPCMesh,
+ WiMax,
+ Modem,
+ Infiniband,
+ Bond,
+ VLAN,
+ ADSL,
+ VPN,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkConnectionErrorFlags {
+ enum TDENetworkConnectionErrorFlags {
+ NoError = 0x00000000,
+ InvalidConnectionSetting = 0x00000001,
+ InvalidIPv4Setting = 0x00000002,
+ InvalidIPv6Setting = 0x00000004,
+ InvalidEAPSetting = 0x00000008,
+ InvalidEAPKey = 0x00000010,
+ InvalidWirelessSetting = 0x00000020,
+ InvalidWirelessKey = 0x00000040
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionErrorFlags)
+};
+
+typedef TQMap<TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags, TQString> TDENetworkErrorStringMap;
+
+namespace TDENetworkInfinibandTransportMode {
+ enum TDENetworkInfinibandTransportMode {
+ Datagram,
+ Connected,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDEWiFiMode {
+ enum TDEWiFiMode {
+ AdHoc,
+ Infrastructure,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDEWiFiFrequencyBand {
+ enum TDEWiFiFrequencyBand {
+ None,
+ Band2_4GHz,
+ Band5GHz,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDEBluetoothConnectionType {
+ enum TDEBluetoothConnectionType {
+ DUN,
+ PAN,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDEModemConnectionType {
+ enum TDEModemConnectionType {
+ CDMA,
+ GSM,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDEGSMNetworkType {
+ enum TDEGSMNetworkType {
+ Any,
+ Only3G,
+ GPRSEdge,
+ Prefer3G,
+ Prefer2G,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkParity {
+ enum TDENetworkParity {
+ None,
+ Even,
+ Odd,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkSlaveDeviceType {
+ enum TDENetworkSlaveDeviceType {
+ None,
+ Bond,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkGlobalEventType {
+ enum TDENetworkGlobalEventType {
+ ConnectionListChanged,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkVPNEventType {
+ enum TDENetworkVPNEventType {
+ LoginBanner,
+ Failure,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkDeviceEventType {
+ enum TDENetworkDeviceEventType {
+ BitRateChanged,
+ Failure,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkAPEventType {
+ enum TDENetworkAPEventType {
+ Discovered,
+ Lost,
+ SignalStrengthChanged,
+ AccessPointChanged,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkGlobalManagerFlags {
+ enum TDENetworkGlobalManagerFlags {
+ Unknown = 0x00000000,
+ Disconnected = 0x00000001,
+ Connected = 0x00000002,
+ EstablishingLink = 0x00000004,
+ DeactivatingLink = 0x00000008,
+ LinkLocalAccess = 0x00000010,
+ SiteLocalAccess = 0x00000020,
+ GlobalAccess = 0x00000040,
+ Sleeping = 0x00000080,
+ BackendUnavailable = 0x00000100,
+ VPNUnknown = 0x00000200,
+ VPNEstablishingLink = 0x00000400,
+ VPNNeedAuthorization = 0x00000800,
+ VPNConfiguringProtocols = 0x00001000,
+ VPNVerifyingProtocols = 0x00002000,
+ VPNConnected = 0x00004000,
+ VPNFailed = 0x00008000,
+ VPNDisconnected = 0x00010000,
+ GlobalMask = 0x000001ff,
+ VPNMask = 0x0001fe00
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkGlobalManagerFlags)
+};
+
+namespace TDENetworkDeviceCapabilityFlags {
+ enum TDENetworkDeviceCapabilityFlags {
+ None = 0x00000000,
+ Supported = 0x00000001,
+ CanDetectLink = 0x00000002
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkDeviceCapabilityFlags)
+};
+
+namespace TDENetworkPPPFlags {
+ enum TDENetworkPPPFlags {
+ None = 0x00000000,
+ DisableEAP = 0x00000001,
+ DisablePAP = 0x00000002,
+ DisableCHAP = 0x00000004,
+ DisableMSCHAP = 0x00000008,
+ DisableMSCHAPv2 = 0x00000010,
+ AllowBSDCompression = 0x00000020,
+ AllowDeflateCompression = 0x00000040,
+ AllowVJCompression = 0x00000080,
+ RequireMPPE = 0x00000100,
+ RequireMPPE128 = 0x00000200,
+ StatefulMPPE = 0x00000400,
+ UseHardwareFlowControl = 0x00000800
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPPPFlags)
+};
+
+namespace TDENetworkWiFiAPFlags {
+ enum TDENetworkWiFiAPFlags {
+ None = 0x00000000,
+ PrivacySupport = 0x00000001,
+ PairWEP40 = 0x00000002,
+ PairWEP104 = 0x00000004,
+ PairTKIP = 0x00000008,
+ PairCCMP = 0x00000010,
+ GroupWEP40 = 0x00000020,
+ GroupWEP104 = 0x00000040,
+ GroupTKIP = 0x00000080,
+ GroupCCMP = 0x00000100,
+ KeyManagementPSK = 0x00000200,
+ KeyManagement80211 = 0x00000400,
+ GeneralFlagsMask = 0x00000001,
+ EncryptionFlagsMask = 0xfffffffe
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiAPFlags)
+};
+
+namespace TDENetworkWiFiClientFlags {
+ enum TDENetworkWiFiClientFlags {
+ None = 0x00000000,
+ CipherWEP40 = 0x00000002,
+ CipherWEP104 = 0x00000004,
+ CipherTKIP = 0x00000008,
+ CipherCCMP = 0x00000010,
+ CipherWPA = 0x00000020,
+ CipherRSN = 0x00000040
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiClientFlags)
+};
+
+namespace TDENetworkVPNType {
+ enum TDENetworkVPNType {
+ OpenVPN,
+ PPTP,
+ StrongSwan,
+ VPNC,
+ Other,
+ Last = Other
+ };
+};
+
+typedef TQValueList<TDENetworkVPNType::TDENetworkVPNType> TDENetworkVPNTypeList;
+
+namespace TDENetworkWiFiConnectionCipher {
+ enum TDENetworkWiFiConnectionCipher {
+ None,
+ CipherWEP40,
+ CipherWEP104,
+ CipherTKIP,
+ CipherCCMP,
+ CipherWPA,
+ CipherRSN,
+ Any
+ };
+};
+
+typedef TQValueList<TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher> TDENetworkWiFiConnectionCipherList;
+
+namespace TDENetworkWepKeyType {
+ enum TDENetworkWepKeyType {
+ Hexadecimal,
+ Ascii,
+ Passphrase
+ };
+};
+
+namespace TDENetworkVLANFlags {
+ enum TDENetworkVLANFlags {
+ None = 0x00000000,
+ ReorderPacketHeaders = 0x00000001,
+ UseGVRP = 0x00000002,
+ LooseBinding = 0x00000004
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkVLANFlags)
+};
+
+namespace TDENetworkWiFiKeyType {
+ enum TDENetworkWiFiKeyType {
+ WEP,
+ DynamicWEP,
+ WPAAdHoc,
+ WPAInfrastructure,
+ WPAEnterprise,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkWiFiAuthType {
+ enum TDENetworkWiFiAuthType {
+ Open,
+ Shared,
+ LEAP,
+ Other,
+ Last = Other
+ };
+};
+
+namespace TDENetworkIEEE8021xType {
+ enum TDENetworkIEEE8021xType {
+ None,
+ LEAP,
+ MD5,
+ PAP,
+ CHAP,
+ MSCHAP,
+ MSCHAPV2,
+ Fast,
+ PSK,
+ PAX,
+ SAKE,
+ GPSK,
+ TLS,
+ PEAP,
+ TTLS,
+ SIM,
+ GTC,
+ OTP
+ };
+};
+
+typedef TQValueList<TDENetworkIEEE8021xType::TDENetworkIEEE8021xType> TDENetworkIEEE8021xTypeList;
+
+namespace TDENetworkIEEE8021xFastFlags {
+ enum TDENetworkIEEE8021xFastFlags {
+ None = 0x00000000,
+ AllowUnauthenticated = 0x00000001,
+ AllowAuthenticated = 0x00000002
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIEEE8021xFastFlags)
+};
+
+namespace TDENetworkWiFiWPAVersionFlags {
+ enum TDENetworkWiFiWPAVersionFlags {
+ None = 0x00000000,
+ WPA = 0x00000001,
+ RSN = 0x00000002,
+ Any = 0x00000003
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiWPAVersionFlags)
+};
+
+namespace TDENetworkPasswordHandlingFlags {
+ enum TDENetworkPasswordHandlingFlags {
+ None = 0x00000000,
+ NoSave = 0x00000001,
+ NoPrompt = 0x00000002,
+ ExternalStorage = 0x00000004
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPasswordHandlingFlags)
+};
+
+namespace TDENetworkConnectionStatus {
+ enum TDENetworkConnectionStatus {
+ None = 0x00000000,
+ Invalid = 0x00000001,
+ Disconnected = 0x00000002,
+ Connected = 0x00000004,
+ LinkUnavailable = 0x00000008,
+ EstablishingLink = 0x00000010,
+ DeactivatingLink = 0x00000020,
+ ConfiguringProtocols = 0x00000040,
+ Reconnecting = 0x00000080,
+ LinkLost = 0x00000100,
+ LinkLocalAccess = 0x00000200,
+ SiteLocalAccess = 0x00000400,
+ GlobalAccess = 0x00000800,
+ UnManaged = 0x00001000,
+ NeedAuthorization = 0x00002000,
+ Failed = 0x00004000,
+ VerifyingProtocols = 0x00008000,
+ DependencyWait = 0x00010000
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionStatus)
+};
+
+namespace TDENetworkIPConfigurationFlags {
+ enum TDENetworkIPConfigurationFlags {
+ None = 0x00000000,
+ IPV4DHCPIP = 0x00000001,
+ IPV4DHCPDNS = 0x00000002,
+ IPV4DHCPRoutes = 0x00000004,
+ IPV4LocalOnly = 0x00000008,
+ IPV4StartConnectionSharingServer = 0x00000010,
+ IPV4Disabled = 0x00000020,
+ IPV4MayUseAsDefaultRoute = 0x00000040,
+ IPV6DHCPIP = 0x00000080,
+ IPV6DHCPDNS = 0x00000100,
+ IPV6DHCPRoutes = 0x00000200,
+ IPV6LocalOnly = 0x00000400,
+ IPV6StartConnectionSharingServer = 0x00000800,
+ IPV6Disabled = 0x00001000,
+ IPV6MayUseAsDefaultRoute = 0x00002000
+ };
+
+ CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIPConfigurationFlags)
+};
+
+class TDECORE_EXPORT TDENetworkSearchDomain
+{
+ public:
+ TDENetworkSearchDomain();
+ TDENetworkSearchDomain(TQString domain, bool ipv6=false);
+ ~TDENetworkSearchDomain();
+
+ TQString searchDomain();
+ void setSearchDomain(TQString domain, bool ipv6=false);
+
+ bool isIPv4();
+ bool isIPv6();
+
+ private:
+ TQString m_domain;
+ bool m_isIPV6;
+};
+
+typedef TQValueList<TDENetworkSearchDomain> TDENetworkSearchDomainList;
+
+class TDECORE_EXPORT TDENetMask
+{
+ public:
+ TDENetMask();
+ TDENetMask(TQ_UINT32 netmask);
+ TDENetMask(TQ_UINT8* netmask);
+ ~TDENetMask();
+
+ void fromCIDRMask(unsigned char mask, bool ipv6=false);
+ unsigned char toCIDRMask();
+ void fromString(TQString mask);
+ TQString toString();
+
+ bool isIPv4();
+ bool isIPv6();
+
+ private:
+ TQ_UINT32 m_ipv4NetMask;
+ TQHostAddress m_ipv6NetMask;
+ bool m_isIPV6;
+};
+
+class TDECORE_EXPORT TDEMACAddress
+{
+ public:
+ TDEMACAddress();
+ TDEMACAddress(TDENetworkByteList address);
+ ~TDEMACAddress();
+
+ TDENetworkByteList address();
+ void setAddress(TDENetworkByteList address);
+ TQString toString();
+ void fromString(TQString address);
+ bool isValid();
+
+ private:
+ bool m_isValid;
+ TDENetworkByteList m_macAddress;
+
+ friend bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
+ friend bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
+};
+
+TDECORE_EXPORT bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
+TDECORE_EXPORT bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
+
+typedef TQValueList<TDEMACAddress> TDEMACAddressList;
+
+class TDECORE_EXPORT TDENetworkSingleIPConfiguration
+{
+ public:
+ TDENetworkSingleIPConfiguration();
+ ~TDENetworkSingleIPConfiguration();
+
+ bool isIPv4();
+ bool isIPv6();
+
+ public:
+ bool valid;
+ TQHostAddress ipAddress;
+ TDENetMask networkMask;
+ TQHostAddress gateway;
+};
+
+typedef TQValueList<TDENetworkSingleIPConfiguration> TDENetworkSingleIPConfigurationList;
+
+class TDECORE_EXPORT TDENetworkSingleRouteConfiguration
+{
+ public:
+ TDENetworkSingleRouteConfiguration();
+ ~TDENetworkSingleRouteConfiguration();
+
+ bool isIPv4();
+ bool isIPv6();
+
+ public:
+ bool valid;
+ TQHostAddress ipAddress;
+ TDENetMask networkMask;
+ TQHostAddress gateway;
+ TQ_UINT32 metric;
+};
+
+typedef TQValueList<TDENetworkSingleRouteConfiguration> TDENetworkSingleRouteConfigurationList;
+
+class TDECORE_EXPORT TDENetworkIEEE8021xConfiguration
+{
+ public:
+ TDENetworkIEEE8021xConfiguration();
+ ~TDENetworkIEEE8021xConfiguration();
+
+ public:
+ bool valid;
+ bool allowedValid;
+ bool secretsValid;
+ TDENetworkIEEE8021xType::TDENetworkIEEE8021xType type;
+ TQString userName;
+ TQString anonymousUserName;
+ TQString pacFileName;
+ TQByteArray caCertificate;
+ TQString additionalCAFilesPath;
+ TQString authServerCertSubjectMatch;
+ TQStringList alternateAuthServerCertSubjectMatch;
+ TQByteArray clientCertificate;
+ TQString forcePEAPVersion;
+ TQString forcePEAPLabel;
+ TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags fastProvisioningFlags;
+ TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2NonEAPAuthMethod;
+ TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2EAPAuthMethod;
+ TDENetworkIEEE8021xTypeList allowedPhase2NonEAPMethods;
+ TDENetworkIEEE8021xTypeList allowedPhase2EAPMethods;
+ TQByteArray phase2CaCertificate;
+ TQString phase2CaFilesPath;
+ TQString phase2AuthServerCertSubjectMatch;
+ TQStringList phase2AlternateAuthServerCertSubjectMatch;
+ TQByteArray phase2ClientCertificate;
+ TQString password;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
+ TQByteArray binaryPassword;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags binaryPasswordFlags;
+ TQByteArray privateKey;
+ TQString privateKeyPassword;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags privateKeyPasswordFlags;
+ TQByteArray phase2PrivateKey;
+ TQString phase2PrivateKeyPassword;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags phase2PrivateKeyPasswordFlags;
+ bool forceSystemCaCertificates;
+};
+
+class TDECORE_EXPORT TDENetworkPPPConfiguration
+{
+ public:
+ TDENetworkPPPConfiguration();
+ virtual ~TDENetworkPPPConfiguration();
+
+ public:
+ bool valid;
+ bool requireServerAuthentication;
+ TDENetworkPPPFlags::TDENetworkPPPFlags flags;
+ TQ_UINT32 baudRate;
+ TQ_UINT32 mru;
+ TQ_UINT32 mtu;
+ TQ_UINT32 lcpEchoPingInterval;
+ TQ_UINT32 lcpEchoFailureThreshold;
+};
+
+class TDECORE_EXPORT TDENetworkPPPOEConfiguration
+{
+ public:
+ TDENetworkPPPOEConfiguration();
+ virtual ~TDENetworkPPPOEConfiguration();
+
+ public:
+ bool valid;
+ bool secretsValid;
+ TQString networkServiceProvider;
+ TQString username;
+ TQString password;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
+};
+
+class TDECORE_EXPORT TDENetworkSerialConfiguration
+{
+ public:
+ TDENetworkSerialConfiguration();
+ virtual ~TDENetworkSerialConfiguration();
+
+ public:
+ bool valid;
+ TQ_UINT32 baudRate;
+ TQ_UINT32 byteWidth;
+ TDENetworkParity::TDENetworkParity parity;
+ TQ_UINT32 stopBits;
+ TQ_UINT64 txDelay;
+};
+
+class TDECORE_EXPORT TDENetworkCDMAConfiguration
+{
+ public:
+ TDENetworkCDMAConfiguration();
+ virtual ~TDENetworkCDMAConfiguration();
+
+ public:
+ bool valid;
+ bool secretsValid;
+ TQString providerDataNumber;
+ TQString username;
+ TQString password;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
+};
+
+class TDECORE_EXPORT TDENetworkGSMConfiguration
+{
+ public:
+ TDENetworkGSMConfiguration();
+ virtual ~TDENetworkGSMConfiguration();
+
+ public:
+ bool valid;
+ bool secretsValid;
+ TQString providerDataNumber;
+ TQString username;
+ TQString password;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
+ TQString accessPointName;
+ TQString networkID;
+ TDEGSMNetworkType::TDEGSMNetworkType networkType;
+ TQString pin;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pinFlags;
+ TQ_UINT32 allowedFrequencyBands;
+ bool allowRoaming;
+};
+
+
+class TDENetworkWiFiSecurityConfiguration
+{
+ public:
+ TDENetworkWiFiSecurityConfiguration();
+ ~TDENetworkWiFiSecurityConfiguration();
+
+ public:
+ bool valid;
+ bool secretsValid;
+ TDENetworkWiFiKeyType::TDENetworkWiFiKeyType keyType;
+ TDENetworkWiFiAuthType::TDENetworkWiFiAuthType authType;
+ TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags wpaVersion;
+ TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher;
+ TQString wepKey0;
+ TQString wepKey1;
+ TQString wepKey2;
+ TQString wepKey3;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags wepKeyFlags;
+ TQ_UINT32 wepKeyIndex;
+ TDENetworkWepKeyType::TDENetworkWepKeyType wepKeyType;
+ TDENetworkWiFiConnectionCipherList allowedPairWiseCiphers;
+ TDENetworkWiFiConnectionCipherList allowedGroupWiseCiphers;
+ TQString psk;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pskFlags;
+ TQString leapUsername;
+ TQString leapPassword;
+ TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags leapPasswordFlags;
+};
+
+class TDECORE_EXPORT TDENetworkIPConfiguration
+{
+ public:
+ TDENetworkIPConfiguration();
+ ~TDENetworkIPConfiguration();
+
+ public:
+ bool valid;
+ TDENetworkIPConfigurationFlags::TDENetworkIPConfigurationFlags connectionFlags;
+ TDENetworkSingleIPConfigurationList ipConfigurations;
+ TDENetworkSingleRouteConfigurationList routeConfigurations;
+ TQHostAddress broadcast;
+ TQHostAddress destination;
+ TDENetworkAddressList resolvers;
+ TDENetworkSearchDomainList searchDomains;
+ TQString dhcpClientIdentifier;
+};
+
+class TDECORE_EXPORT TDENetworkWiFiDeviceInfo
+{
+ public:
+ TDENetworkWiFiDeviceInfo();
+ ~TDENetworkWiFiDeviceInfo();
+
+ public:
+ bool valid;
+ TDEMACAddress hwAddress;
+ TDEMACAddress permanentHWAddress;
+ TDEWiFiMode::TDEWiFiMode operatingMode;
+ unsigned int bitrate;
+ TDEMACAddress activeAccessPointBSSID;
+ TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags wirelessFlags;
+};
+
+class TDECORE_EXPORT TDENetworkDeviceInformation
+{
+ public:
+ TDENetworkDeviceInformation();
+ ~TDENetworkDeviceInformation();
+
+ public:
+ bool valid;
+ TDENetworkConnectionStatus::TDENetworkConnectionStatus statusFlags;
+ TQString UUID;
+ TQString backendDriver;
+ TQString backendDriverVersion;
+ TQString firmwareVersion;
+ TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags capabilityFlags;
+ TDENetworkIPConfiguration ipConfiguration;
+ bool managed;
+ bool autoConnect;
+ bool firmwareMissing;
+ TDENetworkDeviceType::TDENetworkDeviceType deviceType;
+ TQString activeConnectionUUID;
+ TDENetworkWiFiDeviceInfo wiFiInfo;
+};
+
+class TDECORE_EXPORT TDENetworkHWNeighbor
+{
+ public:
+ TDENetworkHWNeighbor();
+ virtual ~TDENetworkHWNeighbor();
+
+ public:
+ bool valid;
+};
+
+class TDECORE_EXPORT TDENetworkWiFiAPInfo : public TDENetworkHWNeighbor
+{
+ public:
+ TDENetworkWiFiAPInfo();
+ virtual ~TDENetworkWiFiAPInfo();
+
+ public:
+ TQString friendlySSID() const;
+
+ public:
+ TQByteArray SSID;
+ TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags wpaFlags;
+ TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags rsnFlags;
+ unsigned int frequency;
+ TDEMACAddress BSSID;
+ unsigned int maxBitrate;
+ double signalQuality;
+};
+
+typedef TQPtrList< TDENetworkHWNeighbor > TDENetworkHWNeighborList;
+
+class TDECORE_EXPORT TDENetworkConnection
+{
+ public:
+ TDENetworkConnection();
+ virtual ~TDENetworkConnection();
+
+ public:
+ TDENetworkConnectionType::TDENetworkConnectionType type();
+
+ public:
+ TQString UUID;
+ TQString friendlyName;
+ TDENetworkIPConfiguration ipConfig;
+ TDEMACAddress lockedHWAddress;
+ TDEMACAddress manualHWAddress;
+ bool readOnly;
+ bool autoConnect;
+ bool fullDuplex;
+ bool requireIPV4;
+ bool requireIPV6;
+ TQ_UINT32 mtu;
+ TDENetworkIEEE8021xConfiguration eapConfig;
+ TDENetworkPPPConfiguration pppConfig;
+ TDENetworkPPPOEConfiguration pppoeConfig;
+ TDENetworkSerialConfiguration serialConfig;
+ TQStringList authorizedUsers;
+ TQString masterConnectionUUID;
+ TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slaveType;
+ TQDateTime lastKnownConnection;
+};
+
+class TDECORE_EXPORT TDEWiredEthernetConnection : public TDENetworkConnection
+{
+ public:
+ TDEWiredEthernetConnection();
+ virtual ~TDEWiredEthernetConnection();
+};
+
+class TDECORE_EXPORT TDEWiFiConnection : public TDENetworkConnection
+{
+ public:
+ TDEWiFiConnection();
+ virtual ~TDEWiFiConnection();
+
+ public:
+ TQByteArray SSID;
+ TDEWiFiMode::TDEWiFiMode operatingMode;
+ TDEWiFiFrequencyBand::TDEWiFiFrequencyBand bandRestriction;
+ TQ_INT32 channelRestriction;
+ TQ_INT32 bitRateRestriction;
+ TQ_INT32 powerRestriction;
+ TDEMACAddress accessPointRestriction;
+ TDEMACAddressList blacklistedBSSIDs;
+ TDEMACAddressList heardBSSIDs;
+ bool isHiddenNetwork;
+ bool securityRequired;
+ TDENetworkWiFiSecurityConfiguration securitySettings;
+};
+
+class TDECORE_EXPORT TDEWiredInfinibandConnection : public TDENetworkConnection
+{
+ public:
+ TDEWiredInfinibandConnection();
+ virtual ~TDEWiredInfinibandConnection();
+
+ public:
+ TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode transportMode;
+};
+
+class TDECORE_EXPORT TDEVPNConnection : public TDENetworkConnection
+{
+ public:
+ TDEVPNConnection();
+ virtual ~TDEVPNConnection();
+
+ public:
+ TQString vpnPluginID;
+ TQString lockedUserName;
+ TDENetworkSettingsMap pluginData;
+ bool secretsValid;
+ TDENetworkSettingsMap pluginSecrets;
+};
+
+class TDECORE_EXPORT TDEWiMaxConnection : public TDENetworkConnection
+{
+ public:
+ TDEWiMaxConnection();
+ virtual ~TDEWiMaxConnection();
+
+ public:
+ TQString networkServiceProvider;
+};
+
+class TDECORE_EXPORT TDEVLANConnection : public TDENetworkConnection
+{
+ public:
+ TDEVLANConnection();
+ virtual ~TDEVLANConnection();
+
+ public:
+ TQString kernelName;
+ TQString parentConnectionUUID;
+ TQ_UINT32 vlanID;
+ TDENetworkVLANFlags::TDENetworkVLANFlags vlanFlags;
+ TDENetworkPriorityMap ingressPriorityMap;
+ TDENetworkPriorityMap egressPriorityMap;
+};
+
+class TDECORE_EXPORT TDEOLPCMeshConnection : public TDENetworkConnection
+{
+ public:
+ TDEOLPCMeshConnection();
+ virtual ~TDEOLPCMeshConnection();
+
+ public:
+ TQByteArray SSID;
+ TQ_INT32 channel;
+ TQByteArray anycastDHCPHWAddress;
+};
+
+class TDECORE_EXPORT TDEBluetoothConnection : public TDENetworkConnection
+{
+ public:
+ TDEBluetoothConnection();
+ virtual ~TDEBluetoothConnection();
+
+ public:
+ TDEBluetoothConnectionType::TDEBluetoothConnectionType type;
+};
+
+class TDECORE_EXPORT TDEModemConnection : public TDENetworkConnection
+{
+ public:
+ TDEModemConnection();
+ virtual ~TDEModemConnection();
+
+ public:
+ TDEModemConnectionType::TDEModemConnectionType type;
+ TDENetworkCDMAConfiguration cdmaConfig;
+ TDENetworkGSMConfiguration gsmConfig;
+};
+
+typedef TQPtrList< TDENetworkConnection > TDENetworkConnectionList;
+
+/**
+* INTERNAL CLASS
+*/
+class TDENetworkEventQueueEvent_Private
+{
+ public:
+ int eventType;
+ TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState;
+ TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState;
+ TDENetworkConnectionStatus::TDENetworkConnectionStatus newConnStatus;
+ TDENetworkConnectionStatus::TDENetworkConnectionStatus previousConnStatus;
+ TDEMACAddress BSSID;
+ TQString message;
+ TQString hwAddress;
+ TDENetworkAPEventType::TDENetworkAPEventType apevent;
+ TDENetworkDeviceEventType::TDENetworkDeviceEventType ndevent;
+ TDENetworkVPNEventType::TDENetworkVPNEventType vpnevent;
+ TDENetworkGlobalEventType::TDENetworkGlobalEventType globalevent;
+};
+typedef TQValueList<TDENetworkEventQueueEvent_Private> TDENetworkEventQueueEvent_PrivateList;
+
+class TQTimer;
+
+class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject
+{
+ Q_OBJECT
+
+ public:
+ /**
+ * Constructor.
+ * @param macAddress The MAC address of the hardware device
+ * If an empty MAC address is passed, this object will make global networking backend
+ * methods available exclusively (TDENetworkDeviceType::BackendOnly).
+ */
+ TDENetworkConnectionManager(TQString macAddress);
+
+ /**
+ * Destructor.
+ */
+ ~TDENetworkConnectionManager();
+
+ /**
+ * @return a TQString containing the name of the backend in use
+ */
+ virtual TQString backendName() = 0;
+
+ /**
+ * @return the type of connection supported by this device
+ */
+ virtual TDENetworkDeviceType::TDENetworkDeviceType deviceType() = 0;
+
+ /**
+ * @return A TDENetworkGlobalManagerFlags enum value with the current status of the networking backend.
+ */
+ virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus() = 0;
+
+ /**
+ * @return A TDENetworkDeviceInformation object containing the current configuration and status of the network device.
+ */
+ virtual TDENetworkDeviceInformation deviceInformation() = 0;
+
+ /**
+ * @return A TDENetworkDeviceInformation object containing a (limited) current status of the network device.
+ * Only the following object fields are populated:
+ * statusFlags
+ * UUID
+ * activeConnectionUUID
+ * valid
+ */
+ virtual TDENetworkDeviceInformation deviceStatus() = 0;
+
+ /**
+ * Loads all connection information from the configuration backend
+ * Secret information must be loaded separately via a call to
+ * loadConnectionSecrets(TQString uuid) after this method has been
+ * executed at least once.
+ */
+ virtual void loadConnectionInformation() = 0;
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection in which to load the values allowed by the backend.
+ * This is normally called as part of loadConnectionInformation(), but should
+ * manually be called immediately after creation of a new TDENetworkConnection object.
+ */
+ virtual void loadConnectionAllowedValues(TDENetworkConnection* connection) = 0;
+
+ /**
+ * @param uuid a TQString conntaining the UUID of a connection for which to
+ * load secrets from the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool loadConnectionSecrets(TQString uuid) = 0;
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection to save to the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool saveConnection(TDENetworkConnection* connection) = 0;
+
+ /**
+ * @param uuid a TQString conntaining the UUID of a connection to
+ * delete from the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool deleteConnection(TQString uuid) = 0;
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection for which to verify integrity of all settings.
+ * @param type a pointer to an TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags
+ * which will be filled with the generic error type code if provided.
+ * @param reason a pointer to a TDENetworkErrorStringMap which will be filled with translated
+ * strings containing the reason for the failure if provided.
+ * @return true on success, false if invalid settings are detected.
+ */
+ virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL) = 0;
+
+ /**
+ * Initiates a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ * The client application should poll for status updates using checkConnectionStatus()
+ * Note that if this manager's type is not TDENetworkDeviceType::BackendOnly, the connection
+ * will be initiated on the internal device specified when this object was created
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid) = 0;
+
+ /**
+ * Checks the status of a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid) = 0;
+
+ /**
+ * Disconnects a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ * The client application should poll for status updates using checkConnectionStatus()
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid) = 0;
+
+ /**
+ * @return a TQStringList object containing all valid network settings
+ * Each string has the form "TDENetworkConfigObject::member"
+ * If a setting is not in this list, it is not supported by the backend in use
+ */
+ virtual TQStringList validSettings() = 0;
+
+ /**
+ * @return a TDENetworkHWNeighborList object containing the result of a site survey;
+ * i.e. all nearby access points or devices. This function only returns valid information
+ * if the underlying network device supports site surveys.
+ *
+ * Note that the returned list is internally managed and must not be deleted!
+ * Also note that pointers in the list may become invalid on subsequent calls to
+ * siteSurvey().
+ */
+ virtual TDENetworkHWNeighborList* siteSurvey() = 0;
+
+ /**
+ * @return a TQStringList containing the UUIDs of all physical devices used by the connection
+ * with UUID @param uuid.
+ * This function may return an empty list if the connection is inactive, this behaviour is
+ * dependend on the specific network backend in use.
+ */
+ virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid) = 0;
+
+ /**
+ * @return a TDENetworkVPNTypeList object containing all supported VPN types
+ * If a type is not in this list, it is not supported by the backend in use
+ */
+ virtual TDENetworkVPNTypeList availableVPNTypes() = 0;
+
+ /**
+ * @return true if networking is enabled, false if not.
+ */
+ virtual bool networkingEnabled() = 0;
+
+ /**
+ * @param enable true to enable networking, false to disable it.
+ * @return true on success, false on failure.
+ */
+ virtual bool enableNetworking(bool enable) = 0;
+
+ /**
+ * @return true if WiFi hardware is enabled, false if not.
+ */
+ virtual bool wiFiHardwareEnabled() = 0;
+
+ /**
+ * @param enable true to enable WiFi, false to disable it.
+ * @return true on success, false on failure.
+ */
+ virtual bool enableWiFi(bool enable) = 0;
+
+ /**
+ * @return true if WiFi is enabled, false if not.
+ */
+ virtual bool wiFiEnabled() = 0;
+
+ /**
+ * @return a list of UUIDs of the default network devices, or an empty list if no such devices exist.
+ * The default network devices are normally the devices holding the highest priority default route.
+ */
+ virtual TQStringList defaultNetworkDevices() = 0;
+
+ signals:
+ /**
+ * Emitted whenever the state of the system's connection changes
+ * If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
+ */
+ void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
+
+ /**
+ * Emitted whenever the state of a device changes
+ * If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
+ * If the global connection state has changed, @param hwAddress will be empty, otherwise it will contain the MAC address
+ * of the networking hardware that has changed state.
+ */
+ void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString hwAddress);
+
+ /**
+ * Emitted whenever the status of a wireless access point changes
+ * The event type that caused the signal is available in @param event
+ */
+ void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
+
+ /**
+ * Emitted whenever a network device event occurs
+ * The event type that caused the signal is available in @param event
+ * @param message contains additional information if available
+ */
+ void networkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
+
+ /**
+ * Emitted whenever a VPN-related event occurs
+ * The event type that caused the signal is available in @param event
+ * @param message contains additional information if available
+ */
+ void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
+
+ /**
+ * Emitted whenever a global network management event occurs
+ * The event type that caused the signal is available in @param event
+ */
+ void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
+
+ public:
+ /**
+ * @return a TDENetworkConnectionList object containing a list of all
+ * possible connections this connection manager is aware of, regardless
+ * of current state or availability.
+ *
+ * loadConnectionInformation() should be called at least once before calling
+ * this method, in order to update internal connection information from the
+ * configuration backend.
+ *
+ * Note that the returned list is internally managed and must not be deleted!
+ * Also note that pointers in the list may become invalid on subsequent calls to
+ * loadConnectionInformation(), saveConnection(), deleteConnection(), or connections().
+ */
+ virtual TDENetworkConnectionList* connections();
+
+ /**
+ * @return the MAC address of this device
+ */
+ TQString deviceMACAddress();
+
+ /**
+ * @return a pointer to a TDENetworkConnection object with the specified @param uuid,
+ * or a NULL pointer if no such connection exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkConnection* findConnectionByUUID(TQString uuid);
+
+ /**
+ * @return a pointer to a TDENetworkDevice object with the specified @param uuid,
+ * or a NULL pointer if no such device exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkDevice* findDeviceByUUID(TQString uuid);
+
+ /**
+ * @return a pointer to a TDENetworkWiFiAPInfo object with the specified @param bssid,
+ * or a NULL pointer if no such access point exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
+
+ /**
+ * @return a string containing the friendly name of the connection type @param type given
+ */
+ static TQString friendlyConnectionTypeName(TDENetworkConnectionType::TDENetworkConnectionType type);
+
+ /**
+ * @return true if @param address is valid, false if not
+ */
+ static bool validateIPAddress(TQHostAddress address);
+
+ /**
+ * @return true if @param netmask is valid, false if not
+ */
+ static bool validateIPNeworkMask(TQHostAddress netmask);
+
+ protected:
+ /**
+ * @internal Safely clears out the master connection list and deletes all member objects
+ */
+ void clearTDENetworkConnectionList();
+
+ /**
+ * @internal Safely clears out the neighboring devices list and deletes all member objects
+ */
+ void clearTDENetworkHWNeighborList();
+
+ /**
+ * @internal This method must be called by the network backend whenever a connection changes state
+ * It emits the appropriate signals to notify client applications of the state change
+ */
+ void internalNetworkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState);
+
+ /**
+ * @internal This method must be called by the network backend whenever a device changes state
+ * It emits the appropriate signals to notify client applications of the state change
+ */
+ void internalNetworkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TQString hwAddress=TQString::null);
+
+ /**
+ * @internal This method must be called by the network backend whenever a wireless access point changes state
+ * It emits the appropriate signals to notify client applications of the state change
+ */
+ void internalAccessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
+
+ /**
+ * @internal This method must be called by the network backend whenever a device event occurs
+ * It emits the appropriate signals to notify client applications of the network device event
+ */
+ void internalNetworkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
+
+ /**
+ * @internal This method must be called by the network backend whenever a VPN event occurs
+ * It emits the appropriate signals to notify client applications of the network device event
+ */
+ void internalVpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
+
+ /**
+ * @internal This method must be called by the network backend whenever it changes state
+ * It emits the appropriate signals to notify client applications of the state change
+ */
+ void internalNetworkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
+
+ protected slots:
+ void emitQueuedSignals();
+
+ protected:
+ TDENetworkConnectionList* m_connectionList;
+ TDENetworkHWNeighborList* m_hwNeighborList;
+ TQString m_macAddress;
+ TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags m_prevConnectionStatus;
+ TQMap<TQString, TDENetworkConnectionStatus::TDENetworkConnectionStatus> m_prevDeviceStatus;
+ TQTimer* m_emissionTimer;
+ TDENetworkEventQueueEvent_PrivateList m_globalEventQueueEventList;
+};
+
+class TDECORE_EXPORT TDEGlobalNetworkManager : public TQObject
+{
+ Q_OBJECT
+
+ public:
+ /**
+ * Constructor.
+ */
+ TDEGlobalNetworkManager();
+
+ /**
+ * Destructor.
+ */
+ ~TDEGlobalNetworkManager();
+
+ /**
+ * @return a TQString containing the name of the backend in use
+ */
+ virtual TQString backendName();
+
+ /**
+ * @return A TDENetworkGlobalManagerFlags enum value with the current status of the networking backend.
+ */
+ virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus();
+
+ /**
+ * Loads all connection information from the configuration backend
+ * Secret information must be loaded separately via a call to
+ * loadConnectionSecrets(TQString uuid) after this method has been
+ * executed at least once.
+ */
+ virtual void loadConnectionInformation();
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection in which to load the values allowed by the backend.
+ * This is normally called as part of loadConnectionInformation(), but should
+ * manually be called immediately after creation of a new TDENetworkConnection object.
+ */
+ virtual void loadConnectionAllowedValues(TDENetworkConnection* connection);
+
+ /**
+ * @param uuid a TQString conntaining the UUID of a connection for which to
+ * load secrets from the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool loadConnectionSecrets(TQString uuid);
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection to save to the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool saveConnection(TDENetworkConnection* connection);
+
+ /**
+ * @param uuid a TQString conntaining the UUID of a connection to
+ * delete from the configuration backend.
+ * @return true on success, false on failure.
+ */
+ virtual bool deleteConnection(TQString uuid);
+
+ /**
+ * @param connection a pointer to a TDENetworkConnection object containing a
+ * connection for which to verify integrity of all settings.
+ * @param type a pointer to an TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags
+ * which will be filled with the generic error type code if provided.
+ * @param reason a pointer to a TDENetworkErrorStringMap which will be filled with translated
+ * strings containing the reason for the failure if provided.
+ * @return true on success, false if invalid settings are detected.
+ */
+ virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL);
+
+ /**
+ * Initiates a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ * The client application should poll for status updates using checkConnectionStatus()
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid);
+
+ /**
+ * Checks the status of a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid);
+
+ /**
+ * Disconnects a connection with UUID @param uuid.
+ * @return A TDENetworkConnectionStatus enum value with the current connection status
+ * The client application should poll for status updates using checkConnectionStatus()
+ */
+ virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid);
+
+ /**
+ * @return a TQStringList object containing all valid network settings
+ * Each string has the form "TDENetworkConfigObject::member"
+ * If a setting is not in this list, it is not supported by the backend in use
+ */
+ virtual TQStringList validSettings();
+
+ /**
+ * @return a TDENetworkHWNeighborList object containing the result of a site survey;
+ * i.e. all nearby access points or devices. This function only returns valid information
+ * if the underlying network device supports site surveys.
+ *
+ * Note that the returned list is internally managed and must not be deleted!
+ * Also note that pointers in the list may become invalid on subsequent calls to
+ * siteSurvey().
+ */
+ virtual TDENetworkHWNeighborList* siteSurvey();
+
+ /**
+ * @return a TQStringList containing the UUIDs of all physical devices used by the connection
+ * with UUID @param uuid.
+ * This function may return an empty list if the connection is inactive, this behaviour is
+ * dependend on the specific network backend in use.
+ */
+ virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid);
+
+ /**
+ * @return a TDENetworkVPNTypeList object containing all supported VPN types
+ * If a type is not in this list, it is not supported by the backend in use
+ */
+ virtual TDENetworkVPNTypeList availableVPNTypes();
+
+ /**
+ * @return true if networking is enabled, false if not.
+ */
+ virtual bool networkingEnabled();
+
+ /**
+ * @param enable true to enable networking, false to disable it.
+ * @return true on success, false on failure.
+ */
+ virtual bool enableNetworking(bool enable);
+
+ /**
+ * @return true if WiFi hardware is enabled, false if not.
+ */
+ virtual bool wiFiHardwareEnabled();
+
+ /**
+ * @param enable true to enable WiFi, false to disable it.
+ * @return true on success, false on failure.
+ */
+ virtual bool enableWiFi(bool enable);
+
+ /**
+ * @return true if WiFi is enabled, false if not.
+ */
+ virtual bool wiFiEnabled();
+
+ /**
+ * @return a list of UUIDs of the default network devices, or an empty list if no such devices exist.
+ * The default network devices are normally the devices holding the highest priority default route.
+ */
+ virtual TQStringList defaultNetworkDevices();
+
+ signals:
+ /**
+ * Emitted whenever the state of the system's connection changes
+ * If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
+ */
+ void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
+
+ /**
+ * Emitted whenever the state of a device changes
+ * If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
+ * If the global connection state has changed, @param hwAddress will be empty, otherwise it will contain the MAC address
+ * of the networking hardware that has changed state.
+ */
+ void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString hwAddress);
+
+ /**
+ * Emitted whenever the status of a wireless access point changes
+ * The event type that caused the signal is available in @param event
+ */
+ void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
+
+ /**
+ * Emitted whenever a VPN-related event occurs
+ * The event type that caused the signal is available in @param event
+ * @param message contains additional information if available
+ */
+ void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
+
+ /**
+ * Emitted whenever a global network management event occurs
+ * The event type that caused the signal is available in @param event
+ */
+ void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
+
+ public:
+ /**
+ * @return a TDENetworkConnectionList object containing a list of all
+ * possible connections this connection manager is aware of, regardless
+ * of current state or availability.
+ *
+ * loadConnectionInformation() should be called at least once before calling
+ * this method, in order to update internal connection information from the
+ * configuration backend.
+ *
+ * Note that the returned list is internally managed and must not be deleted!
+ * Also note that pointers in the list may become invalid on subsequent calls to
+ * loadConnectionInformation(), saveConnection(), deleteConnection(), or connections().
+ */
+ virtual TDENetworkConnectionList* connections();
+
+ /**
+ * @return a pointer to a TDENetworkConnection object with the specified @param uuid,
+ * or a NULL pointer if no such connection exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkConnection* findConnectionByUUID(TQString uuid);
+
+ /**
+ * @return a pointer to a TDENetworkDevice object with the specified @param uuid,
+ * or a NULL pointer if no such device exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkDevice* findDeviceByUUID(TQString uuid);
+
+ /**
+ * @return a pointer to a TDENetworkWiFiAPInfo object with the specified @param bssid,
+ * or a NULL pointer if no such access point exists.
+ *
+ * Note that the returned object is internally managed and must not be deleted!
+ */
+ TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
+
+ private:
+ TDENetworkConnectionManager* m_internalConnectionManager;
+};
+
+#endif // _TDENETWORKCONNECTIONS_H \ No newline at end of file