Add some documentation about Rendezvous (#2749)
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 1417c8c..7ec2532 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -2476,7 +2476,7 @@
# command).
# This tag requires that the tag HAVE_DOT is set to YES.
-DOTFILE_DIRS =
+DOTFILE_DIRS = docs/dots/
# The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the \mscfile
diff --git a/docs/dots/Rendezvous/RendezvousSessionGeneral.dot b/docs/dots/Rendezvous/RendezvousSessionGeneral.dot
new file mode 100644
index 0000000..b11110f
--- /dev/null
+++ b/docs/dots/Rendezvous/RendezvousSessionGeneral.dot
@@ -0,0 +1,37 @@
+digraph RendezvousSession
+{
+ node [shape=box, fillcolor="white:gray", gradientangle=90, style=filled]
+
+ # This section represents controller-only elements
+ subgraph cluster_controller {
+ label=<<b>Controller</b>>
+
+ ChipDeviceController [shape=record label=<{ChipDeviceController|<font point-size="11">RendezvousSessionDelegate</font>}>, URL="@ref chip::DeviceController::ChipDeviceController"]
+ }
+
+ # This section represents device-only elements
+ subgraph cluster_device {
+ label=<<b>Device</b>>
+
+ RendezvousDeviceDelegate [shape=record label=<{RendezvousDeviceDelegate|<font point-size="11">RendezvousSessionDelegate</font>}> URL="@ref chip::RendezvousSessionDelegate"]
+ }
+
+ # This section represents elements which belongs to src/transport/
+ subgraph cluster_transport {
+ label=<<b>Transport</b>>
+
+ RendezvousSession [shape=record, label=<{RendezvousSession|<font point-size="11">SecurePairingSessionDelegate</font>}>, URL="@ref chip::SecurePairingSessionDelegate"]
+ TransportBle [label="Transport::BLE", URL="@ref chip::Transport::BLE"]
+ TransportInet [label="Transport::?", style=dashed, color=gray]
+ }
+
+ #############################
+ # Main relationships
+ #############################
+ RendezvousParameters [shape=ellipse, URL="@ref chip::RendezvousParameters"]
+ RendezvousParameters -> { ChipDeviceController, RendezvousDeviceDelegate} [arrowhead=none]
+
+ {ChipDeviceController, RendezvousDeviceDelegate} -> RendezvousSession
+ RendezvousSession -> TransportBle
+ RendezvousSession -> TransportInet [style=dashed, color=gray]
+}
diff --git a/docs/dots/Rendezvous/RendezvousSessionInit.dot b/docs/dots/Rendezvous/RendezvousSessionInit.dot
new file mode 100644
index 0000000..7c5a294
--- /dev/null
+++ b/docs/dots/Rendezvous/RendezvousSessionInit.dot
@@ -0,0 +1,83 @@
+digraph RendezvousSession
+{
+ node [fillcolor="gray", style=filled]
+
+ # This section represents controller-only elements
+ subgraph cluster_controller {
+ label=<<b>Controller</b>>
+ node [fillcolor="white:gray", gradientangle=90]
+
+ ChipDeviceController [shape=record label=<{ChipDeviceController|<font point-size="11">RendezvousSessionDelegate</font>}>, URL="@ref chip::DeviceController::ChipDeviceController"]
+ }
+
+ # This section represents device-only elements
+ subgraph cluster_device {
+ label=<<b>Device</b>>
+ node [fillcolor="white:gray", gradientangle=90]
+
+ RendezvousDeviceDelegate [shape=record label=<{RendezvousDeviceDelegate|<font point-size="11">RendezvousSessionDelegate</font>}> URL="@ref chip::RendezvousSessionDelegate"]
+ }
+
+ # This section represents elements which belongs to src/transport/
+ subgraph rendezvousSession {
+ node [fillcolor="white:gray", gradientangle=90]
+
+ RendezvousSession [shape=record, label=<{RendezvousSession|<font point-size="11">SecurePairingSessionDelegate</font>}>, URL="@ref chip::SecurePairingSessionDelegate"]
+ }
+
+ # This section represents methods which belongs to SecurePairingSession
+ subgraph cluster_securePairingSession {
+ label=<<b>SecurePairingSession</b>>
+ node [fillcolor="gray"]
+
+ WaitForPairing [URL="@ref chip::SecurePairingSession::WaitForPairing"]
+ Pair [URL="@ref chip::SecurePairingSession::Pair"]
+ DeriveSecureSession [URL="@ref chip::SecurePairingSession::DeriveSecureSession"]
+ }
+
+ # This section represents methods which belongs to RendezvousParameters
+ subgraph cluster_RendezvousParameters {
+ label=<<b>RendezvousParameters</b>>
+ node [fillcolor="gray"]
+
+ HasDiscriminator [URL="@ref chip::RendezvousParameters::HasDiscriminator"]
+ HasConnectionObject [URL="@ref chip::RendezvousParameters::HasConnectionObject"]
+ }
+
+ # This section represents callbacks which belongs to RendezvousSessionDelegate
+ subgraph cluster_rendezvousSessionDelegate {
+ label=<<b>RendezvousSessionDelegate</b>>
+ node [fillcolor="white"]
+
+ OnRendezvousConnectionOpened [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousConnectionOpened"]
+ OnRendezvousConnectionClosed [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousConnectionClosed"]
+ OnRendezvousError [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousError"]
+ }
+
+ # This section represents callbacks which belongs to SecurePairingSessionDelegate
+ subgraph cluster_securePairingSessionDelegate {
+ label=<<b>SecurePairingSessionDelegate</b>>
+ node [fillcolor="white"]
+
+ OnPairingError [URL="@ref chip::SecurePairingSessionDelegate::OnPairingError"]
+ OnPairingComplete [URL="@ref chip::SecurePairingSessionDelegate::OnPairingComplete"]
+ }
+
+ #############################
+ # Main relationships
+ #############################
+ {ChipDeviceController, RendezvousDeviceDelegate} -> RendezvousSession
+
+ RendezvousSession -> HasDiscriminator
+
+ HasDiscriminator -> DelegateConnection [label=YES]
+ DelegateConnection -> Pair
+
+ HasDiscriminator -> HasConnectionObject [label=NO]
+ HasConnectionObject -> Pair [label=YES]
+
+ HasConnectionObject -> WaitForPairing [label=NO]
+
+ OnPairingError -> OnRendezvousError
+ OnPairingComplete -> DeriveSecureSession -> OnRendezvousConnectionOpened
+}