[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