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.