mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-02 14:58:03 +08:00
Merge pull request ipfs/boxoipfs/interface-go-ipfs-core#5340 from ipfs/feat/coreapi/dagbatch
coreapi: dag: Batching interface This commit was moved from ipfs/interface-go-ipfs-core@896fb83bc4 This commit was moved from ipfs/boxo@84d04f8daf
This commit is contained in:
commit
bbaa3a534c
@ -4,21 +4,38 @@ import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
options "github.com/ipfs/go-ipfs/core/coreapi/interface/options"
|
||||
"github.com/ipfs/go-ipfs/core/coreapi/interface/options"
|
||||
|
||||
ipld "gx/ipfs/QmZtNq8dArGfnpCZfx2pUNY7UcjGhVp5qqwQ4hH6mpTMRQ/go-ipld-format"
|
||||
)
|
||||
|
||||
// DagAPI specifies the interface to IPLD
|
||||
type DagAPI interface {
|
||||
// DagOps groups operations that can be batched together
|
||||
type DagOps interface {
|
||||
// Put inserts data using specified format and input encoding.
|
||||
// Unless used with WithCodec or WithHash, the defaults "dag-cbor" and
|
||||
// "sha256" are used.
|
||||
Put(ctx context.Context, src io.Reader, opts ...options.DagPutOption) (ResolvedPath, error)
|
||||
}
|
||||
|
||||
// DagBatch is the batching version of DagAPI. All implementations of DagBatch
|
||||
// should be threadsafe
|
||||
type DagBatch interface {
|
||||
DagOps
|
||||
|
||||
// Commit commits nodes to the datastore and announces them to the network
|
||||
Commit(ctx context.Context) error
|
||||
}
|
||||
|
||||
// DagAPI specifies the interface to IPLD
|
||||
type DagAPI interface {
|
||||
DagOps
|
||||
|
||||
// Get attempts to resolve and get the node specified by the path
|
||||
Get(ctx context.Context, path Path) (ipld.Node, error)
|
||||
|
||||
// Tree returns list of paths within a node specified by the path.
|
||||
Tree(ctx context.Context, path Path, opts ...options.DagTreeOption) ([]Path, error)
|
||||
|
||||
// Batch creates new DagBatch
|
||||
Batch(ctx context.Context) DagBatch
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user