--- /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 <e32base.h>
+
+
+// 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<TUid>& 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<TUid>& 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<TUid>* 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