diff -r 000000000000 -r 094583676ce7 PECengine/StorageManager2/ClientInc/PEngStorageGlobals.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/StorageManager2/ClientInc/PEngStorageGlobals.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2002 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: See class description below. +* +*/ + + +#ifndef __PENGSTORAGEGLOBALS_H__ +#define __PENGSTORAGEGLOBALS_H__ + +// INCLUDES +#include + + +// CONSTANTS +_LIT( KPEngStorageDrive, "C:" ); +_LIT( KPEngStorageTempFolder, "temp\\" ); +_LIT( KPEngStorageStateSuffix, ".st" ); +const TInt KMinimalHashSize = 28; // Minimal size of the Hashed ID + + +// DATA TYPES +enum TPEngStorageType + { + ////////////////////////////////////////////////////////////////////////// + /** + * When CPEngStoreEntry::ExternalizeL() and CPEngStoreEntry::InternalizeL() + * and CPEngStoreEntry::GetEntrySize() is called for the mixed model + * types, type of the part of the model to be processed if passed. + * For single type Store models, this parameter should be + * ignored in the implementation of those functions in the + * derived classes. + * + * When Mixed model type is used, for before each call of the + * CPEngStoreEntry::ExternalizeL() and CPEngStoreEntry::InternalizeL() + * CPEngStoreEntry::GetEntrySize() is called to get size of the current + * part of the model to be Externalizeddd / Internalized + */ + ////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + ///////////// Basic Store Entry types ////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + /** + * Signals First basic type, not to be used by clients as a Storage + * type. How ever it can be used by the client as signalization + * of the beginning of the Externalize/ Internalize operation + */ + EPEngStorageBasicFirst = 0x00000001, + + /* + * These models cannot be stored, StoreL and RetrieveL leaves with KErrNotSupported + */ + EPEngStorageBasicTemporary = 0x00000002, + + /* + * Permanent models, these remains there after boot + * Storage Type in the ExternalizeL(), InternalizeL() GetEntrySize() + * functions of the CPEngStoreEntry() can be ignored + */ + EPEngStorageBasicPermanent = 0x00000004, + + /* + * Cached models, these are deleted when cache is cleaned or when phone is booted + * Storage Type in the ExternalizeL(), InternalizeL() GetEntrySize() + * functions of the CPEngStoreEntry() can be ignored + */ + EPEngStorageBasicCached = 0x00000008, + + /** + * Signals last basic type, not to be used by clients!! + */ + EPEngStorageBasicLast = 0x00000010, + + + + ////////////////////////////////////////////////////////////////////////// + ///////////// Additional Store entry types flag features ///////////////// + ////////////////////////////////////////////////////////////////////////// + /** + * If this flag is switched one. Version of the stored Store entry model + * is checked if it match the one which is stored in the store + * If client modified different version, storing is denied + */ + EPEngStorageFlagVersionChecked = 0x00000100, + + /** + * This flag is used to notify if Lock of the store entry is obeyed or + * not, while entry is stored in the Storage. + * Setting up of this flag will disable check of the lock. + */ + EPEngStorageLockIgnored = 0x00000200, + + ////////////////////////////////////////////////////////////////////////// + /** + * Mixed Store Entry types + * Those are predefined versions to be used as examples, + * it can be used by client + */ + ////////////////////////////////////////////////////////////////////////// + + /** + * Cached model with version control + */ + EPEngMixedCachedVersionCon = + EPEngStorageBasicCached | EPEngStorageFlagVersionChecked, + + /** + * Permanent with version control activated + */ + EPEngMixedPermanentVersionCon = + EPEngStorageBasicPermanent | EPEngStorageFlagVersionChecked, + + /* + * Mixed model, this model has Permanent and Cached part. + * CPEngStoreEntry::ExternalizeL() and CPEngStoreEntry::InternalizeL() + * Is called twice. Current part to be processed is passed as parameter + * to the called function. + * When storing, either both or none of the parts is stored to the store. + * Version check is not activated + */ + EPEngMixedPermanentCached = + EPEngStorageBasicPermanent | EPEngStorageBasicCached, + + /* + * Mixed model, this model has Permanent and Cached part. + * CPEngStoreEntry::ExternalizeL() and CPEngStoreEntry::InternalizeL() + * Is called twice. Current part to be processed is passed as parameter + * to the called function. + * When storing, either both or none of the parts is stored to the store. + * Version check is activated + */ + // EPEngStoragePermanentNoVersionCheck | EPEngStorageCachedNoVersionCheck + EPEngMixedPermanentCachedVersionCon = + EPEngMixedPermanentCached | EPEngStorageFlagVersionChecked, + + + ////////////////////////////////////////////////////////////////////////// + ///////////// Add new Store Entry types here /////////////////////////// + ////////////////////////////////////////////////////////////////////////// + + }; + +/** + * Levels of the storage Lock system. When requirement to the higher + * level of the lock is received by the storage, previous low level lock + * i released and replaced by the new lock. Owner of the previous lock + * is not allowed to manipulate with data anymore. + */ +enum TPengStorageLockPriority + { + EStorageLockLevelLow = 0x0010, + EStorageLockLevelBasic = 0x0020, + EStorageLockLevelHigh = 0x0030 + }; + + + +//Panic definitions +_LIT( KPEngSMPanic, "PECSM" ); +_LIT( KPEngSMEuserCBasePanic, "E32USER-CBase" ); +const TInt KPEngSMEuserCBasePanicReason = 33 ; +enum TPEngStoragePanics + { + EPEngSM_StorageBaseNotSet = 1, + EPEngSM_UnknownStorageType, + EPEngSM_StoreManNotDefined, + EPEngSM_SetNewEngagedSIdsHasBackup, + EPEngSM_RemoveEngagedSIdsHasBackup, + EPEngSM_SIdContainerHasStillObservers, + EPEngSM_SIdNotifyUnderFlow, + EPEngSM_SIdNotifyOverflow, + EPEngSM_TypeOrderMismatch, + EPEngSM_InternalizeLengthMismatch + }; + +#endif // __PENGSTORAGEGLOBALS_H__