core

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2017 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	STARTED    = Status("started")
	IN_PROCESS = Status("in process")
	ENDED      = Status("ended")
	DONE       = Status("done")
	ERROR      = Status("error")
)

Variables

View Source
var (
	Hub stream.Hub
)

Functions

func Initialize

func Initialize(telemetry Telemetry) (err error)

Types

type Action

type Action struct {
	Device  *models.Device
	Node    *models.Node
	Script  *scripts.Engine
	Message *Message
}

func NewAction

func NewAction(device *models.Device, script *models.Script, node *models.Node, workflow *Workflow) (action *Action, err error)

func (*Action) Do

func (a *Action) Do() (res string, err error)

func (*Action) SetDeviceState

func (a *Action) SetDeviceState(_state string)

type ActionPrototypes

type ActionPrototypes interface {
	After(*Message, *Flow) error
	Run(*Message, *Flow) error
	Before(*Message, *Flow) error
	Type() string
}

type Core

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

func CorePtr

func CorePtr() *Core

func (*Core) AddFlow

func (b *Core) AddFlow(flow *models.Flow) (err error)

func (*Core) AddNode

func (b *Core) AddNode(node *models.Node) (err error)

func (*Core) AddWorkflow

func (b *Core) AddWorkflow(workflow *models.Workflow) (err error)

добавление рабочего процесс, без автоматического поиска и запуска подпроцессов

func (*Core) ConnectNode

func (b *Core) ConnectNode(node *models.Node) (err error)

func (*Core) DisconnectNode

func (b *Core) DisconnectNode(node *models.Node) (err error)

func (*Core) DoWorker

func (b *Core) DoWorker(model *models.Worker) (err error)

func (*Core) GetDevicesStates

func (b *Core) GetDevicesStates() map[int64]*models.DeviceState

func (*Core) GetNodes

func (b *Core) GetNodes() map[int64]*models.Node

func (*Core) InitNodes

func (b *Core) InitNodes() (err error)

func (*Core) InitWorkflows

func (b *Core) InitWorkflows() (err error)

инициализация всего рабочего процесса, с запуском дочерни подпроцессов

func (*Core) ReloadNode

func (b *Core) ReloadNode(node *models.Node) (err error)

func (*Core) RemoveFlow

func (b *Core) RemoveFlow(flow *models.Flow) (err error)

func (*Core) RemoveNode

func (b *Core) RemoveNode(node *models.Node) (err error)

func (*Core) RemoveWorker

func (b *Core) RemoveWorker(_worker *models.Worker) (err error)

func (*Core) RemoveWorkflow

func (b *Core) RemoveWorkflow(workflow *models.Workflow) (err error)

нельзя удалить workflow, если присутствуют связанные сущности

func (*Core) Run

func (b *Core) Run() (err error)

func (*Core) SetDeviceState

func (b *Core) SetDeviceState(id int64, state *models.DeviceState)

------------------------------------------------ Device states ------------------------------------------------

func (*Core) UpdateFlow

func (b *Core) UpdateFlow(flow *models.Flow) (err error)

func (*Core) UpdateFlowFromDevice

func (b *Core) UpdateFlowFromDevice(device *models.Device) (err error)

func (*Core) UpdateScript

func (b *Core) UpdateScript(script *models.Script) (err error)

------------------------------------------------ Script ------------------------------------------------

func (*Core) UpdateWorker

func (b *Core) UpdateWorker(_worker *models.Worker) (err error)

func (*Core) UpdateWorkflowScenario added in v0.0.5

func (b *Core) UpdateWorkflowScenario(workflow *models.Workflow) (err error)

type Flow

type Flow struct {
	Model *models.Flow

	Connections  []*models.Connection
	FlowElements []*FlowElement
	Node         *models.Node
	Workers      map[int64]*Worker
	// contains filtered or unexported fields
}

func NewFlow

func NewFlow(model *models.Flow, workflow *Workflow) (flow *Flow, err error)

func (*Flow) AddWorker

func (f *Flow) AddWorker(model *models.Worker) (err error)

func (*Flow) InitWorkers

func (f *Flow) InitWorkers() (err error)

func (*Flow) NewMessage

func (f *Flow) NewMessage(message *Message) (err error)

func (*Flow) Remove

func (f *Flow) Remove()

func (*Flow) RemoveWorker

func (f *Flow) RemoveWorker(worker *models.Worker) (err error)

func (*Flow) UpdateWorker

func (f *Flow) UpdateWorker(worker *models.Worker) (err error)

type FlowElement

type FlowElement struct {
	Model     *models.FlowElement
	Flow      *Flow
	Workflow  *Workflow
	Script    *scripts.Engine
	Prototype ActionPrototypes

	Action       *Action
	ScenarioName string
	// contains filtered or unexported fields
}

func NewFlowElement

func NewFlowElement(model *models.FlowElement, flow *Flow, workflow *Workflow) (flowElement *FlowElement, err error)

func (*FlowElement) After

func (m *FlowElement) After(message *Message) error

func (*FlowElement) Before

func (m *FlowElement) Before(message *Message) error

func (*FlowElement) GetStatus

func (m *FlowElement) GetStatus() (status Status)

func (*FlowElement) Run

func (m *FlowElement) Run(message *Message) (b bool, return_message *Message, err error)

