Documentation
¶
Index ¶
- Variables
- type DagBuilderHelper
- func (db *DagBuilderHelper) Add(node *UnixfsNode) (*dag.Node, error)
- func (db *DagBuilderHelper) Close() error
- func (db *DagBuilderHelper) Done() bool
- func (db *DagBuilderHelper) FillNodeLayer(node *UnixfsNode) error
- func (db *DagBuilderHelper) FillNodeWithData(node *UnixfsNode) error
- func (db *DagBuilderHelper) GetDagServ() dag.DAGService
- func (db *DagBuilderHelper) Maxlinks() int
- func (db *DagBuilderHelper) Next() []byte
- type DagBuilderParams
- type UnixfsNode
- func (n *UnixfsNode) AddChild(child *UnixfsNode, db *DagBuilderHelper) error
- func (n *UnixfsNode) GetChild(ctx context.Context, i int, ds dag.DAGService) (*UnixfsNode, error)
- func (n *UnixfsNode) GetDagNode() (*dag.Node, error)
- func (n *UnixfsNode) NumChildren() int
- func (n *UnixfsNode) RemoveChild(index int, dbh *DagBuilderHelper)
- func (n *UnixfsNode) SetData(data []byte)
Constants ¶
This section is empty.
Variables ¶
var BlockSizeLimit = 1048576 // 1 MB
BlockSizeLimit specifies the maximum size an imported block can have.
var DefaultLinksPerBlock = (roughLinkBlockSize / roughLinkSize)
DefaultLinksPerBlock governs how the importer decides how many links there will be per block. This calculation is based on expected distributions of:
- the expected distribution of block sizes
- the expected distribution of link sizes
- desired access speed
For now, we use:
var roughLinkBlockSize = 1 << 13 // 8KB
var roughLinkSize = 288 // sha256 + framing + name
var DefaultLinksPerBlock = (roughLinkBlockSize / roughLinkSize)
See calc_test.go
var ErrSizeLimitExceeded = fmt.Errorf("object size limit exceeded")
ErrSizeLimitExceeded signals that a block is larger than BlockSizeLimit.
Functions ¶
This section is empty.
Types ¶
type DagBuilderHelper ¶
type DagBuilderHelper struct {
// contains filtered or unexported fields
}
DagBuilderHelper wraps together a bunch of objects needed to efficiently create unixfs dag trees
func (*DagBuilderHelper) Done ¶
func (db *DagBuilderHelper) Done() bool
Done returns whether or not we're done consuming the incoming data.
func (*DagBuilderHelper) FillNodeLayer ¶
func (db *DagBuilderHelper) FillNodeLayer(node *UnixfsNode) error
FillNodeLayer will add datanodes as children to the give node until at most db.indirSize ndoes are added
func (*DagBuilderHelper) FillNodeWithData ¶
func (db *DagBuilderHelper) FillNodeWithData(node *UnixfsNode) error
func (*DagBuilderHelper) GetDagServ ¶ added in v0.3.2
func (db *DagBuilderHelper) GetDagServ() dag.DAGService
GetDagServ returns the dagservice object this Helper is using
type DagBuilderParams ¶
type DagBuilderParams struct {
// Maximum number of links per intermediate node
Maxlinks int
// DAGService to write blocks to (required)
Dagserv dag.DAGService
}
type UnixfsNode ¶
type UnixfsNode struct {
// contains filtered or unexported fields
}
UnixfsNode is a struct created to aid in the generation of unixfs DAG trees
func NewUnixfsBlock ¶ added in v0.3.2
func NewUnixfsBlock() *UnixfsNode
NewUnixfsBlock creates a new Unixfs node to represent a raw data block
func NewUnixfsNode ¶
func NewUnixfsNode() *UnixfsNode
NewUnixfsNode creates a new Unixfs node to represent a file
func NewUnixfsNodeFromDag ¶ added in v0.3.2
func NewUnixfsNodeFromDag(nd *dag.Node) (*UnixfsNode, error)
NewUnixfsNodeFromDag reconstructs a Unixfs node from a given dag node
func (*UnixfsNode) AddChild ¶
func (n *UnixfsNode) AddChild(child *UnixfsNode, db *DagBuilderHelper) error
addChild will add the given UnixfsNode as a child of the receiver. the passed in DagBuilderHelper is used to store the child node an pin it locally so it doesnt get lost
func (*UnixfsNode) GetChild ¶ added in v0.3.2
func (n *UnixfsNode) GetChild(ctx context.Context, i int, ds dag.DAGService) (*UnixfsNode, error)
func (*UnixfsNode) GetDagNode ¶
func (n *UnixfsNode) GetDagNode() (*dag.Node, error)
getDagNode fills out the proper formatting for the unixfs node inside of a DAG node and returns the dag node
func (*UnixfsNode) NumChildren ¶
func (n *UnixfsNode) NumChildren() int
func (*UnixfsNode) RemoveChild ¶ added in v0.3.2
func (n *UnixfsNode) RemoveChild(index int, dbh *DagBuilderHelper)
Removes the child node at the given index