core

package
v0.37.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeSymbol

func MakeSymbol(typ, member string) string

func SplitSymbol

func SplitSymbol(symbol string) (string, string)

Types

type EventNotifier added in v0.19.0

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

EventNotifier implements INotifier interface.

func (*EventNotifier) EmitCall added in v0.19.0

func (n *EventNotifier) EmitCall(ifaceId string, opName string, args []any)

EmitCall emits the call event.

func (*EventNotifier) EmitCallError added in v0.20.0

func (n *EventNotifier) EmitCallError(symbol string, name string, err error)

EmitCallError emits the call error event.

func (*EventNotifier) EmitError added in v0.19.0

func (n *EventNotifier) EmitError(err error)

EmitError emits the error event.

func (*EventNotifier) EmitEvent added in v0.19.0

func (n *EventNotifier) EmitEvent(e *SimuEvent)

EmitEvent emits the event to all registered handlers. The event timestamp is set to the current time.

func (*EventNotifier) EmitPropertyChanged added in v0.19.0

func (n *EventNotifier) EmitPropertyChanged(ifaceId string, propName string, value any)

EmitPropertyChanged emits the property changed event.

func (*EventNotifier) EmitPropertySet added in v0.19.0

func (n *EventNotifier) EmitPropertySet(ifaceId string, kwargs map[string]any)

EmitPropertySet emits the property set event.

func (*EventNotifier) EmitReply added in v0.19.0

func (n *EventNotifier) EmitReply(ifaceId string, opName string, value any)

EmitReply emits the reply event.

func (*EventNotifier) EmitSeqStart added in v0.34.0

func (n *EventNotifier) EmitSeqStart(name string)

EmitSeqStart emits the simulation start event.

func (*EventNotifier) EmitSeqStop added in v0.34.0

func (n *EventNotifier) EmitSeqStop(name string)

EmitSeqStop emits the simulation stop event.

func (*EventNotifier) EmitSignal added in v0.19.0

func (n *EventNotifier) EmitSignal(ifaceId string, signName string, args []any)

EmitSignal emits the signal event.

func (*EventNotifier) OnEvent added in v0.19.0

func (n *EventNotifier) OnEvent(f OnEventFunc)

OnEvent registers the event handler function.

type IEngine

type IEngine interface {
	INotifier
	HasInterface(symbol string) bool
	InvokeOperation(symbol string, name string, args []any) (any, error)
	SetProperties(symbol string, params map[string]any) error
	GetProperties(symbol string) (map[string]any, error)
	HasSequence(name string) bool
	PlaySequence(ctx context.Context, name string) error
	StopSequence(name string) error
	PlayAllSequences(ctx context.Context) error
	StopAllSequences()
}

IEngine is the interface for the simulation engine.

type INotifier added in v0.19.0

type INotifier interface {
	OnEvent(f OnEventFunc)
	EmitEvent(e *SimuEvent)
}

INotifier is the interface for the event notifier.

type MultiEngine

type MultiEngine struct {
	EventNotifier
	// contains filtered or unexported fields
}

func NewMultiEngine

func NewMultiEngine(engines ...IEngine) *MultiEngine

func (*MultiEngine) GetProperties

func (e *MultiEngine) GetProperties(ifaceId string) (map[string]any, error)

FetchProperties fetches the properties of the interface.

func (*MultiEngine) HasInterface

func (e *MultiEngine) HasInterface(ifaceId string) bool

HasInterface returns true if the interface is served by the simulation.

func (*MultiEngine) HasSequence

func (e *MultiEngine) HasSequence(sequencerId string) bool

func (*MultiEngine) InvokeOperation

func (e *MultiEngine) InvokeOperation(ifaceId string, name string, args []any) (any, error)

InvokeOperation invokes the operation of the interface.

func (*MultiEngine) PlayAllSequences added in v0.8.0

func (e *MultiEngine) PlayAllSequences(ctx context.Context) error

func (*MultiEngine) PlaySequence

func (e *MultiEngine) PlaySequence(ctx context.Context, sequenceId string) error

func (*MultiEngine) SetProperties

func (e *MultiEngine) SetProperties(ifaceId string, props map[string]any) error

SetProperties updates the properties of the interface.

func (*MultiEngine) StopAllSequences added in v0.8.0

func (e *MultiEngine) StopAllSequences()

func (*MultiEngine) StopSequence added in v0.8.0

func (e *MultiEngine) StopSequence(sequenceId string) error

type OnEventFunc added in v0.19.0

type OnEventFunc func(event *SimuEvent)

OnEventFunc is the type of the event handler function.

type SimuEvent added in v0.19.0

type SimuEvent struct {
	Type      SimuEventType  `json:"type"`
	Timestamp time.Time      `json:"timestamp"`
	Symbol    string         `json:"symbol"`
	Name      string         `json:"name"`
	Args      []any          `json:"args"`
	KWArgs    map[string]any `json:"kwargs"`
	Error     string         `json:"error"`
}

type SimuEventType added in v0.19.0

type SimuEventType string
const (
	EventSeqStart        SimuEventType = "start"
	EventSeqStop         SimuEventType = "stop"
	EventCall            SimuEventType = "call"
	EventReply           SimuEventType = "response"
	EventSignal          SimuEventType = "signal"
	EventPropertySet     SimuEventType = "set"
	EventPropertyChanged SimuEventType = "changed"
	EventError           SimuEventType = "error"
)

Jump to

Keyboard shortcuts

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