Verwalten von Gruppendatensätzen

Ein Gruppendatensatz sind bestimmte Daten, die für alle aktiven Mitglieder einer Peergruppe veröffentlicht werden, z. B. eine Chatnachricht oder eine anwendungsspezifische Statusaktualisierung. Ein Datensatz wird durch die PEER _ RECORD-Struktur dargestellt und enthält die folgenden Informationen zu einem Peer:

  • Die Datensatz-ID ist ein Wert, der einen Datensatz in der Peergruppe eindeutig identifiziert.
  • Eine GUID, die den Datensatztyp angibt. Anwendungen können verschiedene Datensatztypen unterstützen. Eine Anwendung interpretiert das Datenfeld eines Datensatzes basierend auf dem Datensatztyp. Einige GUIDs sind reserviert, und der API-Aufruf gibt PEER E NOT AUTHORIZED _ _ _ zurück, wenn die Anwendung versucht, sie zu verwenden.
  • Ein Satz von Datensatzattributen, die als XML-Zeichenfolge beschrieben werden. Die Attribute werden beim Durchsuchen von Datensätzen verwendet. Weitere Informationen zu Attributen finden Sie unter Datensatzattributschema.
  • Die Peerzeit, zu der ein Datensatz erstellt wird.
  • Die Peerzeit, zu der ein Datensatz abläuft.
  • Die Peerzeit, zu der ein Datensatz geändert wird.
  • Der Ersteller eines Datensatzes.
  • Der Member, der einen Datensatz ändert.
  • Eine PEER _ DATA-Struktur, die die kryptografische Signatur für alle Felder in dieser PEER _ RECORD-Struktur enthält. Dieses Feld kann nicht direkt von einem Peer aktualisiert oder geändert werden.
  • Eine PEER _ DATA-Struktur, die die anwendungsspezifischen Daten enthält, die diesem Datensatz als Bytearray zugeordnet sind. Der Datentyp in diesem Feld wird durch den anwendungsdefinierten Datensatztyp bestimmt.

Abrufen von Peergruppendatensätzen

Einzelne Datensätze werden durch Aufrufen von PeerGroupGetRecord mit der ID des Datensatzes ermittelt. Wenn alle Datensätze eines bestimmten Typs verarbeitet werden, wird der aufzählte Satz aller aktuellen Peergruppendatensätze abgerufen, indem zuerst PeerGroupEnumRecords aufgerufen wird, um die Enumeration zu öffnen, und anschließend iterativ PeerGetNextItem aufgerufen wird, bis alle Datensätze abgerufen werden. Schließen Sie die Enumeration, und geben Sie den ihr zugeordneten Arbeitsspeicher frei, indem Sie PeerEndEnumeration aufrufen.

Wenn ein Datensatz von einem Peer erstellt, gelöscht oder aktualisiert wird, wird der betroffene Datensatz über das PEER GROUP EVENT RECORD _ _ _ _ CHANGE-Ereignis für alle Mitglieder der Peergruppe veröffentlicht. Beachten Sie, dass ein Peer, der nicht mit der Gruppe verbunden ist, den aktualisierten Datensatz erhält, wenn er das nächste Mal eine Verbindung herstellt. Es ist wichtig, sich für dieses Ereignis mit PeerGroupRegisterEvent zu registrieren, wenn Ihre Anwendung Datensätze auf sinnvolle Weise verwaltet oder verwaltet. Alternativ kann die Anwendung die Datensatzdatenbank bei Bedarf mit peerGroupSearchRecords abfragen.

Wenn das PEER GROUP EVENT RECORD _ _ _ _ CHANGE-Ereignis ausgelöst wird, werden die spezifische Datensatz-ID und der Typ sowie der Typ der Änderung (Hinzufügen, Aktualisieren, Löschen) als PEER EVENT RECORD CHANGE _ _ _ _ DATA-Struktur empfangen. Diese Struktur wird mit einem Aufruf von PeerGroupGetEventData erhalten. Wenn die Änderung ein Hinzufügen oder Aktualisieren ist, sollten Sie PeerGroupGetRecord verwenden, um den Datensatz mit der angegebenen ID zu erhalten. Die lokale Datensatzdatenbank für die Infrastruktur wird automatisch aktualisiert.

