CDictionaryFileStore is a concrete implementation of a dictionary store and uses a file store in its implementation.
Although the need for a file based dictionary store is driven by the application architecture, the following code fragments illustrate the way this store can be used.
The code fragments shown here create and read a file based dictionary store. This dictionary store is differentiated from other dictionary stores by the UID whose value is 0x0001 .
It should be noted that the values assigned to the UIDs are purely arbitrary and are used for illustrative purposes only .
This code fragment constructs an object of type TClass and stores it in the dictionary store, associating the stream with the UID whose value is 0x0002.
Note that a dictionary write stream is needed to write streams to a dictionary store.
_LIT(KFileName,"C:\\data\\stdict.dat");
_LIT(KTxtData,"Text type data"):
TParse dictionaryname;
...
fsSession.Parse(KFileName,dictionaryname);
...
// Open the dictionary store (create if it doesn't exist)
CDictionaryStore* dictstore = CDictionaryFileStore::OpenLC (fsSession, dictionaryname.FullName(),TUid::Uid(0x0001) );
// Construct a TClass and put some data into it
TClass thedata;
thedata.iFixBuf = KTxtData;
thedata.iUintValue = 1;
thedata.iIntValue = -2;
thedata.iRealValue = 3.4;
// construct the dictionary write stream and
// associate the stream with the UID
// whose value is 0x0002
RDictionaryWriteStream out;
out.AssignLC(*dictstore,TUid::Uid(0x0002));
// write the TClass data to the stream
out << thedata;
// Commit changes to the stream
out.CommitL();
// Cleanup the dictionary stream object
CleanupStack::PopAndDestroy();
// Now commit all changes to the store
dictstore->CommitL();
// Close the dictionary store (closes the
// associated file and destroys the
// dictionary store object)
CleanupStack::PopAndDestroy();
This code fragment re-opens the dictionary store and restores the <code>TClass</code> object from the stream associated with the UID whose value is <code>0x0002</code>
0x0002
_LIT(KFileName,"C:\\data\\stdict.dat");
TParse dictionaryname;
...
fsSession.Parse(KFileName,dictionaryname);
...
// Open the dictionary store
CDictionaryStore* dictstore=CDictionaryFileStore::OpenLC(fsSession, dictionaryname.FullName(), TUid::Uid(0x0001) );
// construct the dictionary read stream.
// Prepare to read the stream associated with
// the unique identifier whose value is 0x0002
RDictionaryReadStream in;
in.OpenLC(*dictstore,TUid::Uid(0x0002));
// Construct a TClass object ...
TClass thedata;
// ... and read data from the stream
in >> thedata;
// Cleanup the dictionary stream object
// and ...
// Close the dictionary store
// (closes the associated file and destroys the
// dictionary store object)
CleanupStack::PopAndDestroy(2);
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.