@cryptotaxi247 / kubo / commits / 838aeb9b8

coreapi unixfs: docs for getSession, use api.dag

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Oct 23, 2018 at 01:13 UTC 838aeb9b898149f8e464d951b67a487fcab5c065
6 files changed +23 -20
core/coreapi/coreapi.go
+9
@@ -14,9 +14,12 @@ Interfaces here aren't yet completely stable.
14 package coreapi
15
16 import (
17 + "context"
18 +
19 core "github.com/ipfs/go-ipfs/core"
20 coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
21
22 + dag "gx/ipfs/QmVvNkTCx8V9Zei8xuTYTBdUXmbnDRS4iNuw1SztYyhQwQ/go-merkledag"
23 logging "gx/ipfs/QmZChCsSt8DctjceaL56Eibc29CVQq4dGKRXC5JRZ6Ppae/go-log"
24 ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
25 )
@@ -83,3 +86,9 @@ func (api *CoreAPI) Swarm() coreiface.SwarmAPI {
86 func (api *CoreAPI) PubSub() coreiface.PubSubAPI {
87 return (*PubSubAPI)(api)
88 }
89 +
90 +// getSession returns new api backed by the same node with a read-only session DAG
91 +func (api *CoreAPI) getSession(ctx context.Context) *CoreAPI {
92 + ng := dag.NewReadOnlyDagService(dag.NewSession(ctx, api.dag))
93 + return &CoreAPI{api.node, ng}
94 +}
\ No newline at end of file
core/coreapi/dag.go
+2 -2
@@ -31,7 +31,7 @@ type dagBatch struct {
31 func (api *DagAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.DagPutOption) (coreiface.ResolvedPath, error) {
32 nd, err := getNode(src, opts...)
33
34 - err = api.node.DAG.Add(ctx, nd)
34 + err = api.dag.Add(ctx, nd)
35 if err != nil {
36 return nil, err
37 }
@@ -96,7 +96,7 @@ func (b *dagBatch) Commit(ctx context.Context) error {
96 b.toPut = nil
97 }()
98
99 - return b.api.node.DAG.AddMany(ctx, b.toPut)
99 + return b.api.dag.AddMany(ctx, b.toPut)
100 }
101
102 func getNode(src io.Reader, opts ...caopts.DagPutOption) (ipld.Node, error) {
core/coreapi/object.go
+8 -8
@@ -50,7 +50,7 @@ func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (
50 n = ft.EmptyDirNode()
51 }
52
53 - err = api.node.DAG.Add(ctx, n)
53 + err = api.dag.Add(ctx, n)
54 if err != nil {
55 return nil, err
56 }
@@ -121,7 +121,7 @@ func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Obj
121 defer api.node.Blockstore.PinLock().Unlock()
122 }
123
124 - err = api.node.DAG.Add(ctx, dagnode)
124 + err = api.dag.Add(ctx, dagnode)
125 if err != nil {
126 return nil, err
127 }
@@ -219,14 +219,14 @@ func (api *ObjectAPI) AddLink(ctx context.Context, base coreiface.Path, name str
219 createfunc = ft.EmptyDirNode
220 }
221
222 - e := dagutils.NewDagEditor(basePb, api.node.DAG)
222 + e := dagutils.NewDagEditor(basePb, api.dag)
223
224 err = e.InsertNodeAtPath(ctx, name, childNd, createfunc)
225 if err != nil {
226 return nil, err
227 }
228
229 - nnode, err := e.Finalize(ctx, api.node.DAG)
229 + nnode, err := e.Finalize(ctx, api.dag)
230 if err != nil {
231 return nil, err
232 }
@@ -245,14 +245,14 @@ func (api *ObjectAPI) RmLink(ctx context.Context, base coreiface.Path, link stri
245 return nil, dag.ErrNotProtobuf
246 }
247
248 - e := dagutils.NewDagEditor(basePb, api.node.DAG)
248 + e := dagutils.NewDagEditor(basePb, api.dag)
249
250 err = e.RmLink(ctx, link)
251 if err != nil {
252 return nil, err
253 }
254
255 - nnode, err := e.Finalize(ctx, api.node.DAG)
255 + nnode, err := e.Finalize(ctx, api.dag)
256 if err != nil {
257 return nil, err
258 }
@@ -289,7 +289,7 @@ func (api *ObjectAPI) patchData(ctx context.Context, path coreiface.Path, r io.R
289 }
290 pbnd.SetData(data)
291
292 - err = api.node.DAG.Add(ctx, pbnd)
292 + err = api.dag.Add(ctx, pbnd)
293 if err != nil {
294 return nil, err
295 }
@@ -308,7 +308,7 @@ func (api *ObjectAPI) Diff(ctx context.Context, before coreiface.Path, after cor
308 return nil, err
309 }
310
311 - changes, err := dagutils.Diff(ctx, api.node.DAG, beforeNd, afterNd)
311 + changes, err := dagutils.Diff(ctx, api.dag, beforeNd, afterNd)
312 if err != nil {
313 return nil, err
314 }
core/coreapi/path.go
+2 -8
@@ -9,7 +9,6 @@ import (
9 coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
10
11 "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
12 - dag "gx/ipfs/QmVvNkTCx8V9Zei8xuTYTBdUXmbnDRS4iNuw1SztYyhQwQ/go-merkledag"
12 uio "gx/ipfs/QmWE6Ftsk98cG2MTVgH4wJT8VP2nL9TuBkYTrz9GSqcsh5/go-unixfs/io"
13 ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
14 ipfspath "gx/ipfs/QmdrpbDgeYH3VxkCciQCJY5LkDYdXtig6unDzQmMxFtWEw/go-path"
@@ -24,7 +23,7 @@ func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (ipld.Nod
23 return nil, err
24 }
25
27 - node, err := api.node.DAG.Get(ctx, rp.Cid())
26 + node, err := api.dag.Get(ctx, rp.Cid())
27 if err != nil {
28 return nil, err
29 }
@@ -58,7 +57,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac
57 }
58
59 r := &resolver.Resolver{
61 - DAG: api.node.DAG,
60 + DAG: api.dag,
61 ResolveOnce: resolveOnce,
62 }
63
@@ -74,8 +73,3 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p coreiface.Path) (coreifac
73
74 return coreiface.NewResolvedPath(ipath, node, root, gopath.Join(rest...)), nil
75 }
77 -
78 -func (api *CoreAPI) getSession(ctx context.Context) *CoreAPI {
79 - ng := dag.NewReadOnlyDagService(dag.NewSession(ctx, api.dag))
80 - return &CoreAPI{api.node, ng}
81 -}
core/coreapi/pin.go
+1 -1
@@ -193,7 +193,7 @@ func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pi
193 if typeStr == "indirect" || typeStr == "all" {
194 set := cid.NewSet()
195 for _, k := range api.node.Pinning.RecursiveKeys() {
196 - err := merkledag.EnumerateChildren(ctx, merkledag.GetLinksWithDAG(api.node.DAG), k, set.Visit)
196 + err := merkledag.EnumerateChildren(ctx, merkledag.GetLinksWithDAG(api.dag), k, set.Visit)
197 if err != nil {
198 return nil, err
199 }
core/coreapi/unixfs.go
+1 -1
@@ -153,7 +153,7 @@ func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*ipld.Link, e
153 }
154
155 var ndlinks []*ipld.Link
156 - dir, err := uio.NewDirectoryFromNode(api.node.DAG, dagnode)
156 + dir, err := uio.NewDirectoryFromNode(api.dag, dagnode)
157 switch err {
158 case nil:
159 l, err := dir.Links(ctx)