Skip to content
Snippets Groups Projects
Select Git revision
  • ea9f3b5d767983e241dafb873b7b6cc06d62a2c7
  • release default protected
  • master protected
  • hotfix/GrpcParameters
  • XX-4441
  • tls-websockets
  • hotfix/allow-web-creds
  • hotfix/nilCert
  • XX-3566_const_time_token_compare
  • AceVentura/AccountBackup
  • dev
  • waitingRoundsRewrite
  • fullRateLimit
  • XX-3564/TlsCipherSuite
  • XX-3563/DisableTlsCheck
  • notls
  • url-repo-rename
  • perftuning
  • Anne/CI2
  • AddedGossipLogging
  • hotfix/connectionReduction
  • v0.0.6
  • v0.0.4
  • v0.0.5
  • v0.0.3
  • v0.0.2
  • v0.0.1
27 results

context.go

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)
    }