1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-29 01:12:24 +08:00

interface docs for pinner

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
This commit is contained in:
Jeromy
2018-01-21 11:31:47 -08:00
parent 2140aa9578
commit ce57a76687

View File

@ -46,11 +46,22 @@ const (
type PinMode int type PinMode int
const ( const (
// Recursive pins pin the target cids along with any reachable children.
Recursive PinMode = iota Recursive PinMode = iota
// Direct pins pin just the target cid.
Direct Direct
// Indirect pins are cids who have some ancestor pinned recursively.
Indirect Indirect
// Internal pins are cids used to keep the internal state of the pinner.
Internal Internal
// NotPinned
NotPinned NotPinned
// Any refers to any pinned cid
Any Any
) )
@ -82,10 +93,20 @@ func StringToPinMode(s string) (PinMode, bool) {
} }
type Pinner interface { type Pinner interface {
// IsPinned returns whether or not the given cid is pinned
// and an explanation of why its pinned
IsPinned(*cid.Cid) (string, bool, error) IsPinned(*cid.Cid) (string, bool, error)
// IsPinnedWithType returns whether or not the given cid is pinned with the
// given pin type, as well as returning the type of pin its pinned with.
IsPinnedWithType(*cid.Cid, PinMode) (string, bool, error) IsPinnedWithType(*cid.Cid, PinMode) (string, bool, error)
Pin(context.Context, node.Node, bool) error
Unpin(context.Context, *cid.Cid, bool) error // Pin the given node, optionally recursively.
Pin(ctx context.Context, node node.Node, recursive bool) error
// Unpin the given cid. If recursive is true, removes either a recursive or
// a direct pin. If recursive is false, only removes a direct pin.
Unpin(ctx context.Context, cid *cid.Cid, recursive bool) error
// Update updates a recursive pin from one cid to another // Update updates a recursive pin from one cid to another
// this is more efficient than simply pinning the new one and unpinning the // this is more efficient than simply pinning the new one and unpinning the
@ -106,9 +127,17 @@ type Pinner interface {
// be successful. // be successful.
RemovePinWithMode(*cid.Cid, PinMode) RemovePinWithMode(*cid.Cid, PinMode)
// Flush writes the pin state to the backing datastore
Flush() error Flush() error
// DirectKeys returns all directly pinned cids
DirectKeys() []*cid.Cid DirectKeys() []*cid.Cid
// DirectKeys returns all recursively pinned cids
RecursiveKeys() []*cid.Cid RecursiveKeys() []*cid.Cid
// InternalPins returns all cids kept pinned for the internal state of the
// pinner
InternalPins() []*cid.Cid InternalPins() []*cid.Cid
} }