/** Copyright (c) 2007-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: * Class declaration for the User Prompt Service policy cache.**//** @file @internalComponent @released */#ifndef POLICYCACHE_H#define POLICYCACHE_H#include <e32base.h>#include <e32cmn.h>#include <f32file.h>#include "policylist.h"#include "serviceconfig.h"namespace UserPromptService { class CPolicy; class CPromptRequest; /** Maintains an in memory cache of User Prompt Service policies. - Policy files are loaded lazily when MatchL is called.. */ NONSHARABLE_CLASS(CPolicyCache) : public CBase { public: IMPORT_C static CPolicyCache* NewL(RFs& aFs, const TDesC& aPolicyPath); IMPORT_C const CPolicy* MatchL(const CPromptRequest& aRequest); IMPORT_C void ServiceConfigL(const TSecureId& aServerSid, RArray<TServiceConfig>& aConfig); ~CPolicyCache(); private: CPolicyCache(RFs& aFs); void ConstructL(const TDesC& aPolicyPath); CPolicyList* ParseListL(const CPolicyList::TId& aId, const TDesC& aPolicyFileName); CPolicyList* LoadPolicyListL(const CPolicyList::TId& aId); void LocatePolicyFileL(TDes& aPolicyFileName, const CPolicyList::TId& aId); TBool FileExistsL(const TDesC& aFileName); const CPolicyList* PolicyList(const CPolicyList::TId& aId) const; void FindServicesL(const TSecureId& aServerSid, RArray<TUint>& aServices); RPointerArray<CPolicyList> iPolicyLists; HBufC* iPolicyPath; RFs iFs; TChar iSystemDriveChar; }; }#endif // POLICYCACHE_H