api

package
v0.0.0-...-8f3712b Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2019 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var TypeExtendedAPI = reflect.TypeOf((*IExtendedAPI)(nil)).Elem()

TypeExtendedAPI is a syntax sugar around IExtendedAPI type.

Functions

This section is empty.

Types

type ExtendedAPIMessage

type ExtendedAPIMessage struct {
	SendTime int64 `json:"st"`
}

ExtendedAPIMessage is a base type for master <-> worker communications.

func (*ExtendedAPIMessage) SetSendTime

func (e *ExtendedAPIMessage) SetSendTime(t int64)

SetSendTime sets base message SendTime.

type IExtendedAPI

type IExtendedAPI interface {
	Init(*InitDataAPI) error
	Routes() []string
	Unload()
}

IExtendedAPI defines extended API plugin interface.

type IExtendedAPICommunicator

type IExtendedAPICommunicator interface {
	Subscribe(queue chan []byte) error
	Publish(messages ...IExtendedAPIMessage)
	InvokeDeviceCommand(deviceRegexp glob.Glob, cmd enums.Command, data map[string]interface{})
}

IExtendedAPICommunicator defines

type IExtendedAPIMessage

type IExtendedAPIMessage interface {
	SetSendTime(int64)
}

IExtendedAPIMessage defines internal message between plugins running on master and worker.

type InitDataAPI

type InitDataAPI struct {
	InternalRootRouter *mux.Router
	ExternalAPIRouter  *mux.Router
	Logger             common.ILoggerProvider
	Secret             common.ISecretProvider
	FanOut             common.IFanOutProvider
	IsMaster           bool
	Communicator       IExtendedAPICommunicator
}

InitDataAPI has data required for initializing a new API.

Jump to

Keyboard shortcuts

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