Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var MaxEntrySize = maxEntrySize()
Functions ¶
func BlockPresenceSize ¶
Types ¶
type BitSwapMessage ¶
type BitSwapMessage interface {
// Wantlist returns a slice of unique keys that represent data wanted by
// the sender.
Wantlist() []Entry
// Blocks returns a slice of unique blocks.
Blocks() []blocks.Block
// BlockPresences returns the list of HAVE / DONT_HAVE in the message
BlockPresences() []BlockPresence
// Haves returns the Cids for each HAVE
Haves() []cid.Cid
// DontHaves returns the Cids for each DONT_HAVE
DontHaves() []cid.Cid
// PendingBytes returns the number of outstanding bytes of data that the
// engine has yet to send to the client (because they didn't fit in this
// message)
PendingBytes() int32
// AddEntry adds an entry to the Wantlist.
AddEntry(key cid.Cid, priority int32, wantType pb.Message_Wantlist_WantType, sendDontHave bool) int
// Cancel adds a CANCEL for the given CID to the message
// Returns the size of the CANCEL entry in the protobuf
Cancel(key cid.Cid) int
// Remove removes any entries for the given CID. Useful when the want
// status for the CID changes when preparing a message.
Remove(key cid.Cid)
// Empty indicates whether the message has any information
Empty() bool
// Size returns the size of the message in bytes
Size() int
// A full wantlist is an authoritative copy, a 'non-full' wantlist is a patch-set
Full() bool
// AddBlock adds a block to the message
AddBlock(blocks.Block)
// AddBlockPresence adds a HAVE / DONT_HAVE for the given Cid to the message
AddBlockPresence(cid.Cid, pb.Message_BlockPresenceType)
// AddHave adds a HAVE for the given Cid to the message
AddHave(cid.Cid)
// AddDontHave adds a DONT_HAVE for the given Cid to the message
AddDontHave(cid.Cid)
// SetPendingBytes sets the number of bytes of data that are yet to be sent
// to the client (because they didn't fit in this message)
SetPendingBytes(int32)
Exportable
Loggable() map[string]interface{}
// Reset the values in the message back to defaults, so it can be reused
Reset(bool)
// Clone the message fields
Clone() BitSwapMessage
}
BitSwapMessage is the basic interface for interacting building, encoding, and decoding messages sent on the BitSwap protocol.
func FromMsgReader ¶
func FromMsgReader(r msgio.Reader) (BitSwapMessage, error)
FromPBReader generates a new Bitswap message from a gogo-protobuf reader
type BlockPresence ¶
type BlockPresence struct {
Cid cid.Cid
Type pb.Message_BlockPresenceType
}
BlockPresence represents a HAVE / DONT_HAVE for a given Cid
type Entry ¶
Entry is a wantlist entry in a Bitswap message, with flags indicating - whether message is a cancel - whether requester wants a DONT_HAVE message - whether requester wants a HAVE message (instead of the block)
func (*Entry) ToPB ¶
func (e *Entry) ToPB() pb.Message_Wantlist_Entry
Get the entry in protobuf form
type Exportable ¶
type Exportable interface {
// Note that older Bitswap versions use a different wire format, so we need
// to convert the message to the appropriate format depending on which
// version of the protocol the remote peer supports.
ToProtoV0() *pb.Message
ToProtoV1() *pb.Message
ToNetV0(w io.Writer) error
ToNetV1(w io.Writer) error
}
Exportable is an interface for structures than can be encoded in a bitswap protobuf.
Click to show internal directories.
Click to hide internal directories.