execution

package
v0.0.0-...-05bc493 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SinkInitial int = iota
	SinkAborted
	SinkStopped
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

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

func NewRPCBuilder

func NewRPCBuilder(request reference.Global, object reference.Global) Builder

func (Builder) CallConstructor

func (r Builder) CallConstructor(class reference.Global, constructor string, arguments []byte) CallConstructor

func (Builder) CallMethod

func (r Builder) CallMethod(
	object reference.Global,
	class reference.Global,
	method string,
	arguments []byte,
) CallMethod

func (Builder) Deactivate

func (r Builder) Deactivate() Deactivate

type CallConstructor

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

func (CallConstructor) Arguments

func (e CallConstructor) Arguments() []byte

func (CallConstructor) Class

func (e CallConstructor) Class() reference.Global

func (CallConstructor) ConstructVCallRequest

func (e CallConstructor) ConstructVCallRequest(execution Context) *rms.VCallRequest

func (CallConstructor) Constructor

func (e CallConstructor) Constructor() string

func (CallConstructor) ParentObjectReference

func (e CallConstructor) ParentObjectReference() reference.Global

func (CallConstructor) ParentRequestReference

func (e CallConstructor) ParentRequestReference() reference.Global

type CallMethod

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

func (CallMethod) Arguments

func (e CallMethod) Arguments() []byte

func (CallMethod) Class

func (e CallMethod) Class() reference.Global

func (CallMethod) ConstructVCallRequest

func (e CallMethod) ConstructVCallRequest(execution Context) *rms.VCallRequest

func (CallMethod) Interference

func (e CallMethod) Interference() isolation.InterferenceFlag

func (CallMethod) Method

func (e CallMethod) Method() string

func (CallMethod) Object

func (e CallMethod) Object() reference.Global

func (CallMethod) ParentObjectReference

func (e CallMethod) ParentObjectReference() reference.Global

func (CallMethod) ParentRequestReference

func (e CallMethod) ParentRequestReference() reference.Global

func (CallMethod) SetInterference

func (e CallMethod) SetInterference(interference isolation.InterferenceFlag) CallMethod

func (CallMethod) SetIsolation

func (e CallMethod) SetIsolation(isolation isolation.StateFlag) CallMethod

type Context

type Context struct {
	ObjectDescriptor descriptor.Object
	Context          context.Context
	Request          *rms.VCallRequest
	Result           *rms.VCallResult
	Sequence         uint32
	Pulse            pulse.Data

	Object   reference.Global
	Incoming reference.Global
	Outgoing reference.Global

	Isolation contract.MethodIsolation

	LogicContext call.LogicContext
}

type Deactivate

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

func (Deactivate) ParentObjectReference

func (e Deactivate) ParentObjectReference() reference.Global

func (Deactivate) ParentRequestReference

func (e Deactivate) ParentRequestReference() reference.Global

type EventSink

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

func NewEventSink

func NewEventSink(id call.ID, execution Context) *EventSink

func (*EventSink) Context

func (c *EventSink) Context() Context

could be called from anywhere

func (*EventSink) Error

func (c *EventSink) Error(err error) bool

func (*EventSink) ExternalCall

func (c *EventSink) ExternalCall(event RPC) bool

func (*EventSink) GetEvent

func (c *EventSink) GetEvent() *Update

func (*EventSink) ID

func (c *EventSink) ID() call.ID

could be called from anywhere

func (*EventSink) InputFlush

func (c *EventSink) InputFlush()

func (*EventSink) InputProvide

func (c *EventSink) InputProvide(input requestresult.OutgoingExecutionResult)

should be called only from interceptor worker

func (*EventSink) InternalAbort

func (c *EventSink) InternalAbort()

should be called from Interceptor (??)

func (*EventSink) InternalStop

func (c *EventSink) InternalStop()

should be called only from contract execution goroutine

func (*EventSink) IsAborted

func (c *EventSink) IsAborted() bool

func (*EventSink) Result

func (c *EventSink) Result(result *requestresult.RequestResult) bool

func (*EventSink) WaitInput

should be called only from execution goroutine safe to be called not under lock

type RPC

type RPC interface {
	// contains filtered or unexported methods
}

type Update

type Update struct {
	Type  UpdateType
	Error error

	Result   *requestresult.RequestResult
	Outgoing RPC
}

type UpdateType

type UpdateType int
const (
	Undefined UpdateType = iota

	Error
	Abort
	Done

	OutgoingCall
)

func (UpdateType) String

func (i UpdateType) String() string

Jump to

Keyboard shortcuts

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