author | William Roberts <williamr@symbian.org> |
Tue, 16 Mar 2010 16:12:26 +0000 | |
branch | Symbian2 |
changeset 2 | 2fe1408b6811 |
parent 0 | 061f57f2323e |
child 4 | 837f303aceeb |
permissions | -rw-r--r-- |
2
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
1 |
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
2 |
// All rights reserved. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
3 |
// This component and the accompanying materials are made available |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
4 |
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
5 |
// which accompanies this distribution, and is available |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
6 |
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
7 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
8 |
// Initial Contributors: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
9 |
// Nokia Corporation - initial contribution. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
10 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
11 |
// Contributors: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
12 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
13 |
// Description: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
14 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
15 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
16 |
#if !defined(__S32FILE_H__) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
17 |
#define __S32FILE_H__ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
18 |
#if !defined(__F32FILE_H__) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
19 |
#include <f32file.h> |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
20 |
#endif |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
21 |
#if !defined(__S32STOR_H__) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
22 |
#include <s32stor.h> |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
23 |
#endif |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
24 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
25 |
#ifndef DEFAULT_FILE_BUF_SIZE |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
26 |
#define DEFAULT_FILE_BUF_SIZE 4096 |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
27 |
#else |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
28 |
#if DEFAULT_FILE_BUF_SIZE < 1536 |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
29 |
#error "DEFAULT_FILE_BUF_SIZE macro value can't be less than 1536" |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
30 |
#endif |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
31 |
#endif |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
32 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
33 |
The default size of the file buffer. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
34 |
@internalComponent |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
35 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
36 |
const TInt KDefaultFileBufSize=DEFAULT_FILE_BUF_SIZE; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
37 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
38 |
template <class T> |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
39 |
class TCapture; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
40 |
class RPermanentFileStoreIter; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
41 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
42 |
/** A stream buffer hosted by a file. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
43 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
44 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
45 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
46 |
Instances of this class are used by file based persistent stores, i.e. CFileStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
47 |
type objects. An RFileBuf object is associated with a file and the file is |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
48 |
said to be attached to the stream buffer. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
49 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
50 |
An RFileBuf object is also used by RFileReadStream and RFileWriteStream objects |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
51 |
to provide buffered file I/O. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
52 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
53 |
The stream buffer has intermediate buffering capabilities. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
54 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
55 |
When used as the basis for a file store, it hosts multiple streams through |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
56 |
the TStreamExchange and RShareBuf classes. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
57 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
58 |
Open(), Close(), Attach(), Detach(), File() and Reattach() usage patterns: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
59 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
60 |
Pattern 1: RFileBuf owns the file |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
61 |
step 1a: Open()/Create()/Temp() is used to connect the buffer to a file |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
62 |
step 1b: Use the file buffer |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
63 |
step 1c: Close() releases this resource. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
64 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
65 |
Pattern 2: RFile is opened elsewhere and ownership is handed over to RFileBuf |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
66 |
This may happen if the file is already opened by another API, or from another process for example |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
67 |
step 2a: Attach() is used to hand ownership of the opened file to the buffer. After Attach() the supplied file handle is NULLed. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
68 |
step 2b: Use the file buffer |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
69 |
step 2c: Close() releases the file resource. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
70 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
71 |
Pattern 3: RFileBuf is used transiently to manage an existing opened file: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
72 |
step 3a: Attach() is used to bind the buffer to the already open file. After Attach() the supplied file handle is NULLed. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
73 |
step 3b: Use the file buffer |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
74 |
step 3c: RFileBuf::File() is used to retrieve the file handle again, then Detach() is called to disconnect the buffer from the file. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
75 |
At this point, the destruction of the file buffer will have no effect on the file. The retrieved file handle in step 3c must be used to close the file. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
76 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
77 |
Pattern 4: Transient direct file access to a buffered file |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
78 |
step 4a: RFileBuf::File() is used to retrieve the file handle. [Optional: Detach() is used to disconnect the file buffer] |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
79 |
step 4b: Use the file directly. Note that writing to the file may cause coherency problems with the RFileBuf buffer - in which case you need to Reset() the buffer as well. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
80 |
step 4c: [Optional: Reattach() is used to hand the file back to the buffer]. Use of the buffer is resumed |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
81 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
82 |
@see CFileStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
83 |
@see RFileReadStream |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
84 |
@see RFileWriteStream */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
85 |
class RFileBuf : public TStreamBuf |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
86 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
87 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
88 |
IMPORT_C RFileBuf(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
89 |
IMPORT_C RFileBuf(TInt aSize); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
90 |
RFileBuf(TCapture<RFileBuf> aCapture); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
91 |
IMPORT_C void Reset(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
92 |
inline void Reset(TInt aSize); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
93 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
94 |
IMPORT_C TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
95 |
IMPORT_C TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
96 |
IMPORT_C TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
97 |
IMPORT_C TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
98 |
IMPORT_C void Attach(RFile& aFile,TInt aPos=0); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
99 |
IMPORT_C void Close(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
100 |
inline void Detach(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
101 |
inline void Reattach(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
102 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
103 |
IMPORT_C void SetSizeL(TInt aSize); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
104 |
inline RFile& File() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
105 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
106 |
IMPORT_C TInt UnderflowL(TInt aMaxLength); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
107 |
IMPORT_C void OverflowL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
108 |
IMPORT_C void DoRelease(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
109 |
IMPORT_C void DoSynchL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
110 |
IMPORT_C TInt DoReadL(TAny* aPtr,TInt aMaxLength); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
111 |
IMPORT_C TInt DoReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
112 |
IMPORT_C void DoWriteL(const TAny* aPtr,TInt aLength); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
113 |
IMPORT_C TInt DoWriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
114 |
IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
115 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
116 |
inline void SetBuf(TRead,TUint8* aPtr,TUint8* anEnd); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
117 |
inline void SetBuf(TWrite,TUint8* aPtr,TUint8* anEnd); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
118 |
inline void SetBuf(TArea anArea,TUint8* aPtr,TUint8* anEnd); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
119 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
120 |
TUint8* AllocL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
121 |
void Free(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
122 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
123 |
void SetPos(TMark aMark,TInt aPos); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
124 |
inline void SetPos(TRead,TInt aPos); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
125 |
inline void SetPos(TWrite,TInt aPos); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
126 |
inline TInt Pos(TRead) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
127 |
inline TInt Pos(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
128 |
inline TInt MovePos(TRead,TInt anOffset); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
129 |
inline TInt MovePos(TWrite,TInt anOffset); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
130 |
TInt FileReadL(TAny* aPtr,TInt aMaxLength); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
131 |
void FileWriteL(const TAny* aPtr,TInt aLength,TInt aSeek); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
132 |
void FileWriteL(const TAny* aPtr,TInt aLength); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
133 |
TInt EndL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
134 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
135 |
inline TInt Lag(TRead) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
136 |
inline TInt Lag(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
137 |
TInt Mark(TMark aMark) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
138 |
inline TInt Mark(TRead) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
139 |
inline TInt Mark(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
140 |
inline TUint8* Limit(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
141 |
inline void SetLimit(TWrite,TUint8* aLimit); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
142 |
inline TInt Span(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
143 |
inline TInt Reach(TWrite) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
144 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
145 |
TUint8* iBase; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
146 |
TInt iSize; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
147 |
__MUTABLE RFile iFile; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
148 |
TInt iRPos; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
149 |
TInt iWPos; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
150 |
TInt iExt; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
151 |
TUint8* iWLim; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
152 |
friend class CFileStore; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
153 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
154 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
155 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
156 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
157 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
158 |
* Supports the reading of a stream from a file. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
159 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
160 |
class RFileReadStream : public RReadStream |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
161 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
162 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
163 |
/** Constructs an empty read stream object. */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
164 |
RFileReadStream() {} |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
165 |
IMPORT_C RFileReadStream(RFile& aFile,TInt aPos=0); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
166 |
IMPORT_C TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
167 |
IMPORT_C void Attach(RFile& aFile,TInt aPos=0); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
168 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
169 |
RFileBuf iSource; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
170 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
171 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
172 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
173 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
174 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
175 |
* Supports the writing of a stream to a file. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
176 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
177 |
class RFileWriteStream : public RWriteStream |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
178 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
179 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
180 |
/** Constructs an empty write stream object. */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
181 |
RFileWriteStream() {} |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
182 |
inline RFileWriteStream(const MExternalizer<TStreamRef>& anExter); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
183 |
IMPORT_C RFileWriteStream(RFile& aFile,TInt aPos=0); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
184 |
IMPORT_C TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
185 |
IMPORT_C TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
186 |
IMPORT_C TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
187 |
IMPORT_C TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
188 |
IMPORT_C void Attach(RFile& aFile,TInt aPos=0); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
189 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
190 |
RFileBuf iSink; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
191 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
192 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
193 |
class CFileStore; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
194 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
195 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
196 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
197 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
198 |
* A class containing a set of factory functions for opening an existing direct |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
199 |
file store and an existing permanent file store identified using a Uidtype. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
200 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
201 |
class FileStoreFactory |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
202 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
203 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
204 |
IMPORT_C static CFileStore* DirectLC(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
205 |
IMPORT_C static CFileStore* PermanentLC(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
206 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
207 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
208 |
const TInt KDirectFileStoreLayoutUidValue=268435511; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
209 |
/** The value of the KPermanentFileStoreLayoutUidValue UID. */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
210 |
const TInt KPermanentFileStoreLayoutUidValue=268435536; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
211 |
/** The UID that identifies a file store as being a direct file store. */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
212 |
const TUid KDirectFileStoreLayoutUid={KDirectFileStoreLayoutUidValue}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
213 |
/** The UID that identifies a file store as being a permanent file store. */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
214 |
const TUid KPermanentFileStoreLayoutUid={KPermanentFileStoreLayoutUidValue}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
215 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
216 |
typedef CFileStore* (*TFileStoreFactoryFunction)(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
217 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
218 |
#define KDirectFileStoreFactoryFunction (&FileStoreFactory::DirectLC) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
219 |
#define KPermanentFileStoreFactoryFunction (&FileStoreFactory::PermanentLC) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
220 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
221 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
222 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
223 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
224 |
* File based persistent store abstract base class. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
225 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
226 |
The class encapsulates the basic behaviour of file based stores. File based |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
227 |
stores are persistent stores, i.e. they have the ability to keep the external |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
228 |
representation of objects for longer than the lifetime of the applications |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
229 |
which created those objects. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
230 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
231 |
The class forms the base for the direct file store, CDirectFileStore, and |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
232 |
the permanent file store, CPermanentFileStore. In general, it is sufficient |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
233 |
for pointers to file based store objects to be of type CFileStore, rather |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
234 |
than of the concrete file store type. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
235 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
236 |
Existing file stores can be opened using the member functions OpenL(), OpenLC(), |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
237 |
FromL() and FromLC(). New file stores, however, must be created using the |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
238 |
appropriate member function of the concrete type. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
239 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
240 |
class CFileStore : public CPersistentStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
241 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
242 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
243 |
IMPORT_C static CFileStore* OpenL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
244 |
IMPORT_C static CFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
245 |
IMPORT_C static CFileStore* FromL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
246 |
IMPORT_C static CFileStore* FromLC(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
247 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
248 |
IMPORT_C static CFileStore* OpenL(RFs& aFs,const TDesC& aName,TUint aFileMode,const TFileStoreFactoryFunction aFactory[]); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
249 |
IMPORT_C static CFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUint aFileMode,const TFileStoreFactoryFunction aFactory[]); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
250 |
IMPORT_C static CFileStore* FromL(RFile& aFile,const TFileStoreFactoryFunction aFactory[]); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
251 |
IMPORT_C static CFileStore* FromLC(RFile& aFile,const TFileStoreFactoryFunction aFactory[]); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
252 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
253 |
inline const TUidType& Type() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
254 |
IMPORT_C void SetTypeL(const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
255 |
/** Gets the UID that uniquely identifies the specific type of this file store. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
256 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
257 |
This function must be defined and implemented by classes derived from CFileStore. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
258 |
The direct file store, CDirectFileStore and the permanent file store, CPermanentFileStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
259 |
both implement suitable functions. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
260 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
261 |
@return The UID that uniquely identifies the specific type of file store. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
262 |
@see KDirectFileStoreLayoutUid |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
263 |
@see KPermanentFileStoreLayoutUid */ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
264 |
virtual TUid Layout() const=0; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
265 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
266 |
inline void Reset(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
267 |
inline void Reset(TInt aSize); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
268 |
inline void Detach(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
269 |
inline void Reattach(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
270 |
inline RFile& File() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
271 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
272 |
IMPORT_C void MarshalL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
273 |
IMPORT_C ~CFileStore(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
274 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
275 |
typedef CFileStore* (*TNewFunction)(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
276 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
277 |
IMPORT_C static CFileStore* OpenL(RFs& aFs,const TDesC& aName,TUint aFileMode,TFileStoreFactoryFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
278 |
IMPORT_C static CFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUint aFileMode,TFileStoreFactoryFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
279 |
IMPORT_C static CFileStore* CreateL(RFs& aFs,const TDesC& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
280 |
IMPORT_C static CFileStore* CreateLC(RFs& aFs,const TDesC& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
281 |
IMPORT_C static CFileStore* ReplaceL(RFs& aFs,const TDesC& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
282 |
IMPORT_C static CFileStore* ReplaceLC(RFs& aFs,const TDesC& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
283 |
IMPORT_C static CFileStore* TempL(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
284 |
IMPORT_C static CFileStore* TempLC(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
285 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
286 |
IMPORT_C static CFileStore* FromL(RFile& aFile,TFileStoreFactoryFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
287 |
IMPORT_C static CFileStore* FromLC(RFile& aFile,TFileStoreFactoryFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
288 |
IMPORT_C static CFileStore* NewL(RFile& aFile,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
289 |
IMPORT_C static CFileStore* NewLC(RFile& aFile,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
290 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
291 |
IMPORT_C CFileStore(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
292 |
IMPORT_C CFileStore(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
293 |
IMPORT_C void Destruct(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
294 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
295 |
inline TStreamExchange& Host() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
296 |
inline TBool IsHost(const MStreamBuf* aBuf) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
297 |
IMPORT_C void SynchL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
298 |
inline void SetSizeL(TInt aSize); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
299 |
IMPORT_C void ChangedL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
300 |
IMPORT_C void RefreshL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
301 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
302 |
IMPORT_C void DoCommitL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
303 |
IMPORT_C void DoRevertL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
304 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
305 |
virtual void ExternalizeL(RWriteStream& aStream) const=0; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
306 |
virtual void InternalizeL(RReadStream& aStream)=0; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
307 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
308 |
static CFileStore* DoNewL(RFile& aFile,TNewFunction aFunction); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
309 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
310 |
RFileBuf iBuf; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
311 |
TUidType iType; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
312 |
__MUTABLE TStreamExchange iHost; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
313 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
314 |
const TInt KFileStoreStartOffset=sizeof(TCheckedUid); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
315 |
#if defined(__NO_CLASS_CONSTS__) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
316 |
#define KFileStoreStart TStreamPos(KFileStoreStartOffset) |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
317 |
#else |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
318 |
const TStreamPos KFileStoreStart=TStreamPos(KFileStoreStartOffset); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
319 |
#endif |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
320 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
321 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
322 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
323 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
324 |
* Direct file store. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
325 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
326 |
A direct file store implements a subset of the operations defined by the store |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
327 |
abstract framework. Direct file stores allow streams to be created and objects |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
328 |
externalised to them however once the streams have been committed and |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
329 |
closed, they cannot subsequently be changed, i.e. streams cannot be replaced, |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
330 |
deleted, extended or changed in any way. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
331 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
332 |
class CDirectFileStore : public CFileStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
333 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
334 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
335 |
inline static CDirectFileStore* OpenL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
336 |
inline static CDirectFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
337 |
inline static CDirectFileStore* CreateL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
338 |
inline static CDirectFileStore* CreateLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
339 |
inline static CDirectFileStore* ReplaceL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
340 |
inline static CDirectFileStore* ReplaceLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
341 |
inline static CDirectFileStore* TempL(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
342 |
inline static CDirectFileStore* TempLC(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
343 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
344 |
inline static CDirectFileStore* FromL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
345 |
inline static CDirectFileStore* FromLC(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
346 |
inline static CDirectFileStore* NewL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
347 |
inline static CDirectFileStore* NewLC(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
348 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
349 |
IMPORT_C TUid Layout() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
350 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
351 |
IMPORT_C CDirectFileStore(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
352 |
IMPORT_C CDirectFileStore(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
353 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
354 |
IMPORT_C MStreamBuf* DoReadL(TStreamId anId) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
355 |
IMPORT_C MStreamBuf* DoCreateL(TStreamId& anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
356 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
357 |
IMPORT_C void ExternalizeL(RWriteStream& aStream) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
358 |
IMPORT_C void InternalizeL(RReadStream& aStream); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
359 |
IMPORT_C void DoSetRootL(TStreamId anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
360 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
361 |
IMPORT_C static CFileStore* DoNewL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
362 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
363 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
364 |
class CPermanentStoreCoord; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
365 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
366 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
367 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
368 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
369 |
* Permanent file store. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
370 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
371 |
This type of store supports full manipulation of store contents. Existing |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
372 |
streams within this type of store can be changed. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
373 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
374 |
class CPermanentFileStore : public CFileStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
375 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
376 |
friend class RPermanentFileStoreIter; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
377 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
378 |
inline static CPermanentFileStore* OpenL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
379 |
inline static CPermanentFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
380 |
inline static CPermanentFileStore* CreateL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
381 |
inline static CPermanentFileStore* CreateLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
382 |
inline static CPermanentFileStore* ReplaceL(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
383 |
inline static CPermanentFileStore* ReplaceLC(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
384 |
inline static CPermanentFileStore* TempL(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
385 |
inline static CPermanentFileStore* TempLC(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
386 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
387 |
inline static CPermanentFileStore* FromL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
388 |
inline static CPermanentFileStore* FromLC(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
389 |
inline static CPermanentFileStore* NewL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
390 |
inline static CPermanentFileStore* NewLC(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
391 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
392 |
IMPORT_C TUid Layout() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
393 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
394 |
IMPORT_C CPermanentFileStore(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
395 |
IMPORT_C CPermanentFileStore(RFileBuf& aBuf,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
396 |
IMPORT_C void MarshalL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
397 |
IMPORT_C ~CPermanentFileStore(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
398 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
399 |
IMPORT_C MStreamBuf* DoReadL(TStreamId anId) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
400 |
IMPORT_C MStreamBuf* DoCreateL(TStreamId& anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
401 |
IMPORT_C MStreamBuf* DoWriteL(TStreamId anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
402 |
IMPORT_C MStreamBuf* DoReplaceL(TStreamId anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
403 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
404 |
IMPORT_C void ExternalizeL(RWriteStream& aStream) const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
405 |
IMPORT_C void InternalizeL(RReadStream& aStream); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
406 |
IMPORT_C void DoSetRootL(TStreamId anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
407 |
IMPORT_C TStreamId DoExtendL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
408 |
IMPORT_C void DoDeleteL(TStreamId anId); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
409 |
IMPORT_C void DoCommitL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
410 |
IMPORT_C void DoRevertL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
411 |
IMPORT_C MIncrementalCollector* DoReclaimL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
412 |
IMPORT_C MIncrementalCollector* DoCompactL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
413 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
414 |
inline CPermanentStoreCoord& Coord() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
415 |
CPermanentStoreCoord& CoordL() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
416 |
CPermanentStoreCoord& TrimL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
417 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
418 |
IMPORT_C static CFileStore* DoNewL(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
419 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
420 |
__MUTABLE CPermanentStoreCoord* iCoord; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
421 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
422 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
423 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
424 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
425 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
426 |
* File based dictionary store. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
427 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
428 |
A dictionary store is a store where a stream is accessed by UID, rather than |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
429 |
directly by stream ID. A dictionary store contains streams in the usual way |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
430 |
but, in addition, the root stream is a stream dictionary, i.e. a CStreamDictionary |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
431 |
type. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
432 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
433 |
class CDictionaryFileStore : public CDictionaryStore |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
434 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
435 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
436 |
IMPORT_C static CDictionaryFileStore* SystemL(RFs& aFs); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
437 |
IMPORT_C static CDictionaryFileStore* SystemLC(RFs& aFs); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
438 |
IMPORT_C static CDictionaryFileStore* OpenL(RFs& aFs,const TDesC& aName,TUid aUid3); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
439 |
IMPORT_C static CDictionaryFileStore* OpenLC(RFs& aFs,const TDesC& aName,TUid aUid3); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
440 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
441 |
void ConstructL(RFs& aFs,const TDesC& aName,TUid aUid3); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
442 |
void CreateStoreL(RFile& aFile,const TUidType& aType); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
443 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
444 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
445 |
/** |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
446 |
* @publishedAll |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
447 |
* @released |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
448 |
* Uses a file directly to implement the page pool interface MPagePool. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
449 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
450 |
The pages are written sequentially through the file. You should call Close() |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
451 |
to release the file resource after CreateL(), OpenL(), ReplaceL() or Temp(). |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
452 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
453 |
A file page pool uses a cache to store pages in-memory and to cache frequently |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
454 |
accessed pages. You should provide a cache object (CPageCache) to the pool |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
455 |
for this purpose. |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
456 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
457 |
@see CPageCache |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
458 |
@see RFile |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
459 |
*/ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
460 |
class RFilePagePool : public TCachePagePool |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
461 |
{ |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
462 |
public: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
463 |
IMPORT_C RFilePagePool(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
464 |
IMPORT_C RFilePagePool(CPageCache& aCache); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
465 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
466 |
inline TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
467 |
inline TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
468 |
inline TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
469 |
inline TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
470 |
inline void Attach(RFile& aFile); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
471 |
IMPORT_C void Close(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
472 |
IMPORT_C void Release(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
473 |
IMPORT_C TInt Flush(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
474 |
IMPORT_C void FlushL(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
475 |
inline void Detach(); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
476 |
// |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
477 |
inline RFile& File() const; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
478 |
protected: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
479 |
IMPORT_C TPageRef ExtendL(const TAny* aPage,TPageReclamation aReclamation); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
480 |
IMPORT_C void WriteL(TPageRef aRef,const TAny* aPage,TPageChange aChange); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
481 |
IMPORT_C void ReadL(TPageRef aRef,TAny* aPage); |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
482 |
private: |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
483 |
__MUTABLE RFile iFile; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
484 |
}; |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
485 |
|
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
486 |
#include <s32file.inl> |
2fe1408b6811
Final list of Symbian^2 public API header files
William Roberts <williamr@symbian.org>
parents:
0
diff
changeset
|
487 |
#endif |