--- a/remotestoragefw/remotefileengine/inc/rsfwvolumetable.h Mon Jan 18 21:00:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* Copyright (c) 2003-2006 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: data struct for all volumes
-*
-*/
-
-#ifndef C_RSFWVOLUMETABLE_H
-#define C_RSFWVOLUMETABLE_H
-
-#include <e32property.h>
-#include <f32file.h>
-
-#include "rsfwlruprioritylist.h"
-
-class CRsfwRfeServer;
-class CRsfwConfig;
-class TRsfwMountInfo;
-class TRsfwMountConfig;
-class TRsfwMountStatus;
-class CRsfwVolume;
-class TTime;
-class CRsfwMountStateMachine;
-class CRsfwWaitNoteManager;
-class CRsfwMountStore;
-class CRsfwDormantMountLoader;
-
-/** caching mode */
-enum TCachingMode
- {
- EWholeFileCaching,
- EMetadataIfa,
- EFullIfa
- };
-
-/** theoretical maximum number of volumes - A to Z */
-const TInt KMaxVolumes = 26;
-
-
-/** Shutdown after all mounts have become dormant/disconnected */
-const TInt KRsfwDormantShutdownTimeout = 120;
-
-class CRsfwVolumeTable: public CBase
- {
-public:
- static CRsfwVolumeTable* NewL(CRsfwRfeServer* aRfeServer,
- CRsfwConfig* aRsfwConfig);
- ~CRsfwVolumeTable();
-
- void DispatchL(TAny* aIp, TAny* aOp);
- TInt VolumeIdByDriveLetter(TChar aDriveLetter);
- CRsfwVolume* VolumeByVolumeId(TInt aVolumeId);
- CRsfwVolume* VolumeByDriveLetter(TChar aDriveLetter);
- void RestoreDormantMountsL();
- TUint RecoverVolumeL(const TRsfwMountConfig& aMountConfig,
- CRsfwMountStateMachine* aCaller);
- TInt MountState(TChar aDriveLetter);
- TInt GetMountConfigL(TRsfwMountConfig& aMountConfig);
- void RestoreVolumesL();
- void DismountByVolumeIdL(TInt aVolumeId, TBool aDiscardPermanentData);
- void DismountByDriveLetterL(TChar aDriveLetter,
- TBool aDiscardPermanentData);
- void GetMountList(TDriveList& aMountList);
- TInt GetMountInfo(TRsfwMountInfo& aMountInfo);
- void GetMimeTypeSpecificLimits();
-
- // Cache management functions
- TBool EnsureCacheCanBeAddedL(TInt aBytes);
- TBool EnsureMetadataCanBeAddedL(CRsfwFileEntry* aParent);
- TBool IsRoot(const CRsfwFileEntry* aEntry);
- TInt TotalCachedSize();
- TInt TotalEntryCount();
- void AddToLRUPriorityListL(CRsfwFileEntry *aFe, TInt aPriority);
- void RemoveFromLRUPriorityList(CRsfwFileEntry *aFe);
- void AddToMetadataLRUPriorityListL(CRsfwFileEntry *aFe, TInt aPriority);
- void RemoveFromMetadataLRUPriorityList(CRsfwFileEntry *aFe);
- void MoveToTheBackOfMetadataLRUPriorityListL(CRsfwFileEntry *aFe);
- void WillLRUPriorityListBeInternalized();
- TBool CheckAndAddProcessStartMarker();
- void DeleteTheMarker();
- void CleanupCorruptedCacheL();
- void OperationCompleted(CRsfwVolume* aVolume);
- void VolumeStateChanged(CRsfwVolume* aVolume);
- CRsfwWaitNoteManager* WaitNoteManager();
- TBool IsCachedDataStillValid(TTime aCachedTime);
- TBool IsCachedAttrStillValid(TTime aCachedTime);
-
- // removes from cache all the data for certain path
- // this is "refresh", i.e to ensure that next readdir fetches the data
- // form server
- TInt PurgeFromCache(TDesC& aCachePath);
-
- TInt CancelTransferL(TDesC& aFilePath);
-
- void MountDormantL(const TRsfwMountConfig& aMountConfig, TInt aVolumeId);
-
- void PublishConnectionStatus(CRsfwVolume* aVolume);
-
-private:
- void ConstructL(CRsfwRfeServer* aRfeServer, CRsfwConfig* aRsfwConfig);
- TBool IsCacheStillValid(TTime aCachedTime, TTimeIntervalSeconds aValidity);
- void ExternalizeLRUPriorityList();
- void ExternalizeLRUPriorityListL();
- void InternalizeLRUPriorityListL();
- TBool IsMountIdle(TRsfwMountStatus& aMountStatus);
-
-public:
- // configuration parameters read from the configuration file
- TInt iMaxCacheSize; // maximum allowed cache size (global)
- TInt iMaxEntryCount; // maximum number of cached entries (global)
-
- TCachingMode iCachingMode;
- TInt iRecognizerLimit;
- TInt iImageJpegLimit;
- TInt iAudioMpegLimit;
- TInt iInactivityTimeout;
-
-public:
- CRsfwVolume* iVolumes[KMaxVolumes]; // alphabet
- TInt iLastVolumeId;
- CRsfwConfig* iRsfwConfig; // RSC configuration
-
- TBool iPermanence; // use permanent meta data
- CRsfwMountStore* iMountStore; // mount configuration repository
- CRsfwLruPriorityList iLRUPriorityList;
- CRsfwLruPriorityList iMetadataLRUPriorityList;
- CRsfwRfeServer* iRfeServer;
- TBool iUseExternalizedLRUList; // whether to use externalized LRU list data or not
- TBool iDormantMountRestorePending; // true when, after server startup, we start to restore mounts
-
-private:
- CRsfwDormantMountLoader* iDormantMountLoader; // loads dormant mounts asynchronously shortly after server start
- CRsfwWaitNoteManager* iWaitNoteManager; // Implements handling of global wait notes
- // associated with this class because when we come to Connect(), not much else is available
-
- TBool iAllEnginesIdle; // are all the engines idle
- RProperty iMountStateProperty; // property for connection state signaling
- TInt iFileCacheTimeout; // how long cached files are assumed to be valid
- TInt iDirCacheTimeout; // how long cached dirs are assumed to be valid
-
- // these are also available from TRfeEnv, but they are used so many times
- // by this class that an own pointer is justified
- RFs iFs; // handle to RFs session, owned by RfeServer
- TFileName* iCacheRoot; // pointer to cacheroot, owned by RfeServer
- };
-
-
-#endif