--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/accesssec_plat/eap_qt_configuration_api/inc/eapqtconfiginterface.h Tue Aug 31 15:16:37 2010 +0300
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ * EAP method configuration QT interface
+ *
+ */
+
+/*
+ * %version: 8 %
+ */
+
+#ifndef EAPQTCONFIGINTERFACE_H
+#define EAPQTCONFIGINTERFACE_H
+
+// System includes
+#include <qglobal.h>
+#include <eapqtconfig.h>
+#include <eapqtconfigexport.h>
+#include <eapqtpacstoreconfig.h>
+
+// User includes
+
+// Forward declarations
+class CpBaseSettingView;
+class EapQtValidator;
+class EapQtPluginInfo;
+class EapQtPluginHandle;
+class EapQtExpandedEapType;
+class EapQtCertificateInfo;
+class EapQtConfigInterfacePrivate;
+
+// External data types
+
+// Constants
+
+// Class declaration
+class EAP_QT_CONFIG_INTERFACE_EXPORT EapQtConfigInterface
+{
+
+public:
+
+ // Data types
+
+ // bearer type used for creating an interface object
+ enum EapBearerType
+ {
+ // EAP configuration interface for WLAN
+ EapBearerTypeWlan = 0,
+ // EAP configuration interface for VPN
+ EapBearerTypeVpn
+ };
+
+ // IAP ID to be used for accessing limited number of
+ // API methods, see below the method descriptions
+ static const int IapIdUndefined = -1;
+
+ // NOTE: the default constuctor can only be used for creating validators
+ // with validatorEap() and validatorPacStore(), and accessing EAP-FAST PAC store,
+ // any other call throws an exeption;
+ // also, throws an exception if the construction fails
+ EapQtConfigInterface();
+
+ // this is the constructor for using the interface for all
+ // available operations, including validators;
+ // throws an exception if the construction fails;
+ // the parameter iapId is the identifier of the configured IAP;
+ // if iapId is negative (i.e. IapIdUndefined or negative), only a limited set of
+ // methods are available and setConfigurationReference must be later called to
+ // correct the IAP ID and use the rest of the API methods
+ EapQtConfigInterface(const EapBearerType bearerType, const int iapId);
+
+ // destructor
+ ~EapQtConfigInterface();
+
+ // method for creating a setting validator for the specified EAP method
+ // NOTE: CALLER OWNS the returned object
+ // returns NULL on failure (e.g. if the requested validator does not exist)
+ EapQtValidator *validatorEap(const EapQtExpandedEapType &type, const EapQtConfig::SettingsId id) const;
+
+ // method for creating a EAP-FAST PAC store validator, see also EapQtPacStoreConfig
+ // NOTE: CALLER OWNS the returned object
+ // returns NULL on failure (e.g. if EAP-FAST is not supported)
+ EapQtValidator *validatorPacStore(const EapQtPacStoreConfig::PacStoreSettings id) const;
+
+ // reads EAP-FAST PAC store configuration, see EapQtPacStoreConfig
+ // returns false on failure (e.g. if EAP-FAST is not supported)
+ bool readPacStoreConfiguration(EapQtPacStoreConfig &config) const;
+
+ // stores EAP-FAST PAC store configuration, see EapQtPacStoreConfig
+ // returns false on failure (e.g. if EAP-FAST is not supported)
+ bool savePacStoreConfiguration(const EapQtPacStoreConfig &config) const;
+
+ /**
+ * NOTE: all the following methods throw an exception if the interface
+ * instance was created with the default (validator) constructor;
+ * otherwise the return value is as defined
+ */
+
+ // sets the IAP ID for accesssing EAP settings with the other methods
+ // returns false on failure (e.g. WLAN IAP with the specified ID
+ // [if the ID is other than IapIdUndefined] does not exist)
+ bool setConfigurationReference(const int iapId) const;
+
+ // returns supported outer EAP types
+ // returns empty list on failure
+ QList<EapQtPluginInfo> supportedOuterTypes() const;
+
+ // returns supported inner EAP types for the specified outer type
+ // returns empty list on failure
+ QList<EapQtPluginInfo> supportedInnerTypes(const EapQtPluginHandle &outerType) const;
+
+ // retrieves the list of installed CA certificates;
+ // list returned from device database only when called for the first time,
+ // otherwise returns the list from cache;
+ // call updateCertificates() to update the cache;
+ // returns empty list on failure or if CA certificates do not exist
+ QList<EapQtCertificateInfo> certificateAuthorityCertificates() const;
+
+ // retrieves the lsit of installed user certificate list;
+ // list returned from device database only when called for the first time,
+ // otherwise returns the list from cache;
+ // call updateCertificates() to update the cache;
+ // returns empty list on failure or if user certificates do not exist
+ QList<EapQtCertificateInfo> userCertificates() const;
+
+ // updates CA and user certificate lists from the device database
+ bool updateCertificates() const;
+
+ // checks if the specified outer EAP is supported
+ // returns true if supported, false otherwise
+ bool isSupportedOuterType(const EapQtPluginHandle &handle) const;
+
+ // checks if the specified inner EAP is supported inside the specified outer EAP
+ // returns true if supported, false otherwise
+ bool isSupportedInnerType(const EapQtPluginHandle &outerHandle,
+ const EapQtPluginHandle &innerHandle) const;
+
+ /**
+ * NOTE: all the following methods return failure if the current IAP
+ * ID is IapIdUndefined (or negative);
+ * setConfigurationReference must be called first to correct the IAP ID
+ */
+
+ // returns the list of activated outer EAP methods for the IAP
+ // returns empty list on failure
+ QList<EapQtPluginHandle> selectedOuterTypes() const;
+
+ // sets the list of activated outer EAP methods for the IAP
+ // returns empty list on failure
+ bool setSelectedOuterTypes(const QList<EapQtPluginHandle> &outerHandles) const;
+
+ // reads the configuration for pluginHandle inside outerHandle
+ // if outerHandle is EapQtPluginHandle::PluginUndefined, the configuration is read for
+ // pluginHandle as outer type;
+ // returns false on failure (e.g. outerHandle/pluginHandle is not supported)
+ bool readConfiguration(const EapQtPluginHandle &outerHandle,
+ const EapQtPluginHandle &pluginHandle, EapQtConfig &config) const;
+
+ // stores the configuration for pluginHandle
+ // in config:
+ // if OuterType is defined, the configuration for pluginHandle is set inside this OuterType
+ // if OuterType is not defined, pluginHandle is for an outer type
+ // if InnerType is defined, the defined inner types in config are activated for pluginHandle
+ // if InnerType is not defined, the pluginHandle does not activate any inner type (or they do not exist)
+ // returns false on failure (e.g. pluginHandle is not supported)
+ bool saveConfiguration(const EapQtPluginHandle &pluginHandle, const EapQtConfig &config) const;
+
+ // deletes all EAP configurations for the current IAP ID
+ bool deleteConfiguration() const;
+
+ // returns control panel UI instance for the specified EAP method (pluginHandle)
+ // outerHandle specifies if the UI is for pluginHandle as outer (EapQtPluginHandle::PluginUndefined) or
+ // inner (other than EapQtPluginHandle::PluginUndefined) EAP method;
+ // NOTE: CALLER OWNS the returned object;
+ // returns NULL on failure (e.g. if the combination of outerHandle/pluginHandle is not supported)
+ // NOTE: the method throws an exception if current IAP ID is IapIdUndefined (or negative);
+ CpBaseSettingView *uiInstance(const EapQtPluginHandle &outerHandle,
+ const EapQtPluginHandle &pluginHandle) const;
+
+private:
+
+ Q_DISABLE_COPY(EapQtConfigInterface)
+
+private: // data
+
+ QScopedPointer<EapQtConfigInterfacePrivate> d_ptr;
+
+};
+
+#endif // EAPQTCONFIGINTERFACE_H
+