File Store Type and Layout

File stores can be given a unique identity, known as the file store type, in order to differentiate them from each other.

The file store type is defined as a TUidType which can be constructed from one, two or three UIDs, i.e. TUid components.

The first UID component identifies the layout of the file store; i.e. it identifies the file store as either a direct file store or a permanent file store. The second and/or the third UID components are application dependent.

After creating a new file store, an application must set the type of the file store using the file store's SetTypeL() member function.

As a minimum requirement, the first UID component of the TUidType, which identifies the layout of the file store, must be specified. This component takes one of the values:

  • KPermanentFileStoreLayout to identify a permanent file store.

  • KDirectFileStoreLayout to identify a direct file store.

The following code fragment is typical:

...
CFileStore* store = CDirectFileStore::ReplaceLC(...,...,...);
store->SetTypeL(KDirectFileStoreLayoutUid);
...

If an application needs to explicitly set the second or the third UID component, then the TUidType object must be constructed explicitly and passed to SetTypeL(); for example:

 ...
 CFileStore* store = CDirectFileStore::ReplaceLC(...,...,...);
 TUidType thetype(KDirectFileStoreLayoutUid,...,...);
 store->SetTypeL(thetype);
 ...

The file store's type can be retrieved by calling the file store’s Type() member function.

The file store's layout can be retrieved by calling the file store’s Layout() member function.

Related concepts
UID manipulation