interface.go 653 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 14 15 16 17 18 19 20 21 22 23
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
	// TODO(brian): rename -> Block
	GetBlock(k u.Key, timeout time.Duration) (*blocks.Block, error)

	// 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?
	HaveBlock(*blocks.Block) error
}