diff -r 3255e7d5bd67 -r 989397f9511c cpsecplugins/cpadvancedsecplugin/inc/advsecsettingscertificatemodel_symbian_p.h --- /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 // CActive +#include // RFs +#include // CUnifiedCertStore related +#include + +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 &certList); + void getCertificateDetails(const AdvSecSettingsCertificate &cert, + QMap &details); + bool isDeletable(const AdvSecSettingsCertificate &cert) const; + void deleteCertificate(const AdvSecSettingsCertificate &cert); + void getTrustSettings(const AdvSecSettingsCertificate &cert, + QMap &usageIdAndTrust); + void setTrustSettings(const AdvSecSettingsCertificate &cert, + const QMap &usageIdAndTrust); + void getCertificateUsageNames(QMap &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 &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 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 *iTrustedUids; // not owned + RArray 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 +