pubsub

package
v0.0.0-test-go-svm-build2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ValidationAccept should be returned if message is good and can be broadcasted.
	ValidationAccept = pubsub.ValidationAccept
	// ValidationIgnore should be returned if message might be good, but outdated
	// and shouldn't be broadcasted.
	ValidationIgnore = pubsub.ValidationIgnore
	// ValidationReject should be returned if message is malformed or malicious
	// and shouldn't be broadcasted. Peer might be potentially get banned when on this result.
	ValidationReject = pubsub.ValidationReject
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// TODO(dshulyak) change it to NoFlood
	Flood          bool
	MaxMessageSize int
}

Config for PubSub.

func DefaultConfig

func DefaultConfig() Config

DefaultConfig for PubSub.

type GossipHandler

type GossipHandler = func(context.Context, peer.ID, []byte) ValidationResult

GossipHandler is a function that is for receiving messages.

func ChainGossipHandler

func ChainGossipHandler(handlers ...GossipHandler) GossipHandler

ChainGossipHandler helper to chain multiple GossipHandler together. Called synchronously and in the order.

type PubSub

type PubSub struct {
	// contains filtered or unexported fields
}

PubSub is a spacemesh-specific wrapper around gossip protocol.

func New

func New(ctx context.Context, logger log.Log, h host.Host, cfg Config) (*PubSub, error)

New creates PubSub instance.

func (*PubSub) ProtocolPeers

func (ps *PubSub) ProtocolPeers(protocol string) []peer.ID

ProtocolPeers returns list of peers that are communicating in a given protocol.

func (*PubSub) Publish

func (ps *PubSub) Publish(ctx context.Context, topic string, msg []byte) error

Publish message to the topic.

func (*PubSub) Register

func (ps *PubSub) Register(topic string, handler GossipHandler)

Register handler for topic.

type PublishSubsciber

type PublishSubsciber interface {
	Publisher
	Subscriber
}

PublishSubsciber common interface for publisher and subscribing.

type Publisher

type Publisher interface {
	Publish(context.Context, string, []byte) error
}

Publisher interface for publishing messages.

type Subscriber

type Subscriber interface {
	Register(string, GossipHandler)
}

Subscriber is an interface for subcribing to messages.

type ValidationResult

type ValidationResult = pubsub.ValidationResult

ValidationResult is a one of the validation result constants.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL