提交 76a897cc 作者: Łukasz Magiera

wire CoreAPI into request context

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 4bca53e0
......@@ -7,6 +7,8 @@ import (
"time"
"github.com/ipfs/go-ipfs/core"
coreapi "github.com/ipfs/go-ipfs/core/coreapi"
coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
"github.com/ipfs/go-ipfs/repo/config"
"gx/ipfs/QmNueRyPRQiV7PUEpnP4GgGLuK1rKQLaRW7sfPvUetYig1/go-ipfs-cmds"
......@@ -22,6 +24,7 @@ type Context struct {
config *config.Config
LoadConfig func(path string) (*config.Config, error)
api coreiface.CoreAPI
node *core.IpfsNode
ConstructNode func() (*core.IpfsNode, error)
}
......@@ -52,6 +55,25 @@ func (c *Context) GetNode() (*core.IpfsNode, error) {
return c.node, err
}
// GetApi returns CoreAPI instance backed by ipfs node.
// It may construct the node with the provided function
func (c *Context) GetApi() (coreiface.CoreAPI, error) {
if c.api == nil {
n, err := c.GetNode()
if err != nil {
return nil, err
}
c.api = coreapi.NewCoreAPI(n)
}
return c.api, nil
}
// NodeWithoutConstructing returns the underlying node variable
// so that clients may close it.
func (c *Context) NodeWithoutConstructing() *core.IpfsNode {
return c.node
}
// Context returns the node's context.
func (c *Context) Context() context.Context {
n, err := c.GetNode()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论