engine: graph: Pass through the graph struct
We want to use it in the resources.
This commit is contained in:
@@ -191,7 +191,7 @@ func (obj *Engine) Commit() error {
|
|||||||
|
|
||||||
obj.waits[vertex] = &sync.WaitGroup{}
|
obj.waits[vertex] = &sync.WaitGroup{}
|
||||||
obj.state[vertex] = &State{
|
obj.state[vertex] = &State{
|
||||||
//Graph: obj.graph, // TODO: what happens if we swap the graph?
|
Graph: obj.graph, // Update if we swap the graph!
|
||||||
Vertex: vertex,
|
Vertex: vertex,
|
||||||
|
|
||||||
Program: obj.Program,
|
Program: obj.Program,
|
||||||
@@ -329,14 +329,14 @@ func (obj *Engine) Commit() error {
|
|||||||
// the changes that we'd made to the previously primary graph. This is
|
// the changes that we'd made to the previously primary graph. This is
|
||||||
// because this function is meant to atomically swap the graphs safely.
|
// because this function is meant to atomically swap the graphs safely.
|
||||||
|
|
||||||
// TODO: update all the `State` structs with the new Graph pointer
|
// Update all the `State` structs with the new Graph pointer.
|
||||||
//for _, vertex := range obj.graph.Vertices() {
|
for _, vertex := range obj.graph.Vertices() {
|
||||||
// state, exists := obj.state[vertex]
|
state, exists := obj.state[vertex]
|
||||||
// if !exists {
|
if !exists {
|
||||||
// continue
|
continue
|
||||||
// }
|
}
|
||||||
// state.Graph = obj.graph // update pointer to graph
|
state.Graph = obj.graph // update pointer to graph
|
||||||
//}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import (
|
|||||||
// State stores some state about the resource it is mapped to.
|
// State stores some state about the resource it is mapped to.
|
||||||
type State struct {
|
type State struct {
|
||||||
// Graph is a pointer to the graph that this vertex is part of.
|
// Graph is a pointer to the graph that this vertex is part of.
|
||||||
//Graph pgraph.Graph
|
Graph *pgraph.Graph
|
||||||
|
|
||||||
// Vertex is the pointer in the graph that this state corresponds to. It
|
// Vertex is the pointer in the graph that this state corresponds to. It
|
||||||
// can be converted to a `Res` if necessary.
|
// can be converted to a `Res` if necessary.
|
||||||
@@ -190,6 +190,16 @@ func (obj *State) Init() error {
|
|||||||
return res.Recv()
|
return res.Recv()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// FIXME: pass in a safe, limited query func instead?
|
||||||
|
// TODO: not implemented, use FilteredGraph
|
||||||
|
//Graph: func() *pgraph.Graph {
|
||||||
|
// _, ok := obj.Vertex.(engine.CanGraphQueryRes)
|
||||||
|
// if !ok {
|
||||||
|
// panic("res does not support the GraphQuery trait")
|
||||||
|
// }
|
||||||
|
// return obj.Graph // we return in a func so it's fresh!
|
||||||
|
//},
|
||||||
|
|
||||||
World: obj.World,
|
World: obj.World,
|
||||||
VarDir: obj.varDir,
|
VarDir: obj.varDir,
|
||||||
|
|
||||||
|
|||||||
@@ -120,6 +120,12 @@ type Init struct {
|
|||||||
|
|
||||||
// Other functionality:
|
// Other functionality:
|
||||||
|
|
||||||
|
// Graph is a function that returns the current graph. The returned
|
||||||
|
// value won't be valid after a graphsync so make sure to call this when
|
||||||
|
// you are about to use it, and discard it right after.
|
||||||
|
// FIXME: it might be better to offer a safer, more limited, GraphQuery?
|
||||||
|
//Graph func() *pgraph.Graph // TODO: not implemented, use FilteredGraph
|
||||||
|
|
||||||
// World provides a connection to the outside world. This is most often
|
// World provides a connection to the outside world. This is most often
|
||||||
// used for communicating with the distributed database.
|
// used for communicating with the distributed database.
|
||||||
World World
|
World World
|
||||||
|
|||||||
Reference in New Issue
Block a user