diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/PDK/Source/GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/PDK/Source/GUID-5592E9C1-D490-538F-9B11-5EFB72DEDBE2.dita Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,99 @@ + + + + + +File +based dictionary store +

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.

+
Creating the dictionary store

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();
+
Reopening the dictionary store

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); +
+
See also

Dictionary +stores

+
\ No newline at end of file