diff -r 87c71b25c937 -r 88ee4cf65e19 remotestoragefw/remotefileengine/inc/rsfwfileentry.h --- a/remotestoragefw/remotefileengine/inc/rsfwfileentry.h Wed Jun 09 10:37:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +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 a remote file metadata -* -*/ - - -#ifndef C_RSFWFILEENTRY_H -#define C_RSFWFILEENTRY_H - -#include "rsfwinterface.h" -#include "rsfwlrulistnode.h" - -class TDirEntAttr; -class CRsfwLockManager; -class CRsfwDirEntAttr; -class CRsfwFileTable; - - -class CRsfwFileEntry: public CBase - { - friend class CRsfwFileTable; - friend class CRsfwVolumeTable; - friend class CRsfwLockManager; - -public: - ~CRsfwFileEntry(); - static CRsfwFileEntry* NewLC(const TDesC& aName, CRsfwFileEntry* aParent); - static CRsfwFileEntry* NewL(const TDesC& aName, CRsfwFileEntry* aParent); - static CRsfwFileEntry* NewL(RReadStream& aStream); - - CRsfwFileEntry* FindKidByName(const TDesC& aName); - void RenameL(const TDesC& aName); - void AddKid(CRsfwFileEntry& aFe); - TInt RemoveKidL(CRsfwFileEntry* aFep); - TInt KidsCount(); - void UnmarkKids(); - void DropUnmarkedKidsL(); - void DropLD(); - void GetAttributes(TDirEntAttr& aAttr) const; - void GetAttributesL(CRsfwDirEntAttr& aAttr) const; - void SetAttributesL(CRsfwDirEntAttr& aAttr, TBool aAllMetaData); - TDesC* CacheFileName(); - void SetCacheFileName(TDesC* aFn); - TBool IsCached() const; - TBool IsFullyCached() const; - void SetCached(TBool aCached); - void SetCachedSize(TInt aFetchedSize); - void RemoveCacheFile(); - void ValidateCacheFile(); - void PrintL(TInt aLevel, TBool aKids, TBool aall) const; - HBufC* FullNameLC() const; - TInt TotalCachedSize(); - TInt TotalEntryCount(); - CRsfwFileEntry* Lookup(const TFid& aFid); - void SetLockedL(CRsfwLockManager* aLockManager, TDesC8* aLockToken); - void RemoveLocked(); - static int LockTimerExpiredL(TAny* aParam); - TBool UseCachedData(); - void SetAttribValidationTime(); - void ExternalizeL(RWriteStream& aStream) const; - void InternalizeL(RReadStream& aStream); - void SetType(TUint8 aType); - void SetSize(TInt aSize); - void SetModified(const TTime& aModified); - void SetAtt(TUint aAtt); - void SetMimeTypeL(const TDesC8& aMimeType); - void SetOpaqueFileIdL(const TDesC8& aOpaqueFileId); - TBool IsLocallyDirty() const; - TBool IsCancelled() const; - void SetLocallyDirty(); - void ResetLocallyDirty(); - TBool RemotelyDirty() const; - void SetRemotelyDirty(); - void ResetRemotelyDirty(); - void SetNewlyCreated(); - void ResetNewlyCreated(); - TBool IsNewlyCreated() const; - TBool IsMarked() const; - void Mark(); - void Unmark(); - void SetFlags(TUint aFlags); - void ResetFlags(TUint aFlags); - void SetOpenedForWriting(TBool aOpenedForWriting); - TBool IsOpenedForWriting() const; - // for a remote file which has been locally modified, but not yet written back to the - // server the cache file is set as read only until the file has been resolved - TBool IsLocked() const; - void ReportEvent(TInt aEvent); - inline const TFid& Fid() const; - inline void SetFid(const TFid& aFid); - inline const TDesC* Name() const; - inline TUint8 Type() const; - inline TInt Size() const; - inline TTime Modified() const; - inline TUint Att() const; - inline const TDesC8* MimeType() const; - inline const TDesC8* OpaqueFileId() const; - inline void SetUid(TUid anUid); - inline CRsfwFileEntry* Parent(); - inline void SetParent(CRsfwFileEntry* aFep); - inline TInt CachePriority() const; - inline TBool IsFlagged(TUint aFlag) const; - inline RPointerArray* Kids(); - inline const TDesC8* LockToken(); - inline const TDesC* ProtectionDomainName() const; - inline void SetCachePriority(TCachePriority); - inline TInt ProtectionDomainId() const; - void ResolveDirtyFilesL(); - -private: - void ConstructL(const TDesC& aName, CRsfwFileEntry* aParent); - void ConstructL(RReadStream& aStream); - - void SetLockTimeout(); - -public: - - // how much has been cached - TInt iCachedSize; - - // when the file attributes have been fetched from the server - TTime iAttribValidation; - - // uid of the symbian app which handles this datatype - TUid iUid; - - // Timer associated with a possible file locked - CPeriodic* iLockTimer; - - -protected: - RPointerArray iKids; // contained files and dirs - -private: - TFid iFid; // id - HBufC* iName; // name - TInt iSize; // file size in bytes - TUint iAtt; // attribute bits - TUint iFlags; // local state - TTime iModified; // last modified - TUint8 iType; // type (unknown, file, dir) - HBufC8* iMimeType; // MIME type - HBufC8* iOpaqueFileId; // e.g. ETag in WebDAV - CRsfwFileEntry* iParent; // parent dir - TBuf iCacheName; // local cache filename - TDesC8* iLockToken; // lock token - // cache priority is currently always KCachePriorityNormal - TInt iCachePriority; - - // Lock timeout for this locked file - // In practise we need to store this per-file - // as server may always ignore our request - // and e.g. mod_dav allows setting different min timeout - // for different directories. - TUint iLockTimeout; - -public: - // pointer to lock manager that can be called to refresh the lock - CRsfwLockManager* iLockManager; - TBool iUseCachedData; - // only used at recovery when iParent is not set (yet) - TInt iParentNodeId; - // the table in which the entry belongs - CRsfwFileTable* iFileTable; - }; - -#include "rsfwfileentry.inl" - -#endif \ No newline at end of file