/*************************************************************************** * * knetworkmanager-connection.h - A NetworkManager frontend for KDE * * Copyright (C) 2005, 2006 Novell, Inc. * * Author: Helmut Schaa , * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * **************************************************************************/ #ifndef KNETWORKMANAGER_CONNECTION_H #define KNETWORKMANAGER_CONNECTION_H #include #include #include "knetworkmanager-connection_setting.h" #include "dbus/connection.h" #include "dbus/connectionnode.h" class AccessPoint; class TQT_DBusObjectPath; namespace ConnectionSettings { class WirelessSecurity; class Connection; class ConnectionSetting; class ConnectionPrivate; class Info; class Wired; class Wireless; class WirelessSecurity; class IPv4; typedef TQMap ConnectionMap; // a connection wraps multiple settings class Connection : public TQObject, DBus::ConnectionNode { Q_OBJECT public: Connection(); virtual ~Connection(); virtual TQString getID() const = 0; virtual void setID(const TQString& id) = 0; // get a specific setting ConnectionSetting* getSetting(const TQString&) const; // get all settings of this connection TQValueList getSettings() const; // attach a new setting virtual void appendSetting(ConnectionSetting* setting); // ugly stuff introduced by NM void setSpecificObject(const TQString&); TQString getSpecificObject() const; // sometimes its usefull to have the object_path TQT_DBusObjectPath getObjectPath() const; // is the connection valid? virtual bool isValid() const; // the connections type (only for KNM use) virtual TQString getType(); // duplicate virtual Connection* duplicate() = 0; // update the settings from another connection void updateSettings(Connection*); // true if the NM requested new secrets for this connection bool awaitingSecrets(); public slots: // gets called from NM when it needs the secrets void slotSecretsNeeded(const TQString& setting_name, const TQStringList& hints, bool request_new); // gets called when the GUI provided new secrets void slotSecretsProvided(ConnectionSetting* setting); // signal a failure in getting new secrets void slotSecretsError(); // gets called when a settings validity changes void slotSettingValidityChanged(); // gets called when the connection is about to be removed void slotAboutToBeRemoved(); // gets called when the connections settings changed void slotUpdated(); protected: // implementations for ConnectionNode TQT_DBusObjectBase* createInterface(const TQString& interfaceName); TQString objectPath() const; signals: // signal when we need new secrets void SecretsNeeded(Connection* connection, ConnectionSetting* setting, const TQStringList& hints, bool request_new); // signal gets emitted when connections validity changes void validityChanged(); private: ConnectionPrivate* d; }; } #endif /* KNETWORKMANAGER_CONNECTION_H */