Sie können auch nach bestimmten Datensätzen suchen, die auf bestimmten benutzerdefinierten Attributen basieren, die im Feld pwzAttributes von PEER _ RECORDangegeben sind, sowie nach vordefinierten Attributen. Verwenden Sie hierzu die PeerGroupSearchRecords-Funktion mit einer XML-Suchabfrage, die wie im Thema Suchabfrageformat für Datensätze angegeben formatiert ist.

Weitere Informationen zum Arbeiten mit Datensätzen in der Peerinfrastruktur finden Sie im Thema Datensätze unter Verwenden der Peerinfrastruktur.

Verwaltung von Peergruppendatensätzen

Wenn die ersten Einladungen vom Ersteller der Peergruppe ausgegeben werden, kann sie angeben, dass bestimmte Mitglieder in einer Administratorrolle (PEER GROUP ROLE ADMIN) dienen, wenn neue Anmeldeinformationen für den Benutzer ausgegeben werden (entweder über _ _ _ PeerGroupCreateInvitation oder PeerGroupIssueCredentials). Ein Administrator kann Alle Peergruppendatensätze direkt hinzufügen, löschen und aktualisieren. Umgekehrt kann ein Peergruppenmitglied, dessen Rolle auf PEER _ GROUP ROLE _ _ MEMBER oder PEER GROUP ROLE INVITING _ _ _ _ MEMBER festgelegt ist, nur eigene Datensätze hinzufügen, aktualisieren und löschen.

Der Ersteller verfügt standardmäßig über die Administratorrolle.

Um einen Datensatz zu aktualisieren, müssen Sie den Datensatz mit PeerGroupGetRecord oder PeerGroupEnumRecordsabrufen, die Änderungen vornehmen und den aktualisierten Datensatz an PeerGroupUpdateRecord übergeben.

Um einen Datensatz zu löschen, übergeben Sie die zu löschende Datensatz-ID an PeerGroupDeleteRecord.

Erstellen Sie zum Hinzufügen eines Datensatzes eine neue PEER _ RECORD-Struktur, und füllen Sie die folgenden Felder aus:

  • dwSize. Dieses Feld enthält den Wert von sizeof(PEER _ RECORD).
  • ftExpiration. Dieses Feld enthält das Ablaufdatum und die Uhrzeit dieses Datensatzes, ausgedrückt als Peerzeit als FILETIME-Struktur.
  • geben Sie ein. Dieses Feld enthält einen GUID-Wert, der den Datensatztyp für die Anwendung identifiziert. Wenn dieser Typ für Ihre Anwendungsinfrastruktur benutzerdefiniert ist, sollten Sie auch das Datenfeld auffüllen.

Die folgenden Felder werden von der Infrastruktur aufgefüllt und ignoriert, wenn sie von der Anwendung festgelegt werden:

  • id
  • pwzCreatorId
  • pwzLastModifiedById
  • ftCreation
  • ftLastModified
  • securityData

Die restlichen Felder sind optional. Um diesen neuen Datensatz der Peergruppe hinzuzufügen, übergeben Sie ihn an PeerGroupAddRecord.

Importieren und Exportieren von Datensätzen

Peer-zu-Peer-Gruppendatensätze werden lokal als Datenbank verwaltet. Um eine aktuelle Momentaufnahme der Peergruppendatensatz-Datenbank in einer lokalen Datei zu speichern, rufen Sie PeerGroupExportDatabaseauf, und übergeben Sie es an die Peergruppe. Diese Datei kann dann auf einen anderen Computer oder eine andere Anwendung übertragen werden, die diese Datensatzdatenbank extrahieren und verwenden kann, indem PeerGroupImportDatabase aufruft.