connectivitymodules/SeCon/services/ftp/inc/sconfshandler.h
branchRCL_3
changeset 20 4a793f564d72
parent 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/services/ftp/inc/sconfshandler.h	Wed Sep 01 12:20:56 2010 +0100
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2005-2009 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:  CSConFSHandler header file
+*
+*/
+
+
+#ifndef _SCONFSHANDLER_H_
+#define _SCONFSHANDLER_H_
+
+// INCLUDES
+
+#include <e32base.h>
+#include <obexobjects.h>
+
+
+// FORWARD DECLARATIONS
+class CDirectoryLocalizer;
+
+
+//============================================================
+// Class CSConFsHandler declaration
+//============================================================
+NONSHARABLE_CLASS( CSConFsHandler ) : public CBase
+    {
+    public:
+        static CSConFsHandler* NewL( RFs& aFs );
+        ~CSConFsHandler();
+        /**
+         * Parses folder and file listing from specified directory
+         * @param aBuffer Buffer to store the folder list
+         * @param aPathName Folder path
+         * @param aMemNumber memory number (1= DEV or MMC, 2= DEV2 or MMC2..)
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName,
+            const TInt aMemNumber );
+        /**
+         * Gets a file object
+         * @param aBuffer CObexFileObject object where the file will be stored
+         * @param aPathName The path of the file
+         * @param aFileName The name of the file
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt GetFileObjectL( CObexFileObject*& aBuffer, const TPtrC aPathName,
+            const TPtrC aFileName );
+        /**
+         * Stores a file object
+         * @param aFullPathName The full path and name of the file
+         * @param aTime The time stamp of the file
+         * @param aTempFileName Data temp file
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt SaveFileObjectL( const TPtrC aFullPathName, const TTime aTime, 
+            const TPtrC aTempFileName );
+        /**
+         * Validates the file name
+         * @param aName File name to be validated
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt ValidateFileName( const TPtrC aName );
+        /**
+         * Creates a folder
+         * @param aFolderPath The name and the path of the folder
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt CreateFolderL( const TPtrC aFolderPath );
+        /**
+         * Removes a folder or a file
+         * @param aFullPath The path and name of the object
+         * @return KErrNone if no errors, else system wide error codes.
+         */
+        TInt DeleteObjectL( const TPtrC aFullPath );
+        
+        /**
+         * Copy or Move file/folder
+         * @param aSource
+         * @param aTarget
+         * @param aUseCopyCommand if ETrue does copy, else does move.
+         * @return none.
+         */
+        void DoCopyOrMoveFileL( const TDesC& aSource, const TDesC& aTarget,
+            const TBool aUseCopyCommand );
+        
+        /**
+         * Check if folder can be showed
+         * @param aFullPath The path of the object
+         * @return ETrue if folder exists and can be showed.
+         */
+        TBool IsFolderVisible( const TDesC& aFullPath );
+        
+    private:
+        CSConFsHandler( RFs& aFs );
+        void ConstructL();
+        /**
+         * Updates the name of the data folder from a localized string
+         * @param none
+         * @return none
+         */
+        void GetDataPathNameL();
+        
+        /**
+         * Check if folder is read only
+         * @param aFullPath The path of the object
+         * @return ETrue if folder is read only, or if folder does not exist
+         */
+        TBool IsFolderReadOnly( const TDesC& aFullPath ) const;
+        /**
+         * Check if folder can be deleted
+         * @param aFullPath The path of the object
+         * @return ETrue if folder can be deleted
+         */
+        TBool IsFolderDeletable( const TDesC& aFullPath ) const;
+        /**
+         * Get parent folder
+         * @param aFullPath The folder full path with or without backlash ending
+         * @param aParent The founded parent folder with backlash
+         * @return KErrNone if parent folder founded
+         */
+        TInt GetParentFolder( const TDesC& aFullPath, TDes& aParent);
+        
+        /**
+         * Get folder (and subfolders) size
+         * @param aFullPath The folder full path with backlash ending
+         * @return folder total size
+         */
+        TInt64 GetFolderSizeL( const TDesC& aFullPath );
+        
+        /**
+         * Replaces all special characters to xml compliant ones
+         * @param aDes characters to be checked and replaced
+         */
+        void ReplaceSpecialChars( TDes8& aDes );
+        
+        /**
+         * Check if folder is exluded and cannot be shown to user
+         * @param aFullPath The full path with backlash ending
+         * @return ETrue if folder is exluded
+         */
+        TBool IsExludedPath( const TDesC& aFullPath ) const;
+        
+		/**
+		 * Prints folder information to obex-folder-list
+		 */
+        void PrintFolderL( CBufFlat* aBuffer, TInt& aOffset, const TDesC& aParentPath,
+                            const TDesC8& aMemType, const TEntry& aFolderEntry );
+        /**
+		 * Prints file information to obex-folder-list
+		 */
+        void PrintFileL( CBufFlat* aBuffer, TInt& aOffset, const TEntry& aFileEntry );
+        
+    private:
+        RFs&                 iFs; // not own
+        CDirectoryLocalizer* iLocalizer;
+        TBuf8<KMaxFileName> iDataPathName;  // Localized data path
+    };
+
+#endif
+
+// End of file
+