interface.go 615 Bytes
Newer Older
Brian Tiger Chow's avatar
Brian Tiger Chow committed
1 2 3 4 5 6 7 8 9 10 11 12 13
package bitswap

import (
	"time"

	blocks "github.com/jbenet/go-ipfs/blocks"
	u "github.com/jbenet/go-ipfs/util"
)

type Exchange interface {

	// Block returns the block associated with a given key.
	// TODO(brian): pass a context instead of a timeout
14
	Block(k u.Key, timeout time.Duration) (*blocks.Block, error)
Brian Tiger Chow's avatar
Brian Tiger Chow committed
15 16 17 18 19 20

	// HasBlock asserts the existence of this block
	// TODO(brian): rename -> HasBlock
	// TODO(brian): accept a value, not a pointer
	// TODO(brian): remove error return value. Should callers be concerned with
	// whether the block was made available on the network?
21
	HasBlock(blocks.Block) error
Brian Tiger Chow's avatar
Brian Tiger Chow committed
22
}