@@ -4,4 +4,44 @@ import com.google.gson.annotations.SerializedName
4
4
import dev.onvoid.webrtc.RTCIceServer
5
5
import dev.onvoid.webrtc.RTCSessionDescription
6
6
7
- data class BrokerMessage (@SerializedName(" offer" ) val offer : RTCSessionDescription , @SerializedName(" servers" ) val servers : List <RTCIceServer >, @SerializedName(" turn_proxy_url" ) val turnProxyUrl : String )
7
+ /* *
8
+ * BrokerMessage is used for brokering a dialer and listener.
9
+ *
10
+ * Dialers initiate an exchange by providing an Offer, along with a list of ICE servers for the listener to peer with.
11
+ * The listener should respond with an offer, then both sides can begin exchanging candidates.
12
+ *
13
+ */
14
+ data class BrokerMessage (
15
+ // Dialer -> Listener
16
+ @SerializedName(" offer" ) val offer : RTCSessionDescription ,
17
+ @SerializedName(" servers" ) val servers : List <RTCIceServer >,
18
+ @SerializedName(" turn_proxy_url" ) val turnProxyUrl : String ,
19
+ @SerializedName(" ports" ) val ports : Array <DialPolicy >? = null ,
20
+ // Listener -> Dialer
21
+ @SerializedName(" error" ) val error : String? = " " ,
22
+ @SerializedName(" answer" ) val answer : RTCSessionDescription ? = null ,
23
+ // Bidirectional
24
+ @SerializedName(" candidate" ) val candidate : String? = " "
25
+ ) {
26
+ override fun equals (other : Any? ): Boolean {
27
+ if (this == = other) return true
28
+ if (javaClass != other?.javaClass) return false
29
+
30
+ other as BrokerMessage
31
+
32
+ if (offer != other.offer) return false
33
+ if (servers != other.servers) return false
34
+ if (turnProxyUrl != other.turnProxyUrl) return false
35
+ if (! ports.contentEquals(other.ports)) return false
36
+
37
+ return true
38
+ }
39
+
40
+ override fun hashCode (): Int {
41
+ var result = offer.hashCode()
42
+ result = 31 * result + servers.hashCode()
43
+ result = 31 * result + turnProxyUrl.hashCode()
44
+ result = 31 * result + ports.contentHashCode()
45
+ return result
46
+ }
47
+ }
0 commit comments