Skip to content

Commit 488c3a2

Browse files
committed
peerAdded and peerRemoved closures added
1 parent f02d1d3 commit 488c3a2

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

Sources/MultipeerKit/Public API/MultipeerTransceiver.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,14 @@ public final class MultipeerTransceiver {
1212
/// Called on the main queue when available peers have changed (new peers discovered or peers removed).
1313
public var availablePeersDidChange: ([Peer]) -> Void = { _ in }
1414

15+
/// Called on the main queue when a new peer discovered.
16+
public var peerAdded: (Peer) -> Void = { _ in }
17+
18+
/// Called on the main queue when a peer removed.
19+
public var peerRemoved: (Peer) -> Void = { _ in }
20+
1521
/// All peers currently available for invitation, connection and data transmission.
16-
public var availablePeers: [Peer] = [] {
22+
public private(set) var availablePeers: [Peer] = [] {
1723
didSet {
1824
guard availablePeers != oldValue else { return }
1925

@@ -148,12 +154,14 @@ public final class MultipeerTransceiver {
148154
guard !availablePeers.contains(peer) else { return }
149155

150156
availablePeers.append(peer)
157+
peerAdded(peer)
151158
}
152159

153160
private func handlePeerRemoved(_ peer: Peer) {
154161
guard let idx = availablePeers.firstIndex(where: { $0.underlyingPeer == peer.underlyingPeer }) else { return }
155162

156163
availablePeers.remove(at: idx)
164+
peerRemoved(peer)
157165
}
158166

159167
private func handlePeerConnected(_ peer: Peer) {

0 commit comments

Comments
 (0)