Bagikan melalui


Mengelola Rekaman Grup

Rekaman grup adalah data khusus yang diterbitkan ke semua anggota aktif grup serekan, misalnya, pesan obrolan atau pembaruan status khusus aplikasi. Rekaman diwakili oleh struktur PEER_RECORD , dan berisi informasi berikut tentang serekan:

  • ID rekaman adalah nilai yang secara unik mengidentifikasi rekaman dalam grup serekan.
  • GUID yang menentukan jenis catatan. Aplikasi dapat mendukung berbagai jenis catatan. Aplikasi menginterpretasikan bidang data rekaman berdasarkan jenis rekaman. Beberapa GUID dicadangkan, dan panggilan API mengembalikan PEER_E_NOT_AUTHORIZED ketika aplikasi mencoba menggunakannya.
  • Sekumpulan atribut rekaman yang dijelaskan sebagai string XML. Atribut digunakan saat mencari rekaman. Untuk informasi selengkapnya tentang atribut, lihat Skema Atribut Rekaman.
  • Waktu serekan rekaman dibuat.
  • Waktu serekan rekaman kedaluwarsa.
  • Waktu serekan bahwa rekaman dimodifikasi.
  • Pembuat rekaman.
  • Anggota yang memodifikasi rekaman.
  • Struktur PEER_DATA yang berisi tanda tangan kriptografi untuk semua bidang dalam struktur PEER_RECORD ini. Bidang ini tidak dapat diperbarui atau diubah secara langsung oleh serekan.
  • Struktur PEER_DATA yang berisi data khusus aplikasi yang terkait dengan rekaman ini sebagai array byte. Jenis data yang ada di bidang ini ditentukan oleh jenis rekaman yang ditentukan aplikasi.

Mendapatkan Rekaman Grup Serekan

Rekaman individual diperoleh dengan memanggil PeerGroupGetRecord dengan ID rekaman. Saat memproses semua rekaman dari jenis tertentu, kumpulan yang dijumlahkan dari semua rekaman grup serekan saat ini diperoleh dengan terlebih dahulu memanggil PeerGroupEnumRecords untuk membuka enumerasi dan kemudian secara berulang memanggil PeerGetNextItem hingga semua rekaman diambil. Setelah selesai, tutup enumerasi dan lepaskan memori yang terkait dengannya dengan memanggil PeerEndEnumeration.

Saat rekaman dibuat, dihapus, atau diperbarui oleh serekan, rekaman yang terpengaruh diterbitkan ke semua anggota grup serekan dengan cara peristiwa PEER_GROUP_EVENT_RECORD_CHANGE . Perhatikan bahwa jika serekan tidak tersambung ke grup, rekan akan menerima rekaman yang diperbarui, saat berikutnya tersambung. Penting untuk mendaftar untuk peristiwa ini dengan PeerGroupRegisterEvent jika aplikasi Anda mempertahankan atau mengelola rekaman dengan cara yang bermakna. Atau, aplikasi dapat mengkueri database rekaman sesuai permintaan menggunakan PeerGroupSearchRecords.

Saat peristiwa PEER_GROUP_EVENT_RECORD_CHANGE dinaikkan, ID dan jenis rekaman tertentu serta jenis perubahan (tambahkan, perbarui, hapus) diterima sebagai struktur PEER_EVENT_RECORD_CHANGE_DATA . Struktur ini diperoleh dengan panggilan ke PeerGroupGetEventData. Jika perubahan adalah tambahkan atau pembaruan, Anda harus menggunakan PeerGroupGetRecord untuk mendapatkan catatan dengan ID yang disediakan. Database rekaman lokal untuk infrastruktur diperbarui secara otomatis.

Anda juga dapat mencari rekaman tertentu berdasarkan atribut kustom tertentu yang disediakan di bidang pwzAttributesPEER_RECORD, serta atribut yang telah ditentukan sebelumnya. Untuk mencapai hal ini, gunakan fungsi PeerGroupSearchRecords dengan kueri pencarian XML yang diformat seperti yang ditentukan dalam topik Format Kueri Pencarian Rekaman .

Untuk detail selengkapnya tentang bekerja dengan rekaman di Infrastruktur Serekan, silakan lihat topik Rekaman di Menggunakan Infrastruktur Serekan.

Administrasi Rekaman Grup Serekan

Ketika undangan awal dikeluarkan oleh pembuat grup serekan, itu dapat menentukan bahwa anggota tertentu melayani dalam peran administratif (PEER_GROUP_ROLE_ADMIN) setiap kali mengeluarkan kredensial baru kepada pengguna (melalui PeerGroupCreateInvitation atau PeerGroupIssueCredentials). Administrator memiliki kemampuan untuk langsung menambahkan, menghapus, dan memperbarui rekaman grup serekan apa pun. Sebaliknya, anggota grup serekan dengan perannya diatur ke PEER_GROUP_ROLE_MEMBER atau PEER_GROUP_ROLE_INVITING_MEMBER hanya dapat menambahkan, memperbarui, dan menghapus rekamannya sendiri.

Pembuat memiliki peran administrator secara default.

Untuk memperbarui rekaman, dapatkan catatan dengan PeerGroupGetRecord atau PeerGroupEnumRecords, buat perubahan, dan teruskan rekaman yang diperbarui ke PeerGroupUpdateRecord.

Untuk menghapus rekaman, teruskan ID rekaman untuk dihapus ke PeerGroupDeleteRecord.

Untuk menambahkan rekaman, buat struktur PEER_RECORD baru dan isi bidang berikut ini:

  • dwSize. Bidang ini berisi nilai sizeof(PEER_RECORD).
  • ftExpiration. Bidang ini berisi tanggal kedaluwarsa dan waktu rekaman ini, yang dinyatakan dalam waktu serekan sebagai struktur FILETIME .
  • jenis . Bidang ini berisi nilai GUID yang mengidentifikasi jenis catatan ke aplikasi. Jika jenis ini kustom untuk infrastruktur aplikasi Anda, Anda juga harus mengisi bidang data .

Bidang berikut diisi oleh infrastruktur, dan akan diabaikan jika diatur oleh aplikasi:

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

Bidang yang tersisa adalah opsional. Untuk menambahkan rekaman baru ini ke grup serekan, teruskan ke PeerGroupAddRecord.

Mengimpor dan Mengekspor Rekaman

Rekaman grup peer-to-peer dipertahankan secara lokal sebagai database. Untuk menyimpan rekam jepret database rekaman grup serekan saat ini ke file lokal, panggil PeerGroupExportDatabase, dan teruskan handel ke grup serekan. File ini kemudian dapat diangkut ke komputer atau aplikasi yang berbeda, yang dapat mengekstrak dan menggunakan database rekaman ini dengan memanggil PeerGroupImportDatabase.