|
- package ops
-
- import (
- "gitlink.org.cn/cloudream/common/utils/math2"
- "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch/dag"
- "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch/exec"
- )
-
- type FromDriverNode struct {
- dag.NodeBase
- Handle *exec.DriverWriteStream
- }
-
- func (b *GraphNodeBuilder) NewFromDriver(handle *exec.DriverWriteStream) *FromDriverNode {
- node := &FromDriverNode{
- Handle: handle,
- }
- b.AddNode(node)
-
- node.OutputStreams().Init(node, 1)
-
- return node
- }
-
- func (t *FromDriverNode) Output() dag.StreamOutputSlot {
- return dag.StreamOutputSlot{
- Node: t,
- Index: 0,
- }
- }
-
- func (t *FromDriverNode) GenerateOp() (exec.Op, error) {
- t.Handle.ID = t.OutputStreams().Get(0).VarID
- return nil, nil
- }
-
- // func (t *FromDriverType) String() string {
- // return fmt.Sprintf("FromDriver[]%v%v", formatStreamIO(node), formatValueIO(node))
- // }
-
- type ToDriverNode struct {
- dag.NodeBase
- Handle *exec.DriverReadStream
- Range math2.Range
- }
-
- func (b *GraphNodeBuilder) NewToDriver(handle *exec.DriverReadStream) *ToDriverNode {
- node := &ToDriverNode{
- Handle: handle,
- }
- b.AddNode(node)
-
- node.InputStreams().Init(1)
- return node
- }
-
- func (t *ToDriverNode) SetInput(v *dag.StreamVar) {
- v.To(t, 0)
- }
-
- func (t *ToDriverNode) Input() dag.StreamInputSlot {
- return dag.StreamInputSlot{
- Node: t,
- Index: 0,
- }
- }
-
- func (t *ToDriverNode) GenerateOp() (exec.Op, error) {
- t.Handle.ID = t.InputStreams().Get(0).VarID
- return nil, nil
- }
-
- // func (t *ToDriverType) String() string {
- // return fmt.Sprintf("ToDriver[%v+%v]%v%v", t.Range.Offset, t.Range.Length, formatStreamIO(node), formatValueIO(node))
- // }
|