diff --git a/bitswap/interface.go b/bitswap/interface.go new file mode 100644 index 0000000000000000000000000000000000000000..0fcff88d660f861e6ad758c924d3a0cd184045df --- /dev/null +++ b/bitswap/interface.go @@ -0,0 +1,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 +}