backbone

package
v0.0.0-...-c59634c Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const HeaderToken = "x-token"

Variables

View Source
var (
	ErrAddressNil       = errors.New("address is nil")
	ErrAddressInvalid   = errors.New("invalid address")
	ErrCertRootInvalid  = errors.New("root ca is invalid")
	ErrCertPrivInvalid  = errors.New("private key is invalid")
	ErrCertPubInvalid   = errors.New("public key is invalid")
	ErrUnableDial       = errors.New("unable to dial")
	ErrUnableListen     = errors.New("unable to listen")
	ErrIllegalState     = errors.New("illegal state")
	ErrBackboneNotFound = errors.New("backbone is not found")
	ErrBackboneInvalid  = errors.New("backbone is invalid")
	ErrBackboneClosed   = errors.New("backbone is closed")
	ErrPacketInvalid    = errors.New("packet is invalid")
)

Functions

This section is empty.

Types

type Backbone

type Backbone interface {
	Id() common.Id
	Serve() error
	Send(packet Packet) error
	IsClosed() bool
	Close() error
}

type BackboneAddress

type BackboneAddress interface {
	Protocol() Protocol
	String() string
}

func NewWebsocketAddress

func NewWebsocketAddress(
	token string, networkAddress, path string, secured bool, rootCAPath, privKeyPath, pubKeyPath string,
) BackboneAddress

type BackboneHandler

type BackboneHandler interface {
	OnCreate(b Backbone)
	OnClosed(b Backbone)
}

func NewBackboneHandler

func NewBackboneHandler(onCreate func(b Backbone), onClosed func(b Backbone)) BackboneHandler

type Packet

type Packet interface {
	Id() common.Id
	Type() PacketType
	Data() []byte
}

func NewPacket

func NewPacket(id common.Id, packetType PacketType, data []byte) (Packet, error)

type PacketHandler

type PacketHandler interface {
	OnReceive(backboneId common.Id, packet Packet)
}

func NewPacketHandler

func NewPacketHandler(onReceive func(backboneId common.Id, packet Packet)) PacketHandler

type PacketType

type PacketType int
const (
	PacketTypeUnknown PacketType = iota
	PacketTypeOpen
	PacketTypeOpenAckSuccess
	PacketTypeOpenAckFailed
	PacketTypeEdgeCreate
	PacketTypeEdgeCreateAckSuccess
	PacketTypeEdgeCreateAckFailed
	PacketTypeEdgeClose
	PacketTypeMessage
)

type Protocol

type Protocol int
const (
	ProtocolWebsocket Protocol = iota
)

type Registry

type Registry interface {
	SetAddress(address BackboneAddress) error
	SetPacketHandler(handler PacketHandler) error
	SetBackboneHandler(handler BackboneHandler) error

	Start() error
	IsRunning() bool
	Listen() error
	Dial() error
	Shutdown(ctx context.Context) error

	GetAll() ([]Backbone, error)
	GetById(backboneId common.Id) (Backbone, error)
	Send(backboneId common.Id, packet Packet) error
}

func NewRegistry

func NewRegistry() (Registry, error)

Jump to

Keyboard shortcuts

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