transport

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2019 License: MIT Imports: 4 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Credentials

type Credentials interface {
	DeviceID() string
	Hostname() string
	TLSConfig() *tls.Config
	IsSAS() bool
	Token(ctx context.Context, uri string, d time.Duration) (string, error)
}

Credentials is connection credentials needed for x509 or sas authentication.

type MessageDispatcher

type MessageDispatcher interface {
	Dispatch(msg *common.Message)
}

MessageDispatcher handles incoming messages.

type MethodDispatcher

type MethodDispatcher interface {
	Dispatch(methodName string, b []byte) (rc int, data []byte, err error)
}

MethodDispatcher handles direct method calls.

type Transport

type Transport interface {
	SetLogger(logger common.Logger)
	Connect(ctx context.Context, creds Credentials) error
	Send(ctx context.Context, msg *common.Message) error
	RegisterDirectMethods(ctx context.Context, mux MethodDispatcher) error
	SubscribeEvents(ctx context.Context, mux MessageDispatcher) error
	SubscribeTwinUpdates(ctx context.Context, mux TwinStateDispatcher) error
	RetrieveTwinProperties(ctx context.Context) (payload []byte, err error)
	UpdateTwinProperties(ctx context.Context, payload []byte) (version int, err error)
	Close() error
}

Transport interface.

type TwinStateDispatcher

type TwinStateDispatcher interface {
	Dispatch(b []byte)
}

TwinStateDispatcher handles twin state updates.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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