ISqlSyncMetadataStore インターフェイス

ストレージに簡易データベースを使用するメタデータ ストアを表します。

interface ISqlSyncMetadataStore : ISyncMetadataStore2

メンバー

ISqlSyncMetadataStore メソッド 説明

ISqlSyncMetadataStore::CreateStore

メタデータ ストア ファイルと、それを表すメタデータ ストア オブジェクトを作成します。

ISqlSyncMetadataStore::OpenStore

既存のメタデータ ストア ファイルを開き、それを表すメタデータ ストア オブジェクトを返します。

ISqlSyncMetadataStore::Dispose

ISqlSyncMetadataStore オブジェクトによって使用されているリソースを解放します。

解説

Metadata Storage Service には、Metadata Storage Service API が完全実装されています。Metadata Storage Service API は、簡易データベースを使用して、同期に必要なすべてのメタデータをファイル システム内の指定された場所にある 1 つのデータベース ファイルに格納します。この実装のエントリ ポイントは ISqlSyncMetadataStore です。このインターフェイスを実装するオブジェクトを取得するには、CLSID_SyncMetadataStoreIID_ISqlSyncMetadataStoreCoCreateInstance 関数に渡します。

Metadata Storage Service API の実装を使用するには

  1. ISqlSyncMetadataStore::CreateStore を使用して新規のメタデータ ストアを作成するか、ISqlSyncMetadataStore::OpenStore を使用して既存のメタデータ ストアを開きます。

  2. 指定したレプリカ メタデータを ISyncMetadataStore::InitializeReplicaMetadata を使用して作成するか、既存のレプリカ メタデータを ISyncMetadataStore::GetReplicaMetadata を使用して開きます。GetReplicaMetadata は、メタデータ ストアに格納されているレプリカ メタデータにアクセスできる IReplicaMetadata の実装を返します。

  3. ISyncMetadataStore::BeginTransaction を使用して、データベース トランザクションを開始します。これにより、メソッドが呼び出された後でメタデータに加えられた変更は、すべてデータベースに保存されるか、一切保存されなくなります。

  4. IReplicaMetadata::CreateNewItemMetadata を使用して新規の項目メタデータを作成するか、IReplicaMetadata::FindItemMetadataByGlobalId などのメソッドを使用して個々の項目に関するメタデータを見つけます。これらのメソッドによって、メタデータ ストアに保存されている項目メタデータにアクセスできる IItemMetadata の実装が返されます。

  5. 項目メタデータに変更を加え、IReplicaMetadata::SaveItemMetadata を使用して変更を保存します。

  6. ISyncMetadataStore::CommitTransaction を呼び出してメタデータ ストアに対する変更をコミットするか、ISyncMetadataStore::RollbackTransaction を呼び出して変更を破棄します。

API のこの実装では、項目ストアから削除された項目の検出に役立つメソッドも IReplicaMetadata オブジェクトに提供されます。たとえば、IReplicaMetadata::GetUnreportedItems は、メタデータ ストアに存在しても項目ストアには存在しない項目のリストを返します。次に、プロバイダーはメタデータ ストア内でこのリスト内の項目に廃棄標識でマーク付けする必要があります。

必要条件

Header: Metastore.h

参照

概念

Sync Framework Metadata Storage Service のコンポーネント
メタデータの格納の概要