提交 838aeb9b 作者: Łukasz Magiera

coreapi unixfs: docs for getSession, use api.dag

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 a4cb0602
...@@ -14,9 +14,12 @@ Interfaces here aren't yet completely stable. ...@@ -14,9 +14,12 @@ Interfaces here aren't yet completely stable.
package coreapi package coreapi
import ( import (
"context"
core "github.com/ipfs/go-ipfs/core" core "github.com/ipfs/go-ipfs/core"
coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface" coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
dag "gx/ipfs/QmVvNkTCx8V9Zei8xuTYTBdUXmbnDRS4iNuw1SztYyhQwQ/go-merkledag"
logging "gx/ipfs/QmZChCsSt8DctjceaL56Eibc29CVQq4dGKRXC5JRZ6Ppae/go-log" logging "gx/ipfs/QmZChCsSt8DctjceaL56Eibc29CVQq4dGKRXC5JRZ6Ppae/go-log"
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format" ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
) )
...@@ -83,3 +86,9 @@ func (api *CoreAPI) Swarm() coreiface.SwarmAPI { ...@@ -83,3 +86,9 @@ func (api *CoreAPI) Swarm() coreiface.SwarmAPI {
func (api *CoreAPI) PubSub() coreiface.PubSubAPI { func (api *CoreAPI) PubSub() coreiface.PubSubAPI {
return (*PubSubAPI)(api) return (*PubSubAPI)(api)
} }
// getSession returns new api backed by the same node with a read-only session DAG
func (api *CoreAPI) getSession(ctx context.Context) *CoreAPI {
ng := dag.NewReadOnlyDagService(dag.NewSession(ctx, api.dag))
return &CoreAPI{api.node, ng}
}
\ No newline at end of file
...@@ -31,7 +31,7 @@ type dagBatch struct { ...@@ -31,7 +31,7 @@ type dagBatch struct {
func (api *DagAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.DagPutOption) (coreiface.ResolvedPath, error) { func (api *DagAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.DagPutOption) (coreiface.ResolvedPath, error) {
nd, err := getNode(src, opts...) nd, err := getNode(src, opts...)
err = api.node.DAG.Add(ctx, nd) err = api.dag.Add(ctx, nd)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -96,7 +96,7 @@ func (b *dagBatch) Commit(ctx context.Context) error { ...@@ -96,7 +96,7 @@ func (b *dagBatch) Commit(ctx context.Context) error {
b.toPut = nil b.toPut = nil
}() }()
return b.api.node.DAG.AddMany(ctx, b.toPut) return b.api.dag.AddMany(ctx, b.toPut)
} }
func getNode(src io.Reader, opts ...caopts.DagPutOption) (ipld.Node, error) { func getNode(src io.Reader, opts ...caopts.DagPutOption) (ipld.Node, error) {
......
...@@ -50,7 +50,7 @@ func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) ( ...@@ -50,7 +50,7 @@ func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (
n = ft.EmptyDirNode() n = ft.EmptyDirNode()
} }
err = api.node.DAG.Add(ctx, n) err = api.dag.Add(ctx, n)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -121,7 +121,7 @@ func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Obj ...@@ -121,7 +121,7 @@ func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Obj
defer api.node.Blockstore.PinLock().Unlock() defer api.node.Blockstore.PinLock().Unlock()
} }
err = api.node.DAG.Add(ctx, dagnode) err = api.dag.Add(ctx, dagnode)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -219,14 +219,14 @@ func (api *ObjectAPI) AddLink(ctx context.Context, base coreiface.Path, name str ...@@ -219,14 +219,14 @@ func (api *ObjectAPI) AddLink(ctx context.Context, base coreiface.Path, name str
createfunc = ft.EmptyDirNode createfunc = ft.EmptyDirNode
} }
e := dagutils.NewDagEditor(basePb, api.node.DAG) e := dagutils.NewDagEditor(basePb, api.dag)
err = e.InsertNodeAtPath(ctx, name, childNd, createfunc) err = e.InsertNodeAtPath(ctx, name, childNd, createfunc)
if err != nil { if err != nil {
return nil, err return nil, err
} }
nnode, err := e.Finalize(ctx, api.node.DAG) nnode, err := e.Finalize(ctx, api.dag)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -245,14 +245,14 @@ func (api *ObjectAPI) RmLink(ctx context.Context, base coreiface.Path, link stri ...@@ -245,14 +245,14 @@ func (api *ObjectAPI) RmLink(ctx context.Context, base coreiface.Path, link stri
return nil, dag.ErrNotProtobuf return nil, dag.ErrNotProtobuf
} }
e := dagutils.NewDagEditor(basePb, api.node.DAG) e := dagutils.NewDagEditor(basePb, api.dag)
err = e.RmLink(ctx, link) err = e.RmLink(ctx, link)
if err != nil { if err != nil {
return nil, err return nil, err
} }
nnode, err := e.Finalize(ctx, api.node.DAG) nnode, err := e.Finalize(ctx, api.dag)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -289,7 +289,7 @@ func (api *ObjectAPI) patchData(ctx context.Context, path coreiface.Path, r io.R ...@@ -289,7 +289,7 @@ func (api *ObjectAPI) patchData(ctx context.Context, path coreiface.Path, r io.R
} }
pbnd.SetData(data) pbnd.SetData(data)
err = api.node.DAG.Add(ctx, pbnd) err = api.dag.Add(ctx, pbnd)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -308,7 +308,7 @@ func (api *ObjectAPI) Diff(ctx context.Context, before coreiface.Path, after cor ...@@ -308,7 +308,7 @@ func (api *ObjectAPI) Diff(ctx context.Context, before coreiface.Path, after cor
return nil, err return nil, err
} }
changes, err := dagutils.Diff(ctx, api.node.DAG, beforeNd, afterNd) changes, err := dagutils.Diff(ctx, api.dag, beforeNd, afterNd)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -9,7 +9,6 @@ import ( ...@@ -9,7 +9,6 @@ import (
coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface" coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
"gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid" "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
dag "gx/ipfs/QmVvNkTCx8V9Zei8xuTYTBdUXmbnDRS4iNuw1SztYyhQwQ/go-merkledag"
uio "gx/ipfs/QmWE6Ftsk98cG2MTVgH4wJT8VP2nL9TuBkYTrz9GSqcsh5/go-unixfs/io" uio "gx/ipfs/QmWE6Ftsk98cG2MTVgH4wJT8VP2nL9TuBkYTrz9GSqcsh5/go-unixfs/io"
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format" ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
ipfspath "gx/ipfs/QmdrpbDgeYH3VxkCciQCJY5LkDYdXtig6unDzQmMxFtWEw/go-path" ipfspath "gx/ipfs/QmdrpbDgeYH3VxkCciQCJY5LkDYdXtig6unDzQmMxFtWEw/go-path"
...@@ -24,7 +23,7 @@ func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (ipld.Nod ...@@ -24,7 +23,7 @@ func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (ipld.Nod
return nil, err return nil, err
} }
node, err := api.node.DAG.Get(ctx, rp.Cid()) node, err := api.dag.Get(ctx, rp.Cid())
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -58,7 +57,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac ...@@ -58,7 +57,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac
} }
r := &resolver.Resolver{ r := &resolver.Resolver{
DAG: api.node.DAG, DAG: api.dag,
ResolveOnce: resolveOnce, ResolveOnce: resolveOnce,
} }
...@@ -74,8 +73,3 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac ...@@ -74,8 +73,3 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac
return coreiface.NewResolvedPath(ipath, node, root, gopath.Join(rest...)), nil return coreiface.NewResolvedPath(ipath, node, root, gopath.Join(rest...)), nil
} }
func (api *CoreAPI) getSession(ctx context.Context) *CoreAPI {
ng := dag.NewReadOnlyDagService(dag.NewSession(ctx, api.dag))
return &CoreAPI{api.node, ng}
}
...@@ -193,7 +193,7 @@ func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pi ...@@ -193,7 +193,7 @@ func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pi
if typeStr == "indirect" || typeStr == "all" { if typeStr == "indirect" || typeStr == "all" {
set := cid.NewSet() set := cid.NewSet()
for _, k := range api.node.Pinning.RecursiveKeys() { for _, k := range api.node.Pinning.RecursiveKeys() {
err := merkledag.EnumerateChildren(ctx, merkledag.GetLinksWithDAG(api.node.DAG), k, set.Visit) err := merkledag.EnumerateChildren(ctx, merkledag.GetLinksWithDAG(api.dag), k, set.Visit)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -153,7 +153,7 @@ func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*ipld.Link, e ...@@ -153,7 +153,7 @@ func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*ipld.Link, e
} }
var ndlinks []*ipld.Link var ndlinks []*ipld.Link
dir, err := uio.NewDirectoryFromNode(api.node.DAG, dagnode) dir, err := uio.NewDirectoryFromNode(api.dag, dagnode)
switch err { switch err {
case nil: case nil:
l, err := dir.Links(ctx) l, err := dir.Links(ctx)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论