mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-02 23:15:36 +02:00
multi: remove the need for the graphsession package
In this commit, we add a `GraphSession` method to the `ChannelGraph`. This method provides a caller with access to a `NodeTraverser`. This is used by pathfinding to create a graph "session" overwhich to perform a set of queries for a pathfinding attempt. With this refactor, we hide details such as DB transaction creation and transaction commits from the caller. So with this, pathfinding does not need to remember to "close the graph session". With this commit, the `graphsession` package may be completely removed.
This commit is contained in:
@@ -21,16 +21,15 @@ type Graph interface {
|
||||
FetchNodeFeatures(nodePub route.Vertex) (*lnwire.FeatureVector, error)
|
||||
}
|
||||
|
||||
// GraphSessionFactory can be used to produce a new Graph instance which can
|
||||
// then be used for a path-finding session. Depending on the implementation,
|
||||
// the Graph session will represent a DB connection where a read-lock is being
|
||||
// held across calls to the backing Graph.
|
||||
// GraphSessionFactory can be used to gain access to a graphdb.NodeTraverser
|
||||
// instance which can then be used for a path-finding session. Depending on the
|
||||
// implementation, the session will represent a DB connection where a read-lock
|
||||
// is being held across calls to the backing graph.
|
||||
type GraphSessionFactory interface {
|
||||
// NewGraphSession will produce a new Graph to use for a path-finding
|
||||
// session. It returns the Graph along with a call-back that must be
|
||||
// called once Graph access is complete. This call-back will close any
|
||||
// read-only transaction that was created at Graph construction time.
|
||||
NewGraphSession() (Graph, func() error, error)
|
||||
// GraphSession will provide the call-back with access to a
|
||||
// graphdb.NodeTraverser instance which can be used to perform queries
|
||||
// against the channel graph.
|
||||
GraphSession(cb func(graph graphdb.NodeTraverser) error) error
|
||||
}
|
||||
|
||||
// FetchAmountPairCapacity determines the maximal public capacity between two
|
||||
|
Reference in New Issue
Block a user