transport

package
v0.11.1 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2023 License: AGPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Message

type Message interface {
	// MarshallBinary serializes the message into a byte slice.
	MarshallBinary() ([]byte, error)

	// UnmarshallBinary deserializes the message from a byte slice.
	UnmarshallBinary([]byte) error
}

Message is a message that can be sent over transport.

type Meta added in v0.11.0

type Meta struct {
	Transport            string
	Topic                string
	MessageID            string
	PeerID               string
	PeerAddr             string
	ReceivedFromPeerID   string
	ReceivedFromPeerAddr string
}

type ReceivedMessage

type ReceivedMessage struct {
	// Message contains the message content. It is nil when the Error field
	// is not nil.
	Message Message

	// Author is the author of the message.
	Author []byte

	// Data contains an optional data associated with the message. A type of
	// the data is different depending on a transport implementation.
	Data any

	// Error contains an optional error returned by transport layer.
	Error error

	// Meta contains optional information about the message.
	Meta Meta
}

ReceivedMessage contains a Message received from Transport.

func (*ReceivedMessage) Fields added in v0.11.0

func (p *ReceivedMessage) Fields() log.Fields

type Service added in v0.11.0

type Service interface {
	supervisor.Service
	Transport
}

Service implements a mechanism for exchanging messages between Oracles.

type Transport

type Transport interface {
	// Broadcast sends a message with a given topic.
	Broadcast(topic string, message Message) error

	// Messages returns a channel for incoming messages. A new channel is
	// created for each call, therefore this method should not be used in
	// loops. In case of an error, an error will be returned in the
	// ReceivedMessage structure.
	Messages(topic string) <-chan ReceivedMessage
}

Directories

Path Synopsis
pb
pb

Jump to

Keyboard shortcuts

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