diff -r 000000000000 -r 164170e6151a wim/inc/WimTrustSettingsAPI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wim/inc/WimTrustSettingsAPI.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,207 @@ +/* +* Copyright (c) 2004 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: Interface for WIM Trust Settings Store +* +*/ + + + +#ifndef WIMTRUSTSETTINGSAPI_H +#define WIMTRUSTSETTINGSAPI_H + + +//INCLUDES +#include + + +// FORWARD DECLARATIONS +class RWimTrustSettingsMgmt; +class CWimCertInfo; + + +//CLASS DECLARATION +/** +* Interface which handles Trust Settings Store related operations +* with WimServer. +* +* @lib WimClient.lib +* @since Series60 3.0 +*/ +class CWimTrustSettingsAPI : public CActive + { + public: // Constructor and destructor + + /** + * Two-phased constructor. + */ + IMPORT_C static CWimTrustSettingsAPI* NewL(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CWimTrustSettingsAPI(); + + public: // New functions + + /** + * Fetches trust settings for given certificate. + * Acts like an asynchronous for caller but not activates itself. + * @param aCert (IN) Certificate + * @param aTrusted (OUT) Is certificate trusted + * @param aApplications (OUT) Array of applications supported + * by certificate + * @param aStatus (IN/OUT) Request Status of asynchronous call + * @return void + */ + IMPORT_C void GetTrustSettings( const CWimCertInfo& aCert, + TBool& aTrusted, + RArray& aApplications, + TRequestStatus& aStatus ); + + /** + * Set applicability for given certificate. Calls DoSetApplicabilityL, + * which handles actual operation. New certificate entry is set if + * one not found from database (trust flag is set to EFalse). + * Acts like an asynchronous for caller but not activates itself. + * @param aCert (IN) Certificate + * @param aApplications (IN) Array of applications supported by + * certificate + * @param aStatus Request (IN/OUT) Status of asynchronous call. + * @return void + */ + IMPORT_C void SetApplicability( const CWimCertInfo& aCert, + const RArray& aApplications, + TRequestStatus& aStatus ); + + /** + * Set trust flag for given certificate. Calls DoSetTrustL, + * which handles actual operation. New certificate entry is set if + * one not found from database. + * Acts like an asynchronous for caller but not activates itself. + * @param aCert (IN) Certificate + * @param aTrusted (IN) Is certificate trusted + * @param aStatus (IN/OUT) Request Status of asynchronous call. + * @return void + */ + IMPORT_C void SetTrust( const CWimCertInfo& aCert, + TBool aTrusted, + TRequestStatus& aStatus ); + + /** + * Set default trust settings for given certificate. If certificate not + * found from database new entry is inserted. + * Acts like an asynchronous for caller but not activate itself. + * @param aCert (IN) Certificate + * @param aAddApps (IN) Are default applications inserted + * (ETrue means yes) + * @param aStatus (IN/OUT) Request Status of asynchronous call + * @return void + */ + IMPORT_C void SetDefaultTrustSettings( const CWimCertInfo& aCert, + TBool aAddApps, + TRequestStatus& aStatus ); + + /** + * Remove trust settings of given certificate. If certificate + * is not found, return with status.Int() = KErrNotFound + * Acts like an asynchronous for caller but not activates itself. + * @param aCert (IN) Certificate + * @param aStatus (IN/OUT) Request Status of asynchronous call + * @return void + */ + IMPORT_C void RemoveTrustSettings( const CWimCertInfo& aCert, + TRequestStatus& aStatus ); + + /** + * Delete TrustSettingsStore instance and release all resources + * @return void + */ + IMPORT_C void Close(); + + /** + * Cancel any issued asynchronous call + * @return void + */ + IMPORT_C void CancelDoing(); + + private: + + /** + * Default constructor. + */ + CWimTrustSettingsAPI(); + + /** + * 2nd phase constructor + */ + void ConstructL(); + + /** + * Handle trapped leave. Completes client request in case leave + * has occurred. + * @return void + */ + void HandleLeaveError( TInt aError ); + + + private: // From base class CActive + + /** + * Handle asyncronous response + * @return void + */ + void RunL(); + + /** + * Handle asyncronous call cancel + * @return void + */ + void DoCancel(); + + private: + + //Client status is stored here while operation + //on the server side is done. + TRequestStatus* iClientStatus; + + // Used for saving caller status. Not owned + TRequestStatus* iOriginalRequestStatus; + + //Handle to connection with server. Owned. + RWimTrustSettingsMgmt* iConnectionHandle; + + // Pointer to client array for applications. Not owned. + RArray* iApplications; + + // Pointer to flag telling if certificate is trusted or not. Not owned. + TBool* iTrusted; + + // Different phases of Trust Settings Store operation + enum TPhase + { + EGetTrustSettings, + ESetDefaultTrustSettings, + ESetApplicability, + ESetTrust, + ERemoveTrustSettings + }; + + // Current phase of Trust Settings Store operation + TPhase iPhase; + + }; + +#endif //WIMTRUSTSETTINGSAPI_H + +// End of File