cpsecplugins/cpadvancedsecplugin/inc/advsecsettingscertificatemodel_symbian_p.h
changeset 63 989397f9511c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpsecplugins/cpadvancedsecplugin/inc/advsecsettingscertificatemodel_symbian_p.h	Thu Oct 14 13:56:11 2010 +0300
@@ -0,0 +1,134 @@
+/*
+* 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 the License "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:  Symbian specific advanced security settings certificate model
+*
+*/
+
+#ifndef CPADVSECSETTINGSMODELPRIVATE_SYMBIAN_H
+#define CPADVSECSETTINGSMODELPRIVATE_SYMBIAN_H
+
+#include <e32base.h>                // CActive
+#include <f32file.h>                // RFs
+#include <unifiedcertstore.h>       // CUnifiedCertStore related
+#include <QMap>
+
+class AdvSecSettingsCertificateModel;
+class AdvSecSettingsCertificate;
+class CAdvSecSettingsCertListBuilder;
+class CAdvSecSettingsCertDetailsBuilder;
+class CCertificateAppInfoManager;
+class CAdvSecSettingsCertMover;
+
+
+/**
+ * Symbian specific advanced security settings certificate model.
+ */
+class AdvSecSettingsCertificateModelPrivate : public CActive
+{
+public:     // constructor and destructor
+    explicit AdvSecSettingsCertificateModelPrivate(
+        AdvSecSettingsCertificateModel *q = 0);
+    ~AdvSecSettingsCertificateModelPrivate();
+
+public:     // new functions
+    void initialize();
+    void getCertificates(QList<AdvSecSettingsCertificate*> &certList);
+    void getCertificateDetails(const AdvSecSettingsCertificate &cert,
+        QMap<int,QString> &details);
+    bool isDeletable(const AdvSecSettingsCertificate &cert) const;
+    void deleteCertificate(const AdvSecSettingsCertificate &cert);
+    void getTrustSettings(const AdvSecSettingsCertificate &cert,
+        QMap<int,bool> &usageIdAndTrust);
+    void setTrustSettings(const AdvSecSettingsCertificate &cert,
+        const QMap<int,bool> &usageIdAndTrust);
+    void getCertificateUsageNames(QMap<int,QString> &usageIdAndName);
+    void moveToPersonalCertificates(const AdvSecSettingsCertificate &cert);
+    void moveToDeviceCertificates(const AdvSecSettingsCertificate &cert);
+
+protected:  // from CActive
+    void DoCancel();
+    void RunL();
+    TInt RunError(TInt aError);
+
+private:    // new functions
+    Q_DISABLE_COPY(AdvSecSettingsCertificateModelPrivate)
+    void ConstructL();
+    TInt ResetCertAttributeFilter();
+    TInt ResetCertInfoArray();
+    void ReturnTrustSettingsDetails();
+    void DoGetCertificateUsageNamesL(QMap<int,QString> &usageIdAndName);
+    const CCTCertInfo *CertificateInfo(const AdvSecSettingsCertificate &cert) const;
+
+private:    // data
+    AdvSecSettingsCertificateModel *q_ptr;
+
+    enum TState {
+        ENotInitialized,
+        EInitializing,
+        EIdle,
+        EGettingCertificatesList,
+        EGettingCertificatesRetrieve,
+        EBuildingCertificateDetails,
+        EDeletingCertificate,
+        EReadingApplications,
+        EWritingApplications,
+        EMovingCertificateToPersonalStore,
+        EMovingCertificateToDeviceStore
+    } iState;
+
+    RFs iFs;
+    CUnifiedCertStore *iCertStore;
+
+    /*
+     * Common to all certificate specific asynchronous methods. Member iCertInfo
+     * contains pointer to the current certificate being processed. Member
+     * iCertInfoArray contains all certificates read from certificate databases.
+     */
+    const CCTCertInfo *iCertInfo;  // not owned
+    RMPointerArray<CCTCertInfo> iCertInfoArray;
+
+    /*
+     * for getCertificates method. Certificate list is constructed using
+     * iCertListBuilder member, which returns data directly to the client.
+     */
+    CAdvSecSettingsCertListBuilder *iCertListBuilder;
+
+    /*
+     * For getCertificateDetails method. Certificate details are constructed
+     * using iDetailsBuilder member, which returns data directly to the client.
+     */
+    CAdvSecSettingsCertDetailsBuilder *iDetailsBuilder;
+
+    /*
+     * For getTrustSettings method. Data is retrieved  from certificate store into
+     * iApplications member, and then returned to client via iTrustedUids member.
+     */
+    QMap<int,bool> *iTrustedUids;   // not owned
+    RArray<TUid> iApplications;
+
+    /*
+     * For getTrustSettings and getCertificateUsageNames methods to get possible
+     * certificate application (usage) ids and their names.
+     */
+    CCertificateAppInfoManager *iCertAppInfoManager;
+
+    /*
+     * For moveToPersonalCertificates and moveToDeviceCertificates methods.
+     * Takes care of moving certificate and it's key to given target store.
+     */
+    CAdvSecSettingsCertMover *iMover;
+};
+
+#endif // CPADVSECSETTINGSMODELPRIVATE_SYMBIAN_H
+