wantlist

package
v0.4.14-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2018 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

package wantlist implements an object for bitswap that contains the keys that a given peer wants.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Entry

type Entry struct {
	Cid      *cid.Cid
	Priority int

	SesTrk map[uint64]struct{}
}

func NewRefEntry added in v0.4.11

func NewRefEntry(c *cid.Cid, p int) *Entry

NewRefEntry creates a new reference tracked wantlist entry

type ThreadSafe

type ThreadSafe struct {
	// contains filtered or unexported fields
}

func NewThreadSafe

func NewThreadSafe() *ThreadSafe

func (*ThreadSafe) Add

func (w *ThreadSafe) Add(c *cid.Cid, priority int, ses uint64) bool

Add adds the given cid to the wantlist with the specified priority, governed by the session ID 'ses'. if a cid is added under multiple session IDs, then it must be removed by each of those sessions before it is no longer 'in the wantlist'. Calls to Add are idempotent given the same arguments. Subsequent calls with different values for priority will not update the priority TODO: think through priority changes here Add returns true if the cid did not exist in the wantlist before this call (even if it was under a different session)

func (*ThreadSafe) AddEntry added in v0.4.2

func (w *ThreadSafe) AddEntry(e *Entry, ses uint64) bool

AddEntry adds given Entry to the wantlist. For more information see Add method.

func (*ThreadSafe) Contains

func (w *ThreadSafe) Contains(k *cid.Cid) (*Entry, bool)

Contains returns true if the given cid is in the wantlist tracked by one or more sessions

func (*ThreadSafe) Entries

func (w *ThreadSafe) Entries() []*Entry

func (*ThreadSafe) Len

func (w *ThreadSafe) Len() int

func (*ThreadSafe) Remove

func (w *ThreadSafe) Remove(c *cid.Cid, ses uint64) bool

Remove removes the given cid from being tracked by the given session. 'true' is returned if this call to Remove removed the final session ID tracking the cid. (meaning true will be returned iff this call caused the value of 'Contains(c)' to change from true to false)

func (*ThreadSafe) SortedEntries

func (w *ThreadSafe) SortedEntries() []*Entry

type Wantlist

type Wantlist struct {
	// contains filtered or unexported fields
}

not threadsafe

func New

func New() *Wantlist

func (*Wantlist) Add

func (w *Wantlist) Add(c *cid.Cid, priority int) bool

func (*Wantlist) AddEntry added in v0.4.2

func (w *Wantlist) AddEntry(e *Entry) bool

func (*Wantlist) Contains

func (w *Wantlist) Contains(k *cid.Cid) (*Entry, bool)

func (*Wantlist) Entries

func (w *Wantlist) Entries() []*Entry

func (*Wantlist) Len

func (w *Wantlist) Len() int

func (*Wantlist) Remove

func (w *Wantlist) Remove(c *cid.Cid) bool

func (*Wantlist) SortedEntries

func (w *Wantlist) SortedEntries() []*Entry

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL