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 |