diff -r 675a964f4eb5 -r 35751d3474b7 cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.h --- a/cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.h Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptoservices/filebasedcertificateandkeystores/source/certapps/server/CFSCertAppsServer.h Thu Sep 10 14:01:51 2009 +0300 @@ -1,101 +1,99 @@ -/* -* Copyright (c) 2002-2009 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: -* CFSCertAppsServer class implementation -* -*/ - - - - -/** - @file - @internalTechnology -*/ - -#ifndef __CFSCERTAPPSSERVER_H__ -#define __CFSCERTAPPSSERVER_H__ - -#include -#include -#include -#include - -class CFSCertAppsToken; -class CCertAppsSession; -class CCertAppsConduit; - -class CFSCertAppsServer : public CBase - { -public: - static CFSCertAppsServer* NewL(); - virtual ~CFSCertAppsServer(); - CCertAppsSession* CreateSessionL(); - -public: - void AddL(const TCertificateAppInfo& aClient); - void RemoveL(const TUid& aUid); - TInt ApplicationCountL() const; - void ApplicationsL(RArray& aAppArray) const; - void ApplicationL(const TUid& aUid, TCertificateAppInfo& aInfo) const; - -private: - CFSCertAppsServer(); - void ConstructL(); - - /// Finds an application and returns NULL if not found - if aIndex is not - /// null then index is copied there - const TCertificateAppInfo* FindApplication(const TUid& aUid, TInt* aIndex = NULL) const; - - /// Configures the object from the file store. Will create a new store - /// if one does not exist - void OpenStoreL(); - /// Opens a Composite store present under ROM drive. - void OpenCompositeStoreL(const TDesC& aFilename); - /// Attempt to load the cert apps from the given file - void ReadStoreContentsL(const TDesC& aFilename); - /// Create a new empty store - void CreateStoreL(const TDesC& aFilename); - /// aggregate the store files - void AggregateStoreFileL(const TDesC& aFile); - /// aggregate certificate client entries. - void MergeCertificateEntryListL(const RArray& aSourceList); - /// finds if an uid exists in the entry list - TBool FindUid(const TUid& aUid); - // TCleanup items used when creating a store or replacing a stream - static void DeleteStoreFile(TAny* aThis); - static void RevertStore(TAny* aStore); - - /// Replaces the store - called by both Add and Remove. - /// Leaves if failed. ExcludedIndex is the index into the - /// array to be excluded. -1 if none are excluded - void ReplaceAndCommitL(TInt aExcludedIndex = -1); - - /// Externalizes the array into a stream - commits it if successful - void WriteClientArrayL(RWriteStream& stream, TInt aExcludedIndex = -1) const; - -private: - /// The conduit object used for marshalling/unmarshalling client communications - CCertAppsConduit* iConduit; - RFs iFs; - /// The store where the client are stored - CPermanentFileStore* iStore; - TStreamId iId; - /// A cache of the contents of the store - RArray iClients; - /// Used to distinguish variant specific feature from the default. - TUint8 iPatchableConst; - }; - -#endif // __CFSCERTAPPSSERVER_H__ +/* +* Copyright (c) 2002-2009 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: +* CFSCertAppsServer class implementation +* +*/ + + +/** + @file + @internalTechnology +*/ + +#ifndef __CFSCERTAPPSSERVER_H__ +#define __CFSCERTAPPSSERVER_H__ + +#include +#include +#include +#include + +class CFSCertAppsToken; +class CCertAppsSession; +class CCertAppsConduit; + +class CFSCertAppsServer : public CBase + { +public: + static CFSCertAppsServer* NewL(); + virtual ~CFSCertAppsServer(); + CCertAppsSession* CreateSessionL(); + +public: + void AddL(const TCertificateAppInfo& aClient); + void RemoveL(const TUid& aUid); + TInt ApplicationCountL() const; + void ApplicationsL(RArray& aAppArray) const; + void ApplicationL(const TUid& aUid, TCertificateAppInfo& aInfo) const; + +private: + CFSCertAppsServer(); + void ConstructL(); + + /// Finds an application and returns NULL if not found - if aIndex is not + /// null then index is copied there + const TCertificateAppInfo* FindApplication(const TUid& aUid, TInt* aIndex = NULL) const; + + /// Configures the object from the file store. Will create a new store + /// if one does not exist + void OpenStoreL(); + /// Opens a Composite store present under ROM drive. + void OpenCompositeStoreL(const TDesC& aFilename); + /// Attempt to load the cert apps from the given file + void ReadStoreContentsL(const TDesC& aFilename); + /// Create a new empty store + void CreateStoreL(const TDesC& aFilename); + /// aggregate the store files + void AggregateStoreFileL(const TDesC& aFile); + /// aggregate certificate client entries. + void MergeCertificateEntryListL(const RArray& aSourceList); + /// finds if an uid exists in the entry list + TBool FindUid(const TUid& aUid); + // TCleanup items used when creating a store or replacing a stream + static void DeleteStoreFile(TAny* aThis); + static void RevertStore(TAny* aStore); + + /// Replaces the store - called by both Add and Remove. + /// Leaves if failed. ExcludedIndex is the index into the + /// array to be excluded. -1 if none are excluded + void ReplaceAndCommitL(TInt aExcludedIndex = -1); + + /// Externalizes the array into a stream - commits it if successful + void WriteClientArrayL(RWriteStream& stream, TInt aExcludedIndex = -1) const; + +private: + /// The conduit object used for marshalling/unmarshalling client communications + CCertAppsConduit* iConduit; + RFs iFs; + /// The store where the client are stored + CPermanentFileStore* iStore; + TStreamId iId; + /// A cache of the contents of the store + RArray iClients; + /// Used to distinguish variant specific feature from the default. + TUint8 iPatchableConst; + }; + +#endif // __CFSCERTAPPSSERVER_H__