--- a/filemanager/GFLM/inc/CGflmFileListModel.h Tue Feb 02 00:03:31 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: File list model
-*
-*/
-
-
-
-#ifndef CGFLMFILELISTMODEL_H
-#define CGFLMFILELISTMODEL_H
-
-
-// INCLUDES
-#include <e32base.h>
-#include <badesca.h> // MDesCArray
-#include <f32file.h> // RFs
-#include "GFLM.hrh"
-
-
-// FORWARD DECLARATIONS
-class MGflmItemGroup;
-class CGflmItemGroupImpl;
-class CGflmGroupItem;
-class MGflmItemFilter;
-class CGflmDirectoryListingCache;
-class CGflmFileRecognizer;
-class CGflmItemLocalizer;
-class CGflmDriveResolver;
-class CGflmDriveItem;
-class CGflmFileFinder;
-
-
-// CLASS DECLARATION
-/**
-* A class that implements the basic file list functionality.
-* @lib GFLM.lib
-* @since 2.0
-*/
-class CGflmFileListModel : public CActive, public MDesCArray
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @since 3.2
- * @param aFs Shareable file server session, see RFs::ShareProtected()
- * @return Pointer to a CGflmFileListModel instance
- */
- IMPORT_C static CGflmFileListModel* NewL( RFs& aFs );
-
- /**
- * Destructor.
- */
- virtual ~CGflmFileListModel();
-
- public: // New functions
-
- /**
- * Refreshes the model
- * @since 2.0
- * @param aStatus A reference to a TRequestStatus object that
- * is used to notify the client thread about completion of
- * the refresh
- * @param aRefreshMode Refresh mode
- */
- IMPORT_C void RefreshListL(
- TRequestStatus& aStatus,
- TGflmRefreshMode aRefreshMode = ERefreshItems );
-
- /**
- * Cancels the asynchronous refresh request
- * @since 2.0
- */
- IMPORT_C void CancelRefresh();
-
- /**
- * Obtains a pointer to a CGflmGroupItem object.
- * The item is indexed by a global index.
- * Raises a panic (EGlobalIndexOutOfBounds) if the index refers to a
- * non-existent item.
- * @since 2.0
- * @param aIndex Global index of the item.
- * @return A pointer to a CGflmGroupItem object.
- */
- IMPORT_C CGflmGroupItem* Item( TInt aIndex ) const;
-
- /**
- * Resets the model. All item groups are destroyed.
- * @since 2.0
- */
- IMPORT_C void ResetModel();
-
- /**
- * Obtains a pointer to a MGflmItemGroup object.
- * Raises a panic (EInvalidGroupId) if a group is not found with given id.
- * @since 2.0
- * @param aId Id of the group
- * @return A pointer to a MGflmItemGroup object.
- */
- IMPORT_C MGflmItemGroup* FindGroupById( TInt aId );
-
- /**
- * Creates a new item group with a given id.
- * @since 2.0
- * @param aId The id given to the created group
- * @return A pointer to the created MGflmItemGroup object
- */
- IMPORT_C MGflmItemGroup* CreateGroupL( TInt aId );
-
- /**
- * Creates a new item group with a given id.
- * @since 3.1
- * @param aId The id given to the created group
- * @param aInclusion The group item inclusion
- * @return A pointer to the created MGflmItemGroup object
- */
- IMPORT_C MGflmItemGroup* CreateGroupL(
- TInt aId, TUint aInclusion );
-
- /**
- * Recognizes a file and resolves it's MIME-type.
- * This method accesses GFLM's internal recognizer cache
- * and is thus recomended for efficiency. NOTE: The file doesn't
- * have to belong to the current state of the model.
- * @since 2.0
- * @param aFilename Full path of the file to be recognized
- * @return A pointer descriptor containing the MIME-type of the item.
- * If the MIME-type couldn't be recognized, returns KNullDesC
- */
- IMPORT_C TPtrC ResolveMimeTypeL( const TDesC& aFilename );
-
- /**
- * Sets the item filter object for the model to use.
- * If aOwned is ETrue the model gets the ownership of the object.
- * @since 2.0
- * @param aFilter A pointer to a MGflmItemFilter object to be used
- */
- IMPORT_C void SetCustomFilter( MGflmItemFilter* aFilter );
-
- /**
- * Returns the validity of the model. If the refresh operation failed
- * or was canceled the model is corrupt and it's items shouldn't be
- * accessed
- * @since 2.0
- * @return ETrue if the model is corrupt. EFalse if the model is in
- * valid state.
- */
- IMPORT_C TBool IsCorrupt() const;
-
- /**
- * Returns the localized name of a file or a directory
- * @since 2.0
- * @param aPath Full path to the file or directory
- * @return A pointer descriptor containing the localized name
- * without the full path
- */
- IMPORT_C TPtrC LocalizedName( const TDesC& aPath ) const;
-
- /**
- * Clears the contents of the file cache
- * @since 2.0
- */
- IMPORT_C void ClearCache();
-
- /**
- * Clears the contents of the drive info
- * @since 3.1
- */
- IMPORT_C void ClearDriveInfo();
-
- /**
- * Gets drive item from given path
- * @since 3.1
- * @param aPath Given path
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- IMPORT_C CGflmDriveItem* DriveFromPath( const TDesC& aPath ) const;
-
- /**
- * Gets drive item from given id
- * @since 3.2
- * @param aDrive Given drive id
- * @return A pointer to drive item (not owned)
- * or NULL if drive not found.
- */
- IMPORT_C CGflmDriveItem* DriveFromId( const TInt aDrive ) const;
-
- /**
- * Enables and disables search mode
- * @since 3.2
- * @param aEnabled Enable or disable
- */
- IMPORT_C void EnableSearchMode( const TBool aEnabled );
-
- /**
- * Get search mode
- * @since 5.0
- * @return search mode
- */
- IMPORT_C TBool SearchMode();
- /**
- * Sets search string. Wild cards are allowed.
- * @since 3.2
- * @param aSearchString Given search string
- */
- IMPORT_C void SetSearchStringL( const TDesC& aSearchString );
-
- /**
- * Sets search folder
- * @since 3.2
- * @param aSearchFolder Given search folder
- */
- IMPORT_C void SetSearchFolderL( const TDesC& aSearchFolder );
-
- /**
- * Sets sort method
- * @since 5.0
- * @param aSortMethod Given sort method
- */
- IMPORT_C void SetSortMethod( TGflmSortMethod aSortMethod );
-
- /**
- * Gets sort method
- * @since 5.0
- * @return Currently used sort method
- */
- IMPORT_C TGflmSortMethod SortMethod() const;
-
- /**
- * Flush cache in CGflmFileRecognizer
- */
- IMPORT_C void FlushCache();
-
- public: // MDesCArray
-
- TInt MdcaCount() const;
-
- TPtrC MdcaPoint( TInt aIndex ) const;
-
- private: // CActive
-
- void RunL();
-
- TInt RunError( TInt aError );
-
- void DoCancel();
-
- protected: // New functions
-
- /**
- * C++ default constructor.
- */
- CGflmFileListModel( RFs& aFs );
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
- private:
-
- static TInt WorkThreadStart( TAny* aPtr );
-
- void WorkThread();
-
- void NotifyClient( TInt aErr );
-
- void GetGroupAndLocalIndex(
- const TInt aGlobalIndex,
- TInt& aLocalIndex,
- MGflmItemGroup*& aGroup ) const;
-
- void DoRefreshL();
-
- protected: // Data
-
- // Ref: An open shareable file server session
- RFs& iFs;
-
- // Request status of the work thread client
- TRequestStatus* iClientStatus;
-
- // Dynamic array containing all the CGflmItemGroupImpl objects that
- // belong to the model. Owned.
- CArrayPtrSeg< CGflmItemGroupImpl >* iGroups;
-
- // Instance of CGflmDirectoryListingCache. Owned.
- CGflmDirectoryListingCache* iListingCache;
-
- // Instance of CGflmFileRecognizer. Owned.
- CGflmFileRecognizer* iFileRecognizer;
-
- // Instance of CGflmItemLocalizer. Owned.
- CGflmItemLocalizer* iItemLocalizer;
-
- // Instance of CGflmDriveResolver. Owned.
- CGflmDriveResolver* iDriveResolver;
-
- // A boolean indicating wether the model is corrupt and needs to be
- // refreshed
- TBool iCorrupt;
-
- // A pointer to a class implementing MGflmItemFilter interface
- MGflmItemFilter* iFilter;
-
- // Own: For synchronising client and work thread
- RSemaphore iSemaphore;
-
- // Own: Client thread id to be informed
- TThreadId iClientId;
-
- // A boolean indicating wether the model is shutting down
- // Main thread is allowed write and work thread is allowed to read only
- TBool iShutdown;
-
- // A boolean indicating wether the refresh is canceled
- // Main thread is allowed write and work thread is allowed to read only
- TBool iCanceled;
-
- // A boolean indicating if search mode enabled or disabled
- // Main thread is allowed write and work thread is allowed to read only
- TBool iSearchEnabled;
-
- // Own: For finding files and directories from file system
- CGflmFileFinder* iFileFinder;
-
- // Own: Stores currently used sort method
- // Main thread is allowed write and work thread is allowed to read only
- TGflmSortMethod iSortMethod;
-
- // Own: Stores currently used sort method in search mode
- // Main thread is allowed write and work thread is allowed to read only
- TGflmSortMethod iSearchSortMethod;
-
- // Own: Stores currently used refresh mode
- // Main thread is allowed write and work thread is allowed to read only
- TGflmRefreshMode iRefreshMode;
-
- };
-
-#endif // CGFLMFILELISTMODEL_H
-
-// End of File