userlibandfileserver/fileserver/inc/f32fsys.h
changeset 140 2ac1c5c27758
parent 33 0173bcd7697c
child 176 af6ec97d9189
equal deleted inserted replaced
135:5e441a173c63 140:2ac1c5c27758
   554 	TInt iSpare2;
   554 	TInt iSpare2;
   555 
   555 
   556 	
   556 	
   557 	friend class LocalDrives;			// for access to iChanged flag
   557 	friend class LocalDrives;			// for access to iChanged flag
   558 	friend class CExtNotifyMediaChange; // for access to iChanged flag
   558 	friend class CExtNotifyMediaChange; // for access to iChanged flag
       
   559 	
       
   560 #if defined(_USE_CONTROLIO) || defined(_DEBUG) || defined(_DEBUG_RELEASE)
       
   561 	friend class TFsControlIo;			// for access to LocateDrives()
       
   562 #endif
   559 	};
   563 	};
   560 
   564 
   561 class CFileCB;
   565 class CFileCB;
   562 class CDirCB;
   566 class CDirCB;
   563 
   567 
  1612 
  1616 
  1613 	void SetDeleteOnClose();
  1617 	void SetDeleteOnClose();
  1614 	TBool DeleteOnClose() const;
  1618 	TBool DeleteOnClose() const;
  1615  
  1619  
  1616 	
  1620 	
  1617 
       
  1618 	void SetNotifyAsyncReadersPending(TBool aNotifyAsyncReadersPending);
  1621 	void SetNotifyAsyncReadersPending(TBool aNotifyAsyncReadersPending);
  1619 	TBool NotifyAsyncReadersPending() const;
  1622 	TBool NotifyAsyncReadersPending() const;
  1620 	TInt CancelAsyncReadRequest(CFileShare* aShareP, TRequestStatus* aStatusP);
  1623 	TInt CancelAsyncReadRequest(CFileShare* aShareP, TRequestStatus* aStatusP);
  1621 
  1624 
  1622 	/** Extended API support methods */
  1625 	/** Extended API support methods */
  1627 	void SetSizeL(TInt64 aSize);
  1630 	void SetSizeL(TInt64 aSize);
  1628 
  1631 
  1629 	IMPORT_C TInt64 Size64() const;
  1632 	IMPORT_C TInt64 Size64() const;
  1630 	IMPORT_C void SetSize64(TInt64 aSize, TBool aDriveLocked);
  1633 	IMPORT_C void SetSize64(TInt64 aSize, TBool aDriveLocked);
  1631     IMPORT_C void SetMaxSupportedSize(TUint64 aMaxFileSize);
  1634     IMPORT_C void SetMaxSupportedSize(TUint64 aMaxFileSize);
       
  1635 	IMPORT_C TBool DirectIOMode(const RMessagePtr2& aMessage);
  1632 
  1636 
  1633 
  1637 
  1634     TInt64 CachedSize64() const;
  1638     TInt64 CachedSize64() const;
  1635 	void SetCachedSize64(TInt64 aSize);
  1639 	void SetCachedSize64(TInt64 aSize);
  1636 	TInt FindLock64(TInt64 aPosLow,TInt64 aPosHigh);
  1640 	TInt FindLock64(TInt64 aPosLow,TInt64 aPosHigh);
  1637 	TInt AddLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
  1641 	TInt AddLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
  1638 	TInt RemoveLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
  1642 	TInt RemoveLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
  1639 	TInt CheckLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
  1643 	TInt CheckLock64(CFileShare* aFileShare,TInt64 aPos,TInt64 aLength);
       
  1644 
       
  1645 	/** Sequential mode */
       
  1646 	
       
  1647 	IMPORT_C TBool IsSequentialMode() const;
       
  1648 	void SetSequentialMode(TBool aSequential);
       
  1649 
       
  1650 	/**
       
  1651 	The FileShare List contains the file shares of an open file.
       
  1652 	*/
       
  1653 	TDblQue<CFileShare>& FileShareList() const;
       
  1654 	void AddShare(CFileShare& aFileShare);
  1640 
  1655 
  1641     /**
  1656     /**
  1642     Renames the file with the full file name provided.
  1657     Renames the file with the full file name provided.
  1643 
  1658 
  1644     Because the full name of the file includes the path, the function can
  1659     Because the full name of the file includes the path, the function can
  1952 	TBool iBadPower;
  1967 	TBool iBadPower;
  1953 
  1968 
  1954 public:
  1969 public:
  1955 
  1970 
  1956 	/**
  1971 	/**
  1957 	The full name of the file, including drive and extensions.
  1972 	The full name of the file, including its extension.
  1958 	*/
  1973 	*/
  1959 	HBufC* iFileName;
  1974 	HBufC* iFileName;
  1960 
  1975 
  1961 	/**
  1976 	/**
  1962 	The full name of the file, including drive and extensions - Folded.
  1977 	The full name of the file, including its extension - Folded.
  1963 	*/
  1978 	*/
  1964 	HBufC* iFileNameF;
  1979 	HBufC* iFileNameF;
  1965 
  1980 
  1966 private:
  1981 private:
  1967 	TUint32	            iNameHash;
  1982 	TUint32	            iNameHash;
  1968 	TDrive*             iCreatedDrive;
  1983 	TDrive*             iCreatedDrive;
  1969 	TDrive*             iDrive;
  1984 	TDrive*             iDrive;
  1970 	CMountCB*           iMount;
  1985 	CMountCB*           iMount;
  1971 	TFileLocksArray*    iFileLocks; ///< an array of file position locks
  1986 	TFileLocksArray*    iFileLocks;		// An array of file position locks
  1972 	TDblQueLink         iMountLink;
  1987 	TDblQueLink         iMountLink;
  1973 	
  1988 	CFileBody*			iBody;
  1974 private:
       
  1975 	CFileBody* iBody;
       
  1976 
  1989 
  1977 	friend class TDrive;
  1990 	friend class TDrive;
  1978 	friend class CMountCB;
  1991 	friend class CMountCB;
  1979 	friend class CFileShare;
  1992 	friend class CFileShare;
  1980 	friend class TFsFileRead;
  1993 	friend class TFsFileRead;
  2023 	~CFileShare();
  2036 	~CFileShare();
  2024 	TInt CheckMount();
  2037 	TInt CheckMount();
  2025 	void InitL();
  2038 	void InitL();
  2026 	inline CFileCB& File();
  2039 	inline CFileCB& File();
  2027 
  2040 
  2028 	// For serialising aync requests 
  2041 	// For serialising async requests 
  2029 	TBool RequestStart(CFsMessageRequest* aRequest);
  2042 	TBool RequestStart(CFsMessageRequest* aRequest);
  2030 	void RequestEnd(CFsMessageRequest* aRequest);
  2043 	void RequestEnd(CFsMessageRequest* aRequest);
  2031 	TBool RequestInProgress() const;
  2044 	TBool RequestInProgress() const;
  2032 	inline TBool IsFileModeBig();
  2045 	inline TBool IsFileModeBig();
  2033 	
  2046 	
  2048 private:
  2061 private:
  2049 	CFileCB* iFile;
  2062 	CFileCB* iFile;
  2050 
  2063 
  2051 	// A pointer to the current request. Used for serializing client 
  2064 	// A pointer to the current request. Used for serializing client 
  2052 	// async read/write requests which might otherwise be processed out
  2065 	// async read/write requests which might otherwise be processed out
  2053 	// of order due to fair scheduling
  2066 	// of order due to fair scheduling.
  2054 	CFsMessageRequest* iCurrentRequest;	
  2067 	CFsMessageRequest* iCurrentRequest;
       
  2068 	
       
  2069 	// The FileShare List link object.
       
  2070 	TDblQueLink iShareLink;
       
  2071 
       
  2072 friend class CFileBody;	// For access to iShareLink
  2055 	};
  2073 	};
  2056 
  2074 
  2057 
  2075 
  2058 
  2076 
  2059 
  2077