|
|
|
@@ -20,24 +20,28 @@ type NodeEnv struct { |
|
|
|
Pinned bool // 如果为true,则不应该改变这个节点的执行环境 |
|
|
|
} |
|
|
|
|
|
|
|
func (e *NodeEnv) ToEnvUnknown() { |
|
|
|
func (e *NodeEnv) ToEnvUnknown(pinned bool) { |
|
|
|
e.Type = EnvUnknown |
|
|
|
e.Worker = nil |
|
|
|
e.Pinned = pinned |
|
|
|
} |
|
|
|
|
|
|
|
func (e *NodeEnv) ToEnvDriver() { |
|
|
|
func (e *NodeEnv) ToEnvDriver(pinned bool) { |
|
|
|
e.Type = EnvDriver |
|
|
|
e.Worker = nil |
|
|
|
e.Pinned = pinned |
|
|
|
} |
|
|
|
|
|
|
|
func (e *NodeEnv) ToEnvWorker(worker exec.WorkerInfo) { |
|
|
|
func (e *NodeEnv) ToEnvWorker(worker exec.WorkerInfo, pinned bool) { |
|
|
|
e.Type = EnvWorker |
|
|
|
e.Worker = worker |
|
|
|
e.Pinned = pinned |
|
|
|
} |
|
|
|
|
|
|
|
func (e *NodeEnv) CopyFrom(other *NodeEnv) { |
|
|
|
e.Type = other.Type |
|
|
|
e.Worker = other.Worker |
|
|
|
e.Pinned = other.Pinned |
|
|
|
} |
|
|
|
|
|
|
|
func (e *NodeEnv) Equals(other *NodeEnv) bool { |
|
|
|
@@ -461,6 +465,16 @@ func (s StreamOutputSlot) ToSlot(slot StreamInputSlot) { |
|
|
|
s.Var().To(slot.Node, slot.Index) |
|
|
|
} |
|
|
|
|
|
|
|
// 查询所有输出的连接的输入槽位 |
|
|
|
func (s StreamOutputSlot) ListDstSlots() []StreamInputSlot { |
|
|
|
slots := make([]StreamInputSlot, s.Var().Dst.Len()) |
|
|
|
myVar := s.Var() |
|
|
|
for i, dst := range s.Var().Dst { |
|
|
|
slots[i] = StreamInputSlot{Node: dst, Index: dst.InputStreams().IndexOf(myVar)} |
|
|
|
} |
|
|
|
return slots |
|
|
|
} |
|
|
|
|
|
|
|
type StreamInputSlot struct { |
|
|
|
Node Node |
|
|
|
Index int |
|
|
|
@@ -483,6 +497,16 @@ func (s ValueOutputSlot) ToSlot(slot ValueInputSlot) { |
|
|
|
s.Var().To(slot.Node, slot.Index) |
|
|
|
} |
|
|
|
|
|
|
|
// 查询所有输出的连接的输入槽位 |
|
|
|
func (s ValueOutputSlot) ListDstSlots() []ValueInputSlot { |
|
|
|
slots := make([]ValueInputSlot, s.Var().Dst.Len()) |
|
|
|
myVar := s.Var() |
|
|
|
for i, dst := range s.Var().Dst { |
|
|
|
slots[i] = ValueInputSlot{Node: dst, Index: dst.InputValues().IndexOf(myVar)} |
|
|
|
} |
|
|
|
return slots |
|
|
|
} |
|
|
|
|
|
|
|
type ValueInputSlot struct { |
|
|
|
Node Node |
|
|
|
Index int |
|
|
|
|