--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remotestoragefw/remotefileengine/inc/rsfwinterface.h Thu Dec 17 09:07:59 2009 +0200
@@ -0,0 +1,367 @@
+/*
+* Copyright (c) 2002-2004 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: The definitions of file operation codes and their parameters
+ *
+*/
+
+
+#ifndef RSFWINTERFACE_H
+#define RSFWINTERFACE_H
+
+// INCLUDES
+#include <f32file.h>
+#include <s32strm.h>
+
+#include "rsfwcommon.h"
+#include "rsfwfile.h"
+
+// CONSTANTS
+_LIT(KRSFWDefaultDrive, "C:");
+_LIT(KCacheRootDefault, "\\system\\data\\rsfw_cache\\");
+_LIT(KTempFileName, "temp");
+_LIT(KRsfwConfigPath, "\\data\\rscfw.cfg");
+_LIT(KResolutionLogPath, "\\logs\\rsfw\\rsfw.log");
+_LIT(KConfigNameCacheRoot, "cache_root");
+_LIT(KDirReadAllMask, "*");
+_LIT(KRemoteFs, "eremotefs");
+_LIT(KRemoteFSName, "RemoteFS");
+_LIT(KPanicSource, "RemoteFS");
+_LIT(KRemoteVolumeName, "RemoteFS");
+_LIT(KRemoteFEName, "RemoteFE");
+_LIT(KCachePanicSource, "cache manager");
+_LIT(KRfeInputData, "RemoteFeInputArgsChunk");
+_LIT(KRfeOutputData, "RemoteFeOutputArgsChunk");
+_LIT(KRfeDataSemaphoreName, "RemoteFeDataSemaphore");
+_LIT(KRfeMain, "RemoteFeMain");
+_LIT(KRsfwMounterExe, "rsfwbootmounter");
+
+const TInt KMaxMimeTypeLength = 64;
+// Node Types
+const TUint KNodeTypeUnknown = 0x00;
+const TUint KNodeTypeFile = 0x01;
+const TUint KNodeTypeDir = 0x02;
+
+
+// DATA TYPES
+// Remote File System plug-in <--> Remote File Engine communications
+enum TRfeIoctl
+ {
+ ERemoteFsIoctlRefresh = 1,
+ ERemoteFsProtect,
+ ERemoteFsHighCachePriority
+ };
+
+enum TRfeClose
+ {
+ ECloseNotModified,
+ ECloseModified,
+ ECloseLastFlushFailed
+ };
+
+// CLASS DECLARATIONS
+
+/**
+ * Node identifier in the framework
+ *
+ * @lib Rsfwsession.dll
+ * @since Series 60 3.1
+ */
+class TFid
+ {
+public: // New functions
+ inline TBool operator==( const TFid& aFid ) const;
+public: // Data
+ // Identifiers the volume. Each mount is an own volume.
+ TInt iVolumeId;
+ // Identifies the node (i.e. file or directory) inside the volume.
+ TInt iNodeId;
+ };
+
+/**
+ * Directory attributes for a file or directory.
+ *
+ * @lib rsfwsession.dll
+ * @since Series 60 3.1
+ */
+class TDirEntAttr
+ {
+public: // New functions
+ IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+ IMPORT_C void InternalizeL( RReadStream& aStream );
+ IMPORT_C void Clear();
+
+public: // Data
+ // attribute bits
+ TUint iAtt;
+ // file size in bytes
+ TInt iSize;
+ // last modified
+ TTime iModified;
+ // Symbian data-type (UID)
+ TUid iUid3;
+ };
+
+/**
+ * Encapsulates a file or directory entry.
+ *
+ * @lib rsfwsession.dll
+ * @since Series 60 3.1
+ */
+class TDirEnt
+ {
+public: // New functions
+ IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+ IMPORT_C void InternalizeL( RReadStream& aStream );
+ IMPORT_C void Clear();
+
+public: // Data
+ // attributes
+ TDirEntAttr iAttr;
+ // filename
+ TFileName iName;
+ };
+
+/**
+ * Remote File Engine input parameters header
+ *
+ * @lib rsfwsession.dll
+ * @since Series 60 3.1
+ */
+class TRfeInArgs
+ {
+public:
+ // operation code, used to cast this instance into the right impl. class
+ TInt iOpCode;
+ // The fid of the target file (not used in root operation).
+ TFid iFid;
+ };
+
+/**
+ * Remote File Engine output parameters header
+ *
+ * @lib rsfwsession.dll
+ * @since Series 60 3.1
+ */
+class TRfeOutArgs
+ {
+public: // Data
+ TUint iUnique; // The request ID
+ };
+
+/**
+ * Remote File Engine operation input and output parameter structures
+ *
+ * @lib rsfwsession.dll
+ * @since Series 60 3.1
+ */
+// Close
+class TRfeCloseInArgs : public TRfeInArgs
+ {
+public:
+ TInt iFlags;
+ };
+
+// Create
+class TRfeCreateInArgs : public TRfeInArgs
+ {
+public:
+ TDirEnt iEntry;
+ TInt iExcl;
+ };
+
+class TRfeCreateOutArgs : public TRfeOutArgs
+ {
+public:
+ TFid iFid;
+ TDirEntAttr iAttr;
+ };
+
+// Fetch and cache
+class TRfeFetchInArgs : public TRfeInArgs
+ {
+public:
+ TInt iFirstByte;
+ TInt iLastByte;
+ };
+
+class TRfeFetchOutArgs : public TRfeOutArgs
+ {
+public:
+ // last byte that was actually fetched, might be more than was requested
+ TInt iLastByte;
+ };
+
+// Fetch without caching
+class TRfeFetchDataInArgs : public TRfeInArgs
+ {
+public:
+ TInt iFirstByte;
+ TInt iLastByte;
+ };
+
+class TRfeFetchDataOutArgs : public TRfeOutArgs
+ {
+public:
+ TFileName iTempPath;
+ TBool iUseTempPath;
+ };
+
+// flush
+class TRfeFlushInArgs : public TRfeInArgs
+ {
+public:
+ TInt iFirstByte;
+ TInt iDataLength;
+ TInt iTotalSize;
+ };
+
+
+// Fsync
+class TRfeFsyncInArgs : public TRfeInArgs
+ {
+public:
+ };
+
+// GetAttr
+class TRfeGetAttrInArgs : public TRfeInArgs
+ {
+public:
+ };
+
+class TRfeGetAttrOutArgs : public TRfeOutArgs
+ {
+public:
+ TDirEntAttr iAttr;
+ };
+
+// Ioctl
+class TRfeIoctlInArgs : public TRfeInArgs
+ {
+public:
+ TInt iCmd;
+ TInt iLen;
+ union
+ {
+ TUint8 iData8[1];
+ TUint32 iData32[1];
+ };
+ };
+
+// Lookup
+class TRfeLookupInArgs : public TRfeInArgs
+ {
+public:
+ TFileName iName;
+ TUint iNodeType;
+ };
+
+class TRfeLookupOutArgs : public TRfeOutArgs
+ {
+public:
+ TFid iFid;
+ };
+
+// Mkdir
+class TRfeMkdirInArgs : public TRfeInArgs
+ {
+public:
+ TDirEnt iEntry;
+ };
+
+class TRfeMkdirOutArgs : public TRfeOutArgs
+ {
+public:
+ TFid iFid;
+ TDirEntAttr iAttr;
+ };
+
+// OpenByPath
+class TRfeOpenByPathInArgs : public TRfeInArgs
+ {
+public:
+ TUint iFlags;
+ TBool iTrueOpen;
+ };
+
+
+class TRfeOpenByPathOutArgs : public TRfeOutArgs
+ {
+public:
+ TFileName iPath;
+ TDirEntAttr iAttr;
+ };
+
+// Remove
+class TRfeRemoveInArgs : public TRfeInArgs
+ {
+public:
+ TFileName iName;
+ };
+
+// Rename
+class TRfeRenameInArgs : public TRfeInArgs
+ {
+public:
+ TFileName iSrcName;
+ TFid iDstFid;
+ TFileName iDstName;
+ TBool iOverWrite;
+ };
+
+// Rmdir
+class TRfeRmdirInArgs : public TRfeInArgs
+ {
+public:
+ TFileName iName;
+ };
+
+// Root operation returns the fid of the volume root
+class TRfeRootInArgs : public TRfeInArgs
+ {
+ };
+
+class TRfeRootOutArgs : public TRfeOutArgs
+ {
+public:
+ TFid iFid;
+ };
+
+// SetAttr
+class TRfeSetAttrInArgs : public TRfeInArgs
+ {
+public:
+ TDirEntAttr iMask;
+ TDirEntAttr iAttr;
+ };
+
+// Requests whether it is ok to write n bytes to the local cache
+class TRfeWriteDataInArgs : public TRfeInArgs
+ {
+public:
+ // Number of bytes to be written.
+ TUint iBytes;
+ };
+
+class TRfeWriteDataOutArgs : public TRfeOutArgs
+ {
+public:
+ // Permission to write.
+ TBool iOkToWrite;
+ };
+
+#include "rsfwinterface.inl"
+
+#endif // RSFWINTERFACE_H
+
+// End of File