[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [snowflake/main] Add Snowflake Event API interface



commit 75f770150d6c9943231cb6b8bde0b867137ea26f
Author: Shelikhoo <xiaokangwang@xxxxxxxxxxx>
Date:   Fri Nov 26 15:12:46 2021 +0000

    Add Snowflake Event API interface
---
 common/event/interface.go | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/common/event/interface.go b/common/event/interface.go
new file mode 100644
index 0000000..697f2b7
--- /dev/null
+++ b/common/event/interface.go
@@ -0,0 +1,45 @@
+package event
+
+import "github.com/pion/webrtc/v3"
+
+type SnowflakeEvent interface {
+	IsSnowflakeEvent()
+	String() string
+}
+
+type EventOnOfferCreated struct {
+	SnowflakeEvent
+	WebRTCLocalDescription *webrtc.SessionDescription
+	Error                  error
+}
+
+type EventOnBrokerRendezvous struct {
+	SnowflakeEvent
+	WebRTCRemoteDescription *webrtc.SessionDescription
+	Error                   error
+}
+
+type EventOnSnowflakeConnected struct {
+	SnowflakeEvent
+}
+
+type EventOnSnowflakeConnectionFailed struct {
+	SnowflakeEvent
+	Error error
+}
+
+type SnowflakeEventReceiver interface {
+	// OnNewSnowflakeEvent notify receiver about a new event
+	// This method MUST not block
+	OnNewSnowflakeEvent(event SnowflakeEvent)
+}
+
+type SnowflakeEventDispatcher interface {
+	SnowflakeEventReceiver
+	// AddSnowflakeEventListener allow receiver(s) to receive event notification
+	// when OnNewSnowflakeEvent is called on the dispatcher.
+	// Every event listener added will be called when an event is received by the dispatcher.
+	// The order each listener is called is undefined.
+	AddSnowflakeEventListener(receiver SnowflakeEventReceiver)
+	RemoveSnowflakeEventListener(receiver SnowflakeEventReceiver)
+}



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits