core

package
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 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 GetFlow added in v0.0.7

func GetFlow(id int64) interface{}

func GetNode added in v0.0.7

func GetNode(id int64) interface{}

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, flow *Flow) (action *Action, err error)

func (*Action) Do

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

func (*Action) GetDevice added in v0.0.7

func (a *Action) GetDevice() *models.Device

func (*Action) GetNode added in v0.0.7

func (a *Action) GetNode() *models.Node

func (*Action) NewScript added in v0.0.7

func (a *Action) NewScript(flow *Flow, script *models.Script) (err error)

type ActionBind added in v0.0.7

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

func (*ActionBind) Device added in v0.0.7

func (a *ActionBind) Device() *models.Device

func (*ActionBind) Node added in v0.0.7

func (a *ActionBind) Node() *models.Node

type ActionPrototypes

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

type Core

type Core struct {
	Map *Map
	// 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) DeleteWorkflow added in v0.0.7

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

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

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) GetFlow added in v0.0.7

func (b *Core) GetFlow(id int64) (*Flow, error)

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) Run

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

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) UpdateWorkflow added in v0.0.7

func (b *Core) UpdateWorkflow(workflow *models.Workflow) (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

	Storage
	// 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) NewScript added in v0.0.7

func (f *Flow) NewScript(model *models.Script) (script *scripts.Engine, 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 FlowBind added in v0.0.7

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

func (*FlowBind) GetDescription added in v0.0.7

func (f *FlowBind) GetDescription() string

func (*FlowBind) GetName added in v0.0.7

func (f *FlowBind) GetName() string

func (*FlowBind) GetVar added in v0.0.7

func (f *FlowBind) GetVar(key string) interface{}

func (*FlowBind) Node added in v0.0.7

func (f *FlowBind) Node() *models.Node

func (*FlowBind) SetVar added in v0.0.7

func (f *FlowBind) SetVar(key string, value interface{})

type FlowElement

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

	Action *Action
	// 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 Map added in v0.0.7

type Map struct {
	sync.Mutex
	// contains filtered or unexported fields
}

TODO refactor map system

func (*Map) GetAllElements added in v0.0.7

func (b *Map) GetAllElements() map[int64]*MapElement

func (*Map) GetDevicesStates added in v0.0.7

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

func (*Map) GetElement added in v0.0.7

func (b *Map) GetElement(device *models.Device) *MapElement

func (*Map) NewMapElement added in v0.0.7

func (b *Map) NewMapElement(device *models.Device, state *models.DeviceState) *MapElement

func (*Map) SetElementState added in v0.0.7

func (b *Map) SetElementState(device *models.Device, systemName string)

type MapBind added in v0.0.7

type MapBind struct {
	Map *Map
}

func (*MapBind) GetElement added in v0.0.7

func (e *MapBind) GetElement(device *models.Device) *MapElement

func (*MapBind) SetElementState added in v0.0.7

func (e *MapBind) SetElementState(device *models.Device, state string)

type MapElement added in v0.0.7

type MapElement struct {
	Map     *Map
	Options interface{}
	Device  *models.Device
	State   *models.DeviceState
}

func (*MapElement) GetOptions added in v0.0.7

func (e *MapElement) GetOptions() interface{}

func (*MapElement) GetState added in v0.0.7

func (e *MapElement) GetState() interface{}

func (*MapElement) SetOptions added in v0.0.7

func (e *MapElement) SetOptions(options interface{})

func (*MapElement) SetState added in v0.0.7

func (e *MapElement) SetState(systemName string)

type Message

type Message struct {
	Error string
	Storage
}

func NewMessage

func NewMessage() (m *Message)

func (*Message) Clear added in v0.0.7

func (m *Message) Clear()

func (*Message) SetError

func (m *Message) SetError(err string)

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 Storage added in v0.0.7

type Storage struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Storage) GetVar added in v0.0.7

func (s *Storage) GetVar(key string) interface{}

func (*Storage) SetVar added in v0.0.7

func (s *Storage) SetVar(key string, value interface{})

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 {
	Storage

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

func NewWorkflow

func NewWorkflow(model *models.Workflow) (workflow *Workflow)

func (*Workflow) AddFlow

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

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

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) SetScenario added in v0.0.7

func (wf *Workflow) SetScenario(system_name string) (err error)

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)

type WorkflowBind added in v0.0.7

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

func (*WorkflowBind) GetDescription added in v0.0.7

func (w *WorkflowBind) GetDescription() string

func (*WorkflowBind) GetName added in v0.0.7

func (w *WorkflowBind) GetName() string

func (*WorkflowBind) GetScenario added in v0.0.7

func (w *WorkflowBind) GetScenario() string

func (*WorkflowBind) GetVar added in v0.0.7

func (w *WorkflowBind) GetVar(key string) interface{}

func (*WorkflowBind) SetScenario added in v0.0.7

func (w *WorkflowBind) SetScenario(system_name string)

func (*WorkflowBind) SetVar added in v0.0.7

func (w *WorkflowBind) SetVar(key string, value interface{})

Jump to

Keyboard shortcuts

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