Skip to content
Snippets Groups Projects
Select Git revision
  • 9c36be182f4da3462c7871a7d882da91689e7a14
  • release default
  • 11-22-implement-kv-interface-defined-in-collectiveversionedkvgo
  • master protected
  • XX-4688/DbEncoding
  • hotfix/update
  • @XX-4682/Files
  • hotfix/XX-4655
  • dev protected
  • project/HavenNotifications
  • XX-4602/SilentMessageType
  • jono/npmTest
  • wasmTest2
  • XX-4461/FileUpload
  • XX-4505/blockuser
  • XX-4441
  • Jakub/Emoji-CI-Test
  • testing/websockets
  • fastReg
  • fast-registration
  • NewHostPool
  • v0.3.22
  • v0.3.21
  • v0.3.20
  • v0.3.18
  • v0.3.17
  • v0.3.16
  • v0.3.15
  • v0.3.14
  • v0.3.13
  • v0.3.12
  • v0.3.11
  • v0.3.10
  • v0.3.9
  • v0.3.8
  • v0.3.7
  • v0.3.6
  • v0.3.5
  • v0.3.4
  • 812b395df518ce096d01d5292596ca26f8fe92d9c4487ddfa515e190a51aa1a1
  • 76ba08e2dfa1798412a265404fa271840b52c035869111fce8e8cdb23a036a5a
41 results

dmIndexedDbWorker.js

Blame
  • switchboard.go 3.17 KiB
    ///////////////////////////////////////////////////////////////////////////////
    // Copyright © 2020 xx network SEZC                                          //
    //                                                                           //
    // Use of this source code is governed by a license that can be found in the //
    // LICENSE file                                                              //
    ///////////////////////////////////////////////////////////////////////////////
    
    package interfaces
    
    import (
    	"gitlab.com/elixxir/client/interfaces/message"
    	"gitlab.com/elixxir/client/switchboard"
    	"gitlab.com/xx_network/primitives/id"
    )
    
    // public switchboard interface which only allows registration and does not
    // allow speaking messages
    type Switchboard interface {
    	// Registers a new listener. Returns the ID of the new listener.
    	// Keep this around if you want to be able to delete the listener later.
    	//
    	// name is used for debug printing and not checked for uniqueness
    	//
    	// user: 0 for all, or any user ID to listen for messages from a particular
    	// user. 0 can be id.ZeroUser or id.ZeroID
    	// messageType: 0 for all, or any message type to listen for messages of
    	// that type. 0 can be switchboard.AnyType
    	// newListener: something implementing the Listener interface. Do not
    	// pass nil to this.
    	//
    	// If a message matches multiple listeners, all of them will hear the
    	// message.
    	RegisterListener(user *id.ID, messageType message.Type,
    		newListener switchboard.Listener) switchboard.ListenerID
    
    	// Registers a new listener built around the passed function.
    	// Returns the ID of the new listener.
    	// Keep this around if you want to be able to delete the listener later.
    	//
    	// name is used for debug printing and not checked for uniqueness
    	//
    	// user: 0 for all, or any user ID to listen for messages from a particular
    	// user. 0 can be id.ZeroUser or id.ZeroID
    	// messageType: 0 for all, or any message type to listen for messages of
    	// that type. 0 can be switchboard.AnyType
    	// newListener: a function implementing the ListenerFunc function type.
    	// Do not pass nil to this.
    	//
    	// If a message matches multiple listeners, all of them will hear the
    	// message.
    	RegisterFunc(name string, user *id.ID, messageType message.Type,
    		newListener switchboard.ListenerFunc) switchboard.ListenerID
    
    	// Registers a new listener built around the passed channel.
    	// Returns the ID of the new listener.
    	// Keep this around if you want to be able to delete the listener later.
    	//
    	// name is used for debug printing and not checked for uniqueness
    	//
    	// user: 0 for all, or any user ID to listen for messages from a particular
    	// user. 0 can be id.ZeroUser or id.ZeroID
    	// messageType: 0 for all, or any message type to listen for messages of
    	// that type. 0 can be switchboard.AnyType
    	// newListener: an item channel.
    	// Do not pass nil to this.
    	//
    	// If a message matches multiple listeners, all of them will hear the
    	// message.
    	RegisterChannel(name string, user *id.ID, messageType message.Type,
    		newListener chan message.Receive) switchboard.ListenerID
    
    	// Unregister removes the listener with the specified ID so it will no
    	// longer get called
    	Unregister(listenerID switchboard.ListenerID)
    }