run internal process

type FlowLink struct{}

ActionPrototypes

func (*FlowLink) After

func (m *FlowLink) After(message *Message, flow *Flow) (err error)

func (*FlowLink) Before

func (m *FlowLink) Before(message *Message, flow *Flow) (err error)

func (*FlowLink) Run

func (m *FlowLink) Run(message *Message, flow *Flow) (err error)

func (*FlowLink) Type

func (m *FlowLink) Type() string

type Gateway

type Gateway struct{}

ActionPrototypes

func (*Gateway) After

func (m *Gateway) After(message *Message, flow *Flow) (err error)

func (*Gateway) Before

func (m *Gateway) Before(message *Message, flow *Flow) (err error)

func (*Gateway) Run

func (m *Gateway) Run(message *Message, flow *Flow) (err error)

func (*Gateway) Type

func (m *Gateway) Type() string

type JavascriptCore added in v0.0.5

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

func (*JavascriptCore) GetVariable added in v0.0.5

func (j *JavascriptCore) GetVariable(key string) interface{}

func (*JavascriptCore) SetVariable added in v0.0.5

func (j *JavascriptCore) SetVariable(key string, value interface{})

type Message

type Message struct {
	Device       *models.Device
	Flow         *models.Flow
	Node         *models.Node
	Error        string
	Device_state func(state string)
	Data         map[string]interface{}
}

TODO refactor message system

func NewMessage

func NewMessage() *Message

func (*Message) SetError

func (m *Message) SetError(err string)

TODO refactor message system

type MessageEmitter

type MessageEmitter struct{}

ActionPrototypes

func (*MessageEmitter) After

func (m *MessageEmitter) After(message *Message, flow *Flow) (err error)

func (*MessageEmitter) Before

func (m *MessageEmitter) Before(message *Message, flow *Flow) (err error)

func (*MessageEmitter) Run

func (m *MessageEmitter) Run(message *Message, flow *Flow) (err error)

func (*MessageEmitter) Type

func (m *MessageEmitter) Type() string

type MessageHandler

type MessageHandler struct{}

ActionPrototypes

func (*MessageHandler) After

func (m *MessageHandler) After(message *Message, flow *Flow) (err error)

func (*MessageHandler) Before

func (m *MessageHandler) Before(message *Message, flow *Flow) (err error)

func (*MessageHandler) Run

func (m *MessageHandler) Run(message *Message, flow *Flow) (err error)

func (*MessageHandler) Type

func (m *MessageHandler) Type() string

type Status

type Status string

type Task

type Task struct{}

ActionPrototypes

func (*Task) After

func (m *Task) After(message *Message, flow *Flow) (err error)

func (*Task) Before

func (m *Task) Before(message *Message, flow *Flow) (err error)

func (*Task) Run

func (m *Task) Run(message *Message, flow *Flow) (err error)

func (*Task) Type

func (m *Task) Type() string

type Telemetry

type Telemetry interface {
	Broadcast(string)
	BroadcastOne(string, int64)
}

type Worker

type Worker struct {
	Model *models.Worker

	CronTask *cr.Task
	// contains filtered or unexported fields
}

func NewWorker

func NewWorker(model *models.Worker, flow *Flow) (worker *Worker)

func (*Worker) Actions

func (w *Worker) Actions() map[int64]*Action

func (*Worker) AddAction

func (w *Worker) AddAction(action *Action)

func (*Worker) Do

func (w *Worker) Do()

Run worker script, and send result to flow as message struct

func (*Worker) RegTask

func (w *Worker) RegTask()

func (*Worker) RemoveActions

func (w *Worker) RemoveActions()

func (*Worker) RemoveTask

func (w *Worker) RemoveTask() (err error)

type Workflow

type Workflow struct {
	Nodes map[int64]*models.Node

	Flows map[int64]*Flow
	// contains filtered or unexported fields
}

func NewWorkflow

func NewWorkflow(model *models.Workflow, nodes map[int64]*models.Node) (workflow *Workflow)

func (*Workflow) AddFlow

func (wf *Workflow) AddFlow(flow *models.Flow) (err error)

Flow должен быть полный: с Connections с FlowElements с Cursor с Workers

func (*Workflow) GetVariable added in v0.0.5

func (wf *Workflow) GetVariable(key string) interface{}

func (*Workflow) InitFlows

func (wf *Workflow) InitFlows() (err error)

получаем все связанные процессы

func (*Workflow) NewScript added in v0.0.5

func (wf *Workflow) NewScript(model *models.Script) (script *scripts.Engine, err error)

func (*Workflow) RemoveFlow

func (wf *Workflow) RemoveFlow(flow *models.Flow) (err error)

func (*Workflow) Restart

func (wf *Workflow) Restart() (err error)

func (*Workflow) Run

func (wf *Workflow) Run() (err error)

func (*Workflow) SetVariable added in v0.0.5

func (wf *Workflow) SetVariable(key string, value interface{})

func (*Workflow) Stop

func (wf *Workflow) Stop() (err error)

func (*Workflow) UpdateFlow

func (wf *Workflow) UpdateFlow(flow *models.Flow) (err error)

func (*Workflow) UpdateScenario added in v0.0.5

func (wf *Workflow) UpdateScenario() (err error)

Jump to

Keyboard shortcuts

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