Documentation
¶
Index ¶
- Variables
- func AccessObject(ctx context.Context, handle ExecControllerHandle, ref *bucket.ObjectRef, ...) (*bucket.ObjectRef, error)
- func AccessValue(ctx context.Context, handle ExecControllerHandle, val *forge_value.Value, ...) (*forge_value.Value, error)
- func ComputeOutput(output *Output, execValues []*forge_value.Value) (*forge_value.Value, error)
- func ComputeOutputs(outputs []*Output, execValues []*forge_value.Value) (forge_value.ValueSlice, error)
- func CopyValueToBucket(ctx context.Context, handle ExecControllerHandle, val *forge_value.Value) (*forge_value.Value, error)
- func CreateTarget(ctx context.Context, ws world.WorldState, objKey string, t *Target) (world.ObjectState, *bucket.ObjectRef, error)
- func GetInputsNames(inps []*Input) []string
- func InlineValueToValue(iv InputValue) (*forge_value.Value, error)
- func InputValueToValue(iv InputValue) (*forge_value.Value, error)
- func InputValueToWorldState(iv InputValue) (world.WorldState, error)
- func LoadBlobValueToBytes(ctx context.Context, handle ExecControllerHandle, val *forge_value.Value) ([]byte, error)
- func LoadMsgpackValue[T any](ctx context.Context, handle ExecControllerHandle, value *forge_value.Value, ...) (T, error)
- func NewTargetBlock() block.Block
- func NewValueSetBlock() block.Block
- func NewValueSetSubBlockCtor(r **ValueSet) block.SubBlockCtor
- func ResolveInputMap(ctx context.Context, b bus.Bus, defWorld InputValueWorld, tgt *Target, ...) (im InputMap, unresolved []*Input, relAll func(), err error)
- func SortInputs(inps []*Input)
- func StoreBlobValue(ctx context.Context, handle ExecControllerHandle, dataLen int64, rd io.Reader) (*forge_value.Value, error)
- func StoreBlobValueFromBytes(ctx context.Context, handle ExecControllerHandle, data []byte) (*forge_value.Value, error)
- func StoreMsgpackValue(ctx context.Context, handle ExecControllerHandle, value any) (*forge_value.Value, error)
- func StoreValueAsBlockRef(ctx context.Context, handle ExecControllerHandle, val *forge_value.Value) (*forge_value.Value, error)
- type Exec
- func (m *Exec) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Exec) CloneVT() *Exec
- func (this *Exec) EqualMessageVT(thatMsg any) bool
- func (this *Exec) EqualVT(that *Exec) bool
- func (x *Exec) GetController() *proto.ControllerConfig
- func (x *Exec) GetDisable() bool
- func (e *Exec) IsNil() bool
- func (e *Exec) MarshalBlock() ([]byte, error)
- func (x *Exec) MarshalJSON() ([]byte, error)
- func (x *Exec) MarshalProtoJSON(s *json.MarshalState)
- func (x *Exec) MarshalProtoText() string
- func (m *Exec) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Exec) MarshalToVT(dAtA []byte) (int, error)
- func (m *Exec) MarshalVT() (dAtA []byte, err error)
- func (*Exec) ProtoMessage()
- func (x *Exec) Reset()
- func (m *Exec) SizeVT() (n int)
- func (x *Exec) String() string
- func (e *Exec) UnmarshalBlock(data []byte) error
- func (x *Exec) UnmarshalJSON(b []byte) error
- func (x *Exec) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Exec) UnmarshalVT(dAtA []byte) error
- func (e *Exec) Validate() error
- type ExecController
- type ExecControllerHandle
- type Input
- func (m *Input) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Input) CloneVT() *Input
- func (this *Input) EqualMessageVT(thatMsg any) bool
- func (this *Input) EqualVT(that *Input) bool
- func (x *Input) GetAlias() string
- func (x *Input) GetInputType() InputType
- func (x *Input) GetName() string
- func (x *Input) GetValue() *value.Value
- func (x *Input) GetWatchChanges() bool
- func (x *Input) GetWorld() *InputWorld
- func (x *Input) GetWorldObject() *InputWorldObject
- func (i *Input) IsNil() bool
- func (x *Input) MarshalJSON() ([]byte, error)
- func (x *Input) MarshalProtoJSON(s *json.MarshalState)
- func (x *Input) MarshalProtoText() string
- func (m *Input) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Input) MarshalToVT(dAtA []byte) (int, error)
- func (m *Input) MarshalVT() (dAtA []byte, err error)
- func (*Input) ProtoMessage()
- func (x *Input) Reset()
- func (m *Input) SizeVT() (n int)
- func (x *Input) String() string
- func (x *Input) UnmarshalJSON(b []byte) error
- func (x *Input) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Input) UnmarshalVT(dAtA []byte) error
- func (i *Input) Validate() error
- type InputMap
- type InputType
- func (x InputType) Enum() *InputType
- func (x InputType) MarshalJSON() ([]byte, error)
- func (x InputType) MarshalProtoJSON(s *json.MarshalState)
- func (x InputType) MarshalProtoText() string
- func (x InputType) MarshalText() ([]byte, error)
- func (x InputType) String() string
- func (x *InputType) UnmarshalJSON(b []byte) error
- func (x *InputType) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (x *InputType) UnmarshalText(b []byte) error
- func (t InputType) Validate(allowUnknown bool) error
- type InputValue
- type InputValueInline
- type InputValueWorld
- type InputValueWorldObject
- type InputWorld
- func (m *InputWorld) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *InputWorld) CloneVT() *InputWorld
- func (this *InputWorld) EqualMessageVT(thatMsg any) bool
- func (this *InputWorld) EqualVT(that *InputWorld) bool
- func (x *InputWorld) GetEngineId() string
- func (x *InputWorld) GetLookupImmediate() bool
- func (x *InputWorld) MarshalJSON() ([]byte, error)
- func (x *InputWorld) MarshalProtoJSON(s *json.MarshalState)
- func (x *InputWorld) MarshalProtoText() string
- func (m *InputWorld) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *InputWorld) MarshalToVT(dAtA []byte) (int, error)
- func (m *InputWorld) MarshalVT() (dAtA []byte, err error)
- func (*InputWorld) ProtoMessage()
- func (x *InputWorld) Reset()
- func (i *InputWorld) ResolveValue(ctx context.Context, b bus.Bus) (InputValueWorld, func(), error)
- func (m *InputWorld) SizeVT() (n int)
- func (x *InputWorld) String() string
- func (x *InputWorld) UnmarshalJSON(b []byte) error
- func (x *InputWorld) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *InputWorld) UnmarshalVT(dAtA []byte) error
- func (i *InputWorld) Validate() error
- type InputWorldObject
- func (m *InputWorldObject) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *InputWorldObject) CloneVT() *InputWorldObject
- func (this *InputWorldObject) EqualMessageVT(thatMsg any) bool
- func (this *InputWorldObject) EqualVT(that *InputWorldObject) bool
- func (x *InputWorldObject) GetObjectKey() string
- func (x *InputWorldObject) GetObjectRev() uint64
- func (x *InputWorldObject) GetWorld() string
- func (x *InputWorldObject) MarshalJSON() ([]byte, error)
- func (x *InputWorldObject) MarshalProtoJSON(s *json.MarshalState)
- func (x *InputWorldObject) MarshalProtoText() string
- func (m *InputWorldObject) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *InputWorldObject) MarshalToVT(dAtA []byte) (int, error)
- func (m *InputWorldObject) MarshalVT() (dAtA []byte, err error)
- func (*InputWorldObject) ProtoMessage()
- func (x *InputWorldObject) Reset()
- func (i *InputWorldObject) ResolveValue(ctx context.Context, b bus.Bus, inpName string, inpWorld InputValueWorld) (InputValueWorldObject, func(), error)
- func (m *InputWorldObject) SizeVT() (n int)
- func (x *InputWorldObject) String() string
- func (x *InputWorldObject) UnmarshalJSON(b []byte) error
- func (x *InputWorldObject) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *InputWorldObject) UnmarshalVT(dAtA []byte) error
- func (i *InputWorldObject) Validate() error
- type Output
- func (m *Output) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Output) CloneVT() *Output
- func (this *Output) EqualMessageVT(thatMsg any) bool
- func (this *Output) EqualVT(that *Output) bool
- func (x *Output) GetExecOutput() string
- func (x *Output) GetName() string
- func (x *Output) GetOutputType() OutputType
- func (x *Output) GetValue() *value.Value
- func (o *Output) IsNil() bool
- func (x *Output) MarshalJSON() ([]byte, error)
- func (x *Output) MarshalProtoJSON(s *json.MarshalState)
- func (x *Output) MarshalProtoText() string
- func (m *Output) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Output) MarshalToVT(dAtA []byte) (int, error)
- func (m *Output) MarshalVT() (dAtA []byte, err error)
- func (*Output) ProtoMessage()
- func (x *Output) Reset()
- func (m *Output) SizeVT() (n int)
- func (x *Output) String() string
- func (x *Output) UnmarshalJSON(b []byte) error
- func (x *Output) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Output) UnmarshalVT(dAtA []byte) error
- func (o *Output) Validate() error
- type OutputType
- func (x OutputType) Enum() *OutputType
- func (x OutputType) MarshalJSON() ([]byte, error)
- func (x OutputType) MarshalProtoJSON(s *json.MarshalState)
- func (x OutputType) MarshalProtoText() string
- func (x OutputType) MarshalText() ([]byte, error)
- func (x OutputType) String() string
- func (x *OutputType) UnmarshalJSON(b []byte) error
- func (x *OutputType) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (x *OutputType) UnmarshalText(b []byte) error
- func (t OutputType) Validate(allowUnknown bool) error
- type Target
- func (t *Target) ApplySubBlock(id uint32, next block.SubBlock) error
- func (m *Target) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Target) CloneVT() *Target
- func (this *Target) EqualMessageVT(thatMsg any) bool
- func (this *Target) EqualVT(that *Target) bool
- func (x *Target) GetExec() *Exec
- func (x *Target) GetInputs() []*Input
- func (x *Target) GetOutputs() []*Output
- func (t *Target) GetSubBlockCtor(id uint32) block.SubBlockCtor
- func (t *Target) GetSubBlocks() map[uint32]block.SubBlock
- func (t *Target) MarshalBlock() ([]byte, error)
- func (x *Target) MarshalJSON() ([]byte, error)
- func (x *Target) MarshalProtoJSON(s *json.MarshalState)
- func (x *Target) MarshalProtoText() string
- func (m *Target) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Target) MarshalToVT(dAtA []byte) (int, error)
- func (m *Target) MarshalVT() (dAtA []byte, err error)
- func (*Target) ProtoMessage()
- func (x *Target) Reset()
- func (m *Target) SizeVT() (n int)
- func (x *Target) String() string
- func (t *Target) UnmarshalBlock(data []byte) error
- func (x *Target) UnmarshalJSON(b []byte) error
- func (x *Target) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Target) UnmarshalVT(dAtA []byte) error
- func (t *Target) Validate() error
- type ValueSet
- func (v *ValueSet) ApplySubBlock(id uint32, next block.SubBlock) error
- func (v *ValueSet) Clone() *ValueSet
- func (m *ValueSet) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *ValueSet) CloneVT() *ValueSet
- func (this *ValueSet) EqualMessageVT(thatMsg any) bool
- func (this *ValueSet) EqualVT(that *ValueSet) bool
- func (x *ValueSet) GetInputs() []*value.Value
- func (x *ValueSet) GetOutputs() []*value.Value
- func (v *ValueSet) GetSubBlockCtor(id uint32) block.SubBlockCtor
- func (v *ValueSet) GetSubBlocks() map[uint32]block.SubBlock
- func (v *ValueSet) IsNil() bool
- func (v *ValueSet) LookupInput(name string) (*forge_value.Value, int)
- func (v *ValueSet) LookupOutput(name string) (*forge_value.Value, int)
- func (v *ValueSet) MarshalBlock() ([]byte, error)
- func (x *ValueSet) MarshalJSON() ([]byte, error)
- func (x *ValueSet) MarshalProtoJSON(s *json.MarshalState)
- func (x *ValueSet) MarshalProtoText() string
- func (m *ValueSet) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *ValueSet) MarshalToVT(dAtA []byte) (int, error)
- func (m *ValueSet) MarshalVT() (dAtA []byte, err error)
- func (*ValueSet) ProtoMessage()
- func (x *ValueSet) Reset()
- func (m *ValueSet) SizeVT() (n int)
- func (v *ValueSet) SortValues()
- func (x *ValueSet) String() string
- func (v *ValueSet) UnmarshalBlock(data []byte) error
- func (x *ValueSet) UnmarshalJSON(b []byte) error
- func (x *ValueSet) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *ValueSet) UnmarshalVT(dAtA []byte) error
- func (v *ValueSet) Validate() error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrTargetWorldUnset is returned if no target world was set. ErrTargetWorldUnset = errors.New("no target world configured") // ErrUnknownInputType is returned if the input type is unknown. ErrUnknownInputType = errors.New("unknown input type") // ErrUnknownOutputType is returned if the output type is unknown. ErrUnknownOutputType = errors.New("unknown output type") // ErrUnexpectedInputValueType is returned if the input value type was unexpected. ErrUnexpectedInputValueType = errors.New("unexpected input value type") // ErrUnexpectedOutputValueType is returned if the output value type was unexpected. ErrUnexpectedOutputValueType = errors.New("unexpected output value type") )
var ( InputType_name = map[int32]string{ 0: "InputType_UNKNOWN", 1: "InputType_VALUE", 2: "InputType_ALIAS", 3: "InputType_WORLD", 4: "InputType_WORLD_OBJECT", } InputType_value = map[string]int32{ "InputType_UNKNOWN": 0, "InputType_VALUE": 1, "InputType_ALIAS": 2, "InputType_WORLD": 3, "InputType_WORLD_OBJECT": 4, } )
Enum value maps for InputType.
var ( OutputType_name = map[int32]string{ 0: "OutputType_UNKNOWN", 1: "OutputType_EXEC", 2: "OutputType_VALUE", } OutputType_value = map[string]int32{ "OutputType_UNKNOWN": 0, "OutputType_EXEC": 1, "OutputType_VALUE": 2, } )
Enum value maps for OutputType.
Functions ¶
func AccessObject ¶
func AccessObject( ctx context.Context, handle ExecControllerHandle, ref *bucket.ObjectRef, cb func(*block.Cursor) error, ) (*bucket.ObjectRef, error)
AccessObject creates a block cursor at a object value.
func AccessValue ¶
func AccessValue( ctx context.Context, handle ExecControllerHandle, val *forge_value.Value, cb func(*block.Cursor) error, ) (*forge_value.Value, error)
AccessValue accesses object located at value and returns a new value with the updated result, or a clone of the original if nothing changed.
Value can be nil (or the ref empty) to create a new value.
func ComputeOutput ¶
func ComputeOutput(output *Output, execValues []*forge_value.Value) (*forge_value.Value, error)
ComputeOutput computes the output value for a Execution output value.
returns an empty value (Type=0) for any unset outputs.
func ComputeOutputs ¶
func ComputeOutputs(outputs []*Output, execValues []*forge_value.Value) (forge_value.ValueSlice, error)
ComputeOutputs computes the output set for a list of Execution output values.
func CopyValueToBucket ¶
func CopyValueToBucket( ctx context.Context, handle ExecControllerHandle, val *forge_value.Value, ) (*forge_value.Value, error)
CopyValueToBucket copies the value to the target bucket.
May return nil if there is no value set or if it is empty. Otherwise returns a *Value with type BLOCK_REF or an error.
func CreateTarget ¶
func CreateTarget( ctx context.Context, ws world.WorldState, objKey string, t *Target, ) (world.ObjectState, *bucket.ObjectRef, error)
CreateTarget writes the Target to a world object.
func GetInputsNames ¶
GetInputsNames returns the list of names for a set of inputs.
func InlineValueToValue ¶
func InlineValueToValue(iv InputValue) (*forge_value.Value, error)
InlineValueToValue resolves an inline InputValue to a Value. Does not attempt to resolve dynamic values. Returns nil, nil if the value is empty or nil.
func InputValueToValue ¶
func InputValueToValue(iv InputValue) (*forge_value.Value, error)
InputValueToValue resolves an inline InputValue to a Value. Returns nil, nil if the value is empty or nil.
func InputValueToWorldState ¶
func InputValueToWorldState(iv InputValue) (world.WorldState, error)
InputValueToWorldState resolves an InputValue to a WorldState. Returns nil, nil if the value is empty or nil.
func LoadBlobValueToBytes ¶
func LoadBlobValueToBytes( ctx context.Context, handle ExecControllerHandle, val *forge_value.Value, ) ([]byte, error)
LoadBlobValueToBytes loads the blob value to a byte slice.
func LoadMsgpackValue ¶
func LoadMsgpackValue[T any]( ctx context.Context, handle ExecControllerHandle, value *forge_value.Value, ctor func() T, ) (T, error)
LoadMsgpackValue loads the data from a msgpack block. use interface{} type to unmarshal dynamic types. if ctor is nil, uses the empty value of T. returns the empty value returned from ctor if value is empty StoreMsgpackValue stores the given data as a Msgpack block.
func NewTargetBlock ¶
NewTargetBlock constructs a new block with type Target.
func NewValueSetBlock ¶
NewValueSetBlock constructs a new value set block.
func NewValueSetSubBlockCtor ¶
func NewValueSetSubBlockCtor(r **ValueSet) block.SubBlockCtor
NewValueSetSubBlockCtor returns the sub-block constructor.
func ResolveInputMap ¶
func ResolveInputMap( ctx context.Context, b bus.Bus, defWorld InputValueWorld, tgt *Target, inputVals forge_value.ValueMap, ) (im InputMap, unresolved []*Input, relAll func(), err error)
ResolveInputMap resolves a ValueMap to an InputMap. returns a function which can be used to release the values. inputVals is the contents of the inputs ValueSet. returns the list of unresolved inputs.
func StoreBlobValue ¶
func StoreBlobValue( ctx context.Context, handle ExecControllerHandle, dataLen int64, rd io.Reader, ) (*forge_value.Value, error)
StoreBlobValue stores the given data as a Blob and returns a BlockRef value.
func StoreBlobValueFromBytes ¶
func StoreBlobValueFromBytes( ctx context.Context, handle ExecControllerHandle, data []byte, ) (*forge_value.Value, error)
StoreBlobValueFromBytes stores the given []byte slice as a Blob value.
func StoreMsgpackValue ¶
func StoreMsgpackValue( ctx context.Context, handle ExecControllerHandle, value any, ) (*forge_value.Value, error)
StoreMsgpackValue stores the given data as a Msgpack block. The data is all stored in a single block.
func StoreValueAsBlockRef ¶
func StoreValueAsBlockRef( ctx context.Context, handle ExecControllerHandle, val *forge_value.Value, ) (*forge_value.Value, error)
StoreValueAsBlockRef copies the value to a BlockRef. Copies data into the state bucket if it is located in a different bucket.
May return nil if there is no value set or if it is empty. Otherwise returns a *Value with type BLOCK_REF or an error.
Types ¶
type Exec ¶
type Exec struct {
// Disable is a flag to ignore the below contents and inhibit the exec step.
Disable bool `protobuf:"varint,1,opt,name=disable,proto3" json:"disable,omitempty"`
// Controller indicates to run a controllerbus controller.
Controller *proto.ControllerConfig `protobuf:"bytes,2,opt,name=controller,proto3" json:"controller,omitempty"`
// contains filtered or unexported fields
}
Exec contains target execution configuration.
func (*Exec) CloneMessageVT ¶
func (m *Exec) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Exec) EqualMessageVT ¶
func (*Exec) GetController ¶
func (x *Exec) GetController() *proto.ControllerConfig
func (*Exec) GetDisable ¶
func (*Exec) MarshalBlock ¶
MarshalBlock marshals the block to binary. This is the initial step of marshaling, before transformations.
func (*Exec) MarshalJSON ¶
MarshalJSON marshals the Exec to JSON.
func (*Exec) MarshalProtoJSON ¶
func (x *Exec) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Exec message to JSON.
func (*Exec) MarshalProtoText ¶
func (*Exec) MarshalToSizedBufferVT ¶
func (*Exec) ProtoMessage ¶
func (*Exec) ProtoMessage()
func (*Exec) UnmarshalBlock ¶
UnmarshalBlock unmarshals the block to the object. This is the final step of decoding, after transformations.
func (*Exec) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Exec from JSON.
func (*Exec) UnmarshalProtoJSON ¶
func (x *Exec) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Exec message from JSON.
func (*Exec) UnmarshalVT ¶
type ExecController ¶
type ExecController interface {
// Controller indicates this is a controllerbus controller.
controller.Controller
// InitForgeExecController initializes the Forge execution controller.
// This is called before Execute().
// Any error returned cancels execution of the controller.
InitForgeExecController(
ctx context.Context,
inputs InputMap,
handle ExecControllerHandle,
) error
}
ExecController is a controller that implements the target Exec controller. The controller will be constructed using the exec.controller config.
type ExecControllerHandle ¶
type ExecControllerHandle interface {
// GetExecutionUniqueId returns a unique identifier for the execution pass.
GetExecutionUniqueId() string
// GetPeerId returns the peer id that this exec controller is operating as.
GetPeerId() peer.ID
// GetTimestamp returns the timestamp for the execution and all execution ops.
// Cannot return nil. Do not edit this object.
GetTimestamp() *timestamp.Timestamp
// AccessStorage builds a bucket lookup cursor located at the given ref.
// If the ref is empty, will produce a cursor at the root of the world.
// The lookup cursor will be released after cb returns.
AccessStorage(
ctx context.Context,
ref *bucket.ObjectRef,
cb func(*bucket_lookup.Cursor) error,
) error
// SetOutputs changes the outputs according to the given ValueSlice.
// Note: the slice contents will be copied before the call returns.
// Note: each Value must be named.
// Use the writeCursor to write output objects, then SetOutputs with the refs.
// If clearOld is set, all old Output values will be cleared.
// Returns context.Canceled if the handle ctx is canceled.
SetOutputs(
ctx context.Context,
outps forge_value.ValueSlice,
clearOld bool,
) error
// WriteLog appends log entries to the execution.
// Each entry is a (level, message) pair. The timestamp is set automatically.
// Returns context.Canceled if the handle ctx is canceled.
WriteLog(ctx context.Context, level, message string) error
}
ExecControllerHandle is the handle passed to the exec controller during init. This contains functions that can be called during execution.
func ExecControllerHandleWithAccess ¶
func ExecControllerHandleWithAccess( uniqueID string, peerID peer.ID, targetWorld world.Engine, accessFunc world.AccessWorldStateFunc, ts *timestamp.Timestamp, ) ExecControllerHandle
ExecControllerHandleWithAccess constructs an ExecControllerHandle which only implements AccessStorage.
type Input ¶
type Input struct {
// Name is the unique name of the input.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// InputType is the type of input.
// If UNKNOWN and Alias is set, assumes ALIAS.
InputType InputType `protobuf:"varint,2,opt,name=input_type,json=inputType,proto3" json:"inputType,omitempty"`
// Alias is the name of the target aliased Input.
Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
// WatchChanges will restart the Task if the Value changes.
WatchChanges bool `protobuf:"varint,7,opt,name=watch_changes,json=watchChanges,proto3" json:"watchChanges,omitempty"`
// Value is the in-line data for the value input type.
// InputType_VALUE
Value *value.Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
// World contains the args for the world input type.
// InputType_WORLD
World *InputWorld `protobuf:"bytes,5,opt,name=world,proto3" json:"world,omitempty"`
// WorldObject contains the args for the world object input type.
// Can be used for change detection: re-run Target when object changes.
// InputType_WORLD_OBJECT
WorldObject *InputWorldObject `protobuf:"bytes,6,opt,name=world_object,json=worldObject,proto3" json:"worldObject,omitempty"`
// contains filtered or unexported fields
}
Input contains configuration for a Task target input.
func NewInput_World ¶
NewInput_World constructs a new Input for a World.
func (*Input) CloneMessageVT ¶
func (m *Input) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Input) EqualMessageVT ¶
func (*Input) GetInputType ¶
func (*Input) GetWatchChanges ¶
func (*Input) GetWorld ¶
func (x *Input) GetWorld() *InputWorld
func (*Input) GetWorldObject ¶
func (x *Input) GetWorldObject() *InputWorldObject
func (*Input) MarshalJSON ¶
MarshalJSON marshals the Input to JSON.
func (*Input) MarshalProtoJSON ¶
func (x *Input) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Input message to JSON.
func (*Input) MarshalProtoText ¶
func (*Input) MarshalToSizedBufferVT ¶
func (*Input) ProtoMessage ¶
func (*Input) ProtoMessage()
func (*Input) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Input from JSON.
func (*Input) UnmarshalProtoJSON ¶
func (x *Input) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Input message from JSON.
func (*Input) UnmarshalVT ¶
type InputMap ¶
type InputMap map[string]InputValue
InputMap is the set of provided input values. The key must match the input Name field.
func (InputMap) BuildValueSet ¶
BuildValueSet builds a ValueSet from all InlineValue inputs.
type InputType ¶
type InputType int32
InputType is the list of possible input types.
const ( // InputType_UNKNOWN is the zero output type. InputType_InputType_UNKNOWN InputType = 0 // InputType_VALUE is an in-line value input. InputType_InputType_VALUE InputType = 1 // InputType_ALIAS aliases the input to another named input. InputType_InputType_ALIAS InputType = 2 // InputType_WORLD passes a handle to a Hydra World as an input. InputType_InputType_WORLD InputType = 3 // InputType_WORLD_OBJECT passes a Value with the latest Object ref and a // world object handle attached to a WORLD input. InputType_InputType_WORLD_OBJECT InputType = 4 )
func (InputType) MarshalJSON ¶
MarshalJSON marshals the InputType to JSON.
func (InputType) MarshalProtoJSON ¶
func (x InputType) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the InputType to JSON.
func (InputType) MarshalProtoText ¶
func (InputType) MarshalText ¶
MarshalText marshals the InputType to text.
func (*InputType) UnmarshalJSON ¶
UnmarshalJSON unmarshals the InputType from JSON.
func (*InputType) UnmarshalProtoJSON ¶
func (x *InputType) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the InputType from JSON.
func (*InputType) UnmarshalText ¶
UnmarshalText unmarshals the InputType from text.
type InputValue ¶
type InputValue interface {
// GetInputType returns the input type of this value.
GetInputType() InputType
// Validate checks the input value.
Validate() error
// IsEmpty checks if the value is "empty."
IsEmpty() bool
}
InputValue is the parsed and processed value of an Input.
func ResolveInput ¶
func ResolveInput( ctx context.Context, b bus.Bus, inp *Input, im InputMap, defWorld InputValueWorld, ) (InputValue, func(), error)
ResolveInput resolves an input to the InputMap. can return an optional release func (or nil) can return nil, nil, nil if no value
type InputValueInline ¶
type InputValueInline interface {
// InputValue indicates this is an InputValue.
InputValue
// GetValue returns the value.
GetValue() *forge_value.Value
}
InputValueInline is the interface expected for a InputValue of type VALUE.
func NewInputValueInline ¶
func NewInputValueInline(v *forge_value.Value) InputValueInline
NewInputValueInline constructs a new InputValueInline from a Value.
type InputValueWorld ¶
type InputValueWorld interface {
// InputValue indicates this is an InputValue.
InputValue
// GetWorldEngine returns the world engine, if available.
// May return nil if unavailable.
GetWorldEngine() world.Engine
// GetWorldState returns the world state.
// Should not return nil.
GetWorldState() world.WorldState
}
InputValueWorld is the interface expected for a InputValue of type WORLD.
func InputValueToWorld ¶
func InputValueToWorld(iv InputValue) (InputValueWorld, error)
InputValueToWorld resolves an InputValue to a InputValueWorld.
func NewInputValueWorld ¶
func NewInputValueWorld(eng world.Engine, ws world.WorldState) InputValueWorld
NewInputValueWorld constructs a new InputValueWorld with a world handle. eng can be nil
type InputValueWorldObject ¶
type InputValueWorldObject interface {
// InputValue indicates this is an InputValue.
InputValue
// InputValueInline is the latest object state value.
InputValueInline
// InputValueWorld is the value for the world the object was retrieved from.
InputValueWorld
// GetWorldObject returns the world object state handle.
GetWorldObject() world.ObjectState
}
InputValueWorldObject is the interface expected for a InputValue of type WORLD_OBJECT.
func InputValueToWorldObject ¶
func InputValueToWorldObject(iv InputValue) (InputValueWorldObject, error)
InputValueToWorldObject resolves an InputValue to a WorldObject. Returns nil, nil if the value is empty or nil.
func NewInputValueWorldObject ¶
func NewInputValueWorldObject( inline InputValueInline, wrld InputValueWorld, objs world.ObjectState, err error, ) InputValueWorldObject
NewInputValueWorldObject constructs a new InputValueWorldObject with a reference value. eng can be nil if eng != nil and ws == nil, constructs a EngineWorldState for ws
type InputWorld ¶
type InputWorld struct {
// EngineId is the world engine ID to lookup.
EngineId string `protobuf:"bytes,1,opt,name=engine_id,json=engineId,proto3" json:"engineId,omitempty"`
// LookupImmediate indicates the execution controller should lookup and wait
// for the world engine to be ready before starting execution. If false, the
// execution controller will pass a BusEngine handle which will lookup the
// engine lazily (on first request).
LookupImmediate bool `protobuf:"varint,2,opt,name=lookup_immediate,json=lookupImmediate,proto3" json:"lookupImmediate,omitempty"`
// contains filtered or unexported fields
}
InputWorld are args for the world input type. InputType_WORLD
func (*InputWorld) CloneMessageVT ¶
func (m *InputWorld) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*InputWorld) CloneVT ¶
func (m *InputWorld) CloneVT() *InputWorld
func (*InputWorld) EqualMessageVT ¶
func (this *InputWorld) EqualMessageVT(thatMsg any) bool
func (*InputWorld) EqualVT ¶
func (this *InputWorld) EqualVT(that *InputWorld) bool
func (*InputWorld) GetEngineId ¶
func (x *InputWorld) GetEngineId() string
func (*InputWorld) GetLookupImmediate ¶
func (x *InputWorld) GetLookupImmediate() bool
func (*InputWorld) MarshalJSON ¶
func (x *InputWorld) MarshalJSON() ([]byte, error)
MarshalJSON marshals the InputWorld to JSON.
func (*InputWorld) MarshalProtoJSON ¶
func (x *InputWorld) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the InputWorld message to JSON.
func (*InputWorld) MarshalProtoText ¶
func (x *InputWorld) MarshalProtoText() string
func (*InputWorld) MarshalToSizedBufferVT ¶
func (m *InputWorld) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*InputWorld) MarshalToVT ¶
func (m *InputWorld) MarshalToVT(dAtA []byte) (int, error)
func (*InputWorld) MarshalVT ¶
func (m *InputWorld) MarshalVT() (dAtA []byte, err error)
func (*InputWorld) ProtoMessage ¶
func (*InputWorld) ProtoMessage()
func (*InputWorld) Reset ¶
func (x *InputWorld) Reset()
func (*InputWorld) ResolveValue ¶
func (i *InputWorld) ResolveValue(ctx context.Context, b bus.Bus) (InputValueWorld, func(), error)
ResolveValue resolves the InputWorld to a InputValueWorld.
if lookupImmediate is set, looks up the world engine immediately otherwise, uses a BusEngine to look up the world engine on-demand.
func (*InputWorld) SizeVT ¶
func (m *InputWorld) SizeVT() (n int)
func (*InputWorld) String ¶
func (x *InputWorld) String() string
func (*InputWorld) UnmarshalJSON ¶
func (x *InputWorld) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the InputWorld from JSON.
func (*InputWorld) UnmarshalProtoJSON ¶
func (x *InputWorld) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the InputWorld message from JSON.
func (*InputWorld) UnmarshalVT ¶
func (m *InputWorld) UnmarshalVT(dAtA []byte) error
func (*InputWorld) Validate ¶
func (i *InputWorld) Validate() error
Validate validates the input world object.
type InputWorldObject ¶
type InputWorldObject struct {
// World is the name of the world input to lookup on.
// If unset, defaults to the Forge Job world.
World string `protobuf:"bytes,1,opt,name=world,proto3" json:"world,omitempty"`
// ObjectKey is the object key to lookup.
ObjectKey string `protobuf:"bytes,2,opt,name=object_key,json=objectKey,proto3" json:"objectKey,omitempty"`
// ObjectRev is the minimum object rev to wait for.
// If set, waits for the object to exist.
// If object_rev == 0, does not wait for the object to exist.
ObjectRev uint64 `protobuf:"varint,3,opt,name=object_rev,json=objectRev,proto3" json:"objectRev,omitempty"`
// contains filtered or unexported fields
}
InputWorldObject are args for the world object input type. InputType_WORLD_OBJECT
func (*InputWorldObject) CloneMessageVT ¶
func (m *InputWorldObject) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*InputWorldObject) CloneVT ¶
func (m *InputWorldObject) CloneVT() *InputWorldObject
func (*InputWorldObject) EqualMessageVT ¶
func (this *InputWorldObject) EqualMessageVT(thatMsg any) bool
func (*InputWorldObject) EqualVT ¶
func (this *InputWorldObject) EqualVT(that *InputWorldObject) bool
func (*InputWorldObject) GetObjectKey ¶
func (x *InputWorldObject) GetObjectKey() string
func (*InputWorldObject) GetObjectRev ¶
func (x *InputWorldObject) GetObjectRev() uint64
func (*InputWorldObject) GetWorld ¶
func (x *InputWorldObject) GetWorld() string
func (*InputWorldObject) MarshalJSON ¶
func (x *InputWorldObject) MarshalJSON() ([]byte, error)
MarshalJSON marshals the InputWorldObject to JSON.
func (*InputWorldObject) MarshalProtoJSON ¶
func (x *InputWorldObject) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the InputWorldObject message to JSON.
func (*InputWorldObject) MarshalProtoText ¶
func (x *InputWorldObject) MarshalProtoText() string
func (*InputWorldObject) MarshalToSizedBufferVT ¶
func (m *InputWorldObject) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*InputWorldObject) MarshalToVT ¶
func (m *InputWorldObject) MarshalToVT(dAtA []byte) (int, error)
func (*InputWorldObject) MarshalVT ¶
func (m *InputWorldObject) MarshalVT() (dAtA []byte, err error)
func (*InputWorldObject) ProtoMessage ¶
func (*InputWorldObject) ProtoMessage()
func (*InputWorldObject) Reset ¶
func (x *InputWorldObject) Reset()
func (*InputWorldObject) ResolveValue ¶
func (i *InputWorldObject) ResolveValue( ctx context.Context, b bus.Bus, inpName string, inpWorld InputValueWorld, ) (InputValueWorldObject, func(), error)
ResolveValue resolves the InputWorldObject to a InputValueWorldObject.
note: if object_rev < input.object_rev, returns nil, nil, nil inpWorld and inpPrevValue can be nil may return nil, nil, nil if no value
func (*InputWorldObject) SizeVT ¶
func (m *InputWorldObject) SizeVT() (n int)
func (*InputWorldObject) String ¶
func (x *InputWorldObject) String() string
func (*InputWorldObject) UnmarshalJSON ¶
func (x *InputWorldObject) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the InputWorldObject from JSON.
func (*InputWorldObject) UnmarshalProtoJSON ¶
func (x *InputWorldObject) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the InputWorldObject message from JSON.
func (*InputWorldObject) UnmarshalVT ¶
func (m *InputWorldObject) UnmarshalVT(dAtA []byte) error
func (*InputWorldObject) Validate ¶
func (i *InputWorldObject) Validate() error
Validate validates the input world object.
type Output ¶
type Output struct {
// Name is the unique name of the output.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// OutputType is the type of output.
OutputType OutputType `protobuf:"varint,2,opt,name=output_type,json=outputType,proto3" json:"outputType,omitempty"`
// ExecOutput is the name of the exec output to mount.
// OutputType_EXEC
ExecOutput string `protobuf:"bytes,3,opt,name=exec_output,json=execOutput,proto3" json:"execOutput,omitempty"`
// Value is an in-line output value.
// OutputType_VALUE
Value *value.Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
// contains filtered or unexported fields
}
Output contains configuration of a target task output. This specifies where to get the Output value from.
func NewOutputWithValue ¶
func NewOutputWithValue(name string, val *forge_value.Value) *Output
NewOutputWithValue constructs a new Output with an in-line value.
func (*Output) CloneMessageVT ¶
func (m *Output) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Output) EqualMessageVT ¶
func (*Output) GetExecOutput ¶
func (*Output) GetOutputType ¶
func (x *Output) GetOutputType() OutputType
func (*Output) MarshalJSON ¶
MarshalJSON marshals the Output to JSON.
func (*Output) MarshalProtoJSON ¶
func (x *Output) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Output message to JSON.
func (*Output) MarshalProtoText ¶
func (*Output) MarshalToSizedBufferVT ¶
func (*Output) ProtoMessage ¶
func (*Output) ProtoMessage()
func (*Output) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Output from JSON.
func (*Output) UnmarshalProtoJSON ¶
func (x *Output) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Output message from JSON.
func (*Output) UnmarshalVT ¶
type OutputType ¶
type OutputType int32
OutputType is the list of possible output types.
const ( // OutputType_UNKNOWN is the zero output type. OutputType_OutputType_UNKNOWN OutputType = 0 // OutputType_EXEC is an output value mounted from an exec instance. OutputType_OutputType_EXEC OutputType = 1 // OutputType_VALUE is an in-line output value (specified in the target). OutputType_OutputType_VALUE OutputType = 2 )
func (OutputType) Enum ¶
func (x OutputType) Enum() *OutputType
func (OutputType) MarshalJSON ¶
func (x OutputType) MarshalJSON() ([]byte, error)
MarshalJSON marshals the OutputType to JSON.
func (OutputType) MarshalProtoJSON ¶
func (x OutputType) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the OutputType to JSON.
func (OutputType) MarshalProtoText ¶
func (x OutputType) MarshalProtoText() string
func (OutputType) MarshalText ¶
func (x OutputType) MarshalText() ([]byte, error)
MarshalText marshals the OutputType to text.
func (OutputType) String ¶
func (x OutputType) String() string
func (*OutputType) UnmarshalJSON ¶
func (x *OutputType) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the OutputType from JSON.
func (*OutputType) UnmarshalProtoJSON ¶
func (x *OutputType) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the OutputType from JSON.
func (*OutputType) UnmarshalText ¶
func (x *OutputType) UnmarshalText(b []byte) error
UnmarshalText unmarshals the OutputType from text.
func (OutputType) Validate ¶
func (t OutputType) Validate(allowUnknown bool) error
Validate validates the output type.
type Target ¶
type Target struct {
// Inputs is the mapping of inputs.
// Not necessarily sorted or unique, later values override earlier.
Inputs []*Input `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
// Outputs is the mapping of outputs.
// Not necessarily sorted or unique, later values override earlier.
Outputs []*Output `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"`
// Exec is the execution pass configuration.
Exec *Exec `protobuf:"bytes,3,opt,name=exec,proto3" json:"exec,omitempty"`
// contains filtered or unexported fields
}
Target contains a desired Task target configuration.
func LookupTarget ¶
LookupTarget looks up a Target in the world.
func UnmarshalTarget ¶
UnmarshalTarget unmarshals an target block from the cursor.
func (*Target) ApplySubBlock ¶
ApplySubBlock applies a sub-block change with a field id.
func (*Target) CloneMessageVT ¶
func (m *Target) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Target) EqualMessageVT ¶
func (*Target) GetOutputs ¶
func (*Target) GetSubBlockCtor ¶
func (t *Target) GetSubBlockCtor(id uint32) block.SubBlockCtor
GetSubBlockCtor returns a function which creates or returns the existing sub-block at reference id. Can return nil to indicate invalid reference id.
func (*Target) GetSubBlocks ¶
GetSubBlocks returns all constructed sub-blocks by ID. May return nil, and values may also be nil.
func (*Target) MarshalBlock ¶
MarshalBlock marshals the block to binary. This is the initial step of marshaling, before transformations.
func (*Target) MarshalJSON ¶
MarshalJSON marshals the Target to JSON.
func (*Target) MarshalProtoJSON ¶
func (x *Target) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Target message to JSON.
func (*Target) MarshalProtoText ¶
func (*Target) MarshalToSizedBufferVT ¶
func (*Target) ProtoMessage ¶
func (*Target) ProtoMessage()
func (*Target) UnmarshalBlock ¶
UnmarshalBlock unmarshals the block to the object. This is the final step of decoding, after transformations.
func (*Target) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Target from JSON.
func (*Target) UnmarshalProtoJSON ¶
func (x *Target) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Target message from JSON.
func (*Target) UnmarshalVT ¶
type ValueSet ¶
type ValueSet struct {
// Inputs is the set of inputs.
// Unique by the "name" field.
// Sorted by name.
Inputs []*value.Value `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
// Outputs is the set of outputs.
// Unique by the "name" field.
// Sorted by name.
Outputs []*value.Value `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"`
// contains filtered or unexported fields
}
ValueSet is the set of values satisfying inputs/outputs of a target.
func (*ValueSet) ApplySubBlock ¶
ApplySubBlock applies a sub-block change with a field id.
func (*ValueSet) CloneMessageVT ¶
func (m *ValueSet) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*ValueSet) EqualMessageVT ¶
func (*ValueSet) GetOutputs ¶
func (*ValueSet) GetSubBlockCtor ¶
func (v *ValueSet) GetSubBlockCtor(id uint32) block.SubBlockCtor
GetSubBlockCtor returns a function which creates or returns the existing sub-block at reference id. Can return nil to indicate invalid reference id.
func (*ValueSet) GetSubBlocks ¶
GetSubBlocks returns all constructed sub-blocks by ID. May return nil, and values may also be nil.
func (*ValueSet) LookupInput ¶
func (v *ValueSet) LookupInput(name string) (*forge_value.Value, int)
LookupInput looks up the input with the given name in the list. returns nil, -1 if not found.
func (*ValueSet) LookupOutput ¶
func (v *ValueSet) LookupOutput(name string) (*forge_value.Value, int)
LookupOutput looks up the output with the given name in the list. returns nil, -1 if not found.
func (*ValueSet) MarshalBlock ¶
MarshalBlock marshals the block to binary. This is the initial step of marshaling, before transformations.
func (*ValueSet) MarshalJSON ¶
MarshalJSON marshals the ValueSet to JSON.
func (*ValueSet) MarshalProtoJSON ¶
func (x *ValueSet) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the ValueSet message to JSON.
func (*ValueSet) MarshalProtoText ¶
func (*ValueSet) MarshalToSizedBufferVT ¶
func (*ValueSet) ProtoMessage ¶
func (*ValueSet) ProtoMessage()
func (*ValueSet) SortValues ¶
func (v *ValueSet) SortValues()
SortValues sorts the inputs and outputs fields.
func (*ValueSet) UnmarshalBlock ¶
UnmarshalBlock unmarshals the block to the object. This is the final step of decoding, after transformations.
func (*ValueSet) UnmarshalJSON ¶
UnmarshalJSON unmarshals the ValueSet from JSON.
func (*ValueSet) UnmarshalProtoJSON ¶
func (x *ValueSet) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the ValueSet message from JSON.
func (*ValueSet) UnmarshalVT ¶
Source Files
¶
- block-exec.go
- block-input.go
- block-inputset.go
- block-output.go
- block-outputset.go
- block-valueset.go
- errors.go
- exec-controller-access.go
- exec-controller.go
- input-map.go
- input-resolve.go
- input-type.go
- input-value-inline.go
- input-value-world-obj.go
- input-value-world.go
- input-value.go
- input-world-object.go
- input-world.go
- input.go
- output-type.go
- outputs.go
- target.go
- target.pb.go
- value.go
- world-util.go