bcp

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2026 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Overview

Package bcp implements the Blobcache Protocol (BCP).

Index

Constants

View Source
const (
	MT_OK = 128 + iota

	MT_ERROR_TIMEOUT
	MT_ERROR_INVALID_HANDLE
	MT_ERROR_NOT_FOUND
	MT_ERROR_NO_PERMISSION
	MT_ERROR_NO_LINK
	MT_ERROR_TOO_LARGE

	MT_ERROR_UNKNOWN = 255
)

Response messages

View Source
const HeaderLen = 8

Variables

This section is empty.

Functions

func Abort

func AddFrom

func AddFrom(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, srcTxns []blobcache.Handle, success []bool) error

func CloneVolume

func CloneVolume(ctx context.Context, tp Asker, ep blobcache.Endpoint, caller *blobcache.PeerID, volh blobcache.Handle) (*blobcache.Handle, error)

func Commit

func Commit(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, root *[]byte) error

func CreateQueue

func CreateQueue(ctx context.Context, tp Asker, ep blobcache.Endpoint, qspec blobcache.QueueSpec) (*blobcache.Handle, error)

func CreateVolume

func CreateVolume(ctx context.Context, tp Asker, ep blobcache.Endpoint, vspec blobcache.VolumeSpec) (*blobcache.Handle, error)

func Delete

func Delete(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID) error

func Dequeue added in v0.4.0

func Drop

func Endpoint added in v0.4.0

func Endpoint(ctx context.Context, tp Asker) (blobcache.Endpoint, error)

func Enqueue added in v0.4.0

func Exists

func Exists(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, dst []bool) error

func Get

func Get(ctx context.Context, tp Asker, ep blobcache.Endpoint, txh blobcache.Handle, hf blobcache.HashFunc, cid blobcache.CID, salt *blobcache.CID, buf []byte) (int, error)

func InspectQueue added in v0.4.0

func IsVisited

func IsVisited(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, dst []bool) error

func KeepAlive

func KeepAlive(ctx context.Context, tp Asker, ep blobcache.Endpoint, hs []blobcache.Handle) error

func Load

func Load(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, dst *[]byte) error

func Ping

func Ping(ctx context.Context, tp Asker, ep blobcache.Endpoint) error

func Post

func Post(ctx context.Context, tp Asker, ep blobcache.Endpoint, txh blobcache.Handle, salt *blobcache.CID, data []byte) (blobcache.CID, error)

func Save

func Save(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, src []byte) error

func Serve added in v0.4.0

func Serve(ctx context.Context, lis net.Listener, srv Handler) error

func ServeStream added in v0.4.0

func ServeStream(ctx context.Context, ep blobcache.Endpoint, conn io.ReadWriteCloser, srv Handler) error

ServeStream serves BCP over a bidi-stream

func Unlink(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, targets []blobcache.LinkToken) error

func Visit

func Visit(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID) error
func VisitLinks(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, targets []blobcache.LinkToken) error

Types

type AbortReq

type AbortReq struct {
	Tx blobcache.Handle
}

func (AbortReq) Marshal

func (ar AbortReq) Marshal(out []byte) []byte

func (*AbortReq) Unmarshal

func (ar *AbortReq) Unmarshal(data []byte) error

type AbortResp

type AbortResp struct{}

func (AbortResp) Marshal

func (ar AbortResp) Marshal(out []byte) []byte

func (*AbortResp) Unmarshal

func (ar *AbortResp) Unmarshal(data []byte) error

type AccessFunc added in v0.4.0

type AccessFunc func(blobcache.PeerID) blobcache.Service

AccessFunc is called to get a Service to access If the returned Service is nil, then the connection is disconnected as quickly as possible, and no further information should be sent to the initiator.

"Get off the phone" https://i.gifer.com/2Yv2.gif

type AddFromReq

type AddFromReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
	Srcs []blobcache.Handle
}

func (AddFromReq) Marshal

func (ar AddFromReq) Marshal(out []byte) []byte

func (*AddFromReq) Unmarshal

func (ar *AddFromReq) Unmarshal(data []byte) error

type AddFromResp

type AddFromResp struct {
	Added []bool
}

func (AddFromResp) Marshal

func (ar AddFromResp) Marshal(out []byte) []byte

func (*AddFromResp) Unmarshal

func (ar *AddFromResp) Unmarshal(data []byte) error

type Asker

type Asker interface {
	Ask(ctx context.Context, remote blobcache.Endpoint, req Message, resp *Message) error
}

type BeginTxReq

type BeginTxReq struct {
	Volume blobcache.Handle
	Params blobcache.TxParams
}

func (BeginTxReq) Marshal

func (btx BeginTxReq) Marshal(out []byte) []byte

func (*BeginTxReq) Unmarshal

func (btx *BeginTxReq) Unmarshal(data []byte) error

type BeginTxResp

type BeginTxResp struct {
	// Tx is the handle for the transaction.
	Tx blobcache.Handle
	// VolumeInfo is the volume info for the transaction.
	Info blobcache.TxInfo
}

func (BeginTxResp) Marshal

func (btx BeginTxResp) Marshal(out []byte) []byte

func (*BeginTxResp) Unmarshal

func (btx *BeginTxResp) Unmarshal(data []byte) error

type CloneVolumeReq

type CloneVolumeReq struct {
	Volume blobcache.Handle
}

func (CloneVolumeReq) Marshal

func (cr CloneVolumeReq) Marshal(out []byte) []byte

func (*CloneVolumeReq) Unmarshal

func (cr *CloneVolumeReq) Unmarshal(data []byte) error

type CloneVolumeResp

type CloneVolumeResp struct {
	Handle blobcache.Handle
}

func (CloneVolumeResp) Marshal

func (cr CloneVolumeResp) Marshal(out []byte) []byte

func (*CloneVolumeResp) Unmarshal

func (cr *CloneVolumeResp) Unmarshal(data []byte) error

type CommitReq

type CommitReq struct {
	Tx blobcache.Handle
	// Root can be optionally set to call Save before Commit.
	Root *[]byte
}

func (CommitReq) Marshal

func (cr CommitReq) Marshal(out []byte) []byte

func (*CommitReq) Unmarshal

func (cr *CommitReq) Unmarshal(data []byte) error

type CommitResp

type CommitResp struct{}

func (CommitResp) Marshal

func (cr CommitResp) Marshal(out []byte) []byte

func (*CommitResp) Unmarshal

func (cr *CommitResp) Unmarshal(data []byte) error

type CreateQueueReq

type CreateQueueReq struct {
	Spec blobcache.QueueSpec
}

func (CreateQueueReq) Marshal

func (cq CreateQueueReq) Marshal(out []byte) []byte

func (*CreateQueueReq) Unmarshal

func (cq *CreateQueueReq) Unmarshal(data []byte) error

type CreateQueueResp

type CreateQueueResp struct {
	Handle blobcache.Handle
}

func (CreateQueueResp) Marshal

func (cq CreateQueueResp) Marshal(out []byte) []byte

func (*CreateQueueResp) Unmarshal

func (cq *CreateQueueResp) Unmarshal(data []byte) error

type CreateVolumeReq

type CreateVolumeReq struct {
	Spec blobcache.VolumeSpec
}

func (CreateVolumeReq) Marshal

func (cr CreateVolumeReq) Marshal(out []byte) []byte

func (*CreateVolumeReq) Unmarshal

func (cr *CreateVolumeReq) Unmarshal(data []byte) error

type CreateVolumeResp

type CreateVolumeResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (CreateVolumeResp) Marshal

func (cr CreateVolumeResp) Marshal(out []byte) []byte

func (*CreateVolumeResp) Unmarshal

func (cr *CreateVolumeResp) Unmarshal(data []byte) error

type DeleteReq

type DeleteReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (DeleteReq) Marshal

func (dr DeleteReq) Marshal(out []byte) []byte

func (*DeleteReq) Unmarshal

func (dr *DeleteReq) Unmarshal(data []byte) error

type DeleteResp

type DeleteResp struct{}

func (DeleteResp) Marshal

func (dr DeleteResp) Marshal(out []byte) []byte

func (*DeleteResp) Unmarshal

func (dr *DeleteResp) Unmarshal(data []byte) error

type DequeueReq added in v0.4.0

type DequeueReq struct {
	Queue blobcache.Handle
	Opts  blobcache.DequeueOpts
	Max   int
}

func (DequeueReq) Marshal added in v0.4.0

func (dr DequeueReq) Marshal(out []byte) []byte

func (*DequeueReq) Unmarshal added in v0.4.0

func (dr *DequeueReq) Unmarshal(data []byte) error

type DequeueResp added in v0.4.0

type DequeueResp struct {
	Messages []blobcache.Message
}

func (DequeueResp) Marshal added in v0.4.0

func (nr DequeueResp) Marshal(out []byte) []byte

func (*DequeueResp) Unmarshal added in v0.4.0

func (nr *DequeueResp) Unmarshal(data []byte) error

type DropReq

type DropReq struct {
	Handle blobcache.Handle
}

func (DropReq) Marshal

func (dr DropReq) Marshal(out []byte) []byte

func (*DropReq) Unmarshal

func (dr *DropReq) Unmarshal(data []byte) error

type DropResp

type DropResp struct{}

func (DropResp) Marshal

func (dr DropResp) Marshal(out []byte) []byte

func (*DropResp) Unmarshal

func (dr *DropResp) Unmarshal(data []byte) error

type EndpointReq added in v0.4.0

type EndpointReq struct{}

func (EndpointReq) Marshal added in v0.4.0

func (req EndpointReq) Marshal(out []byte) []byte

func (*EndpointReq) Unmarshal added in v0.4.0

func (req *EndpointReq) Unmarshal(out []byte) error

type EndpointResp added in v0.4.0

type EndpointResp struct {
	Endpoint blobcache.Endpoint
}

func (EndpointResp) Marshal added in v0.4.0

func (ep EndpointResp) Marshal(out []byte) []byte

func (*EndpointResp) Unmarshal added in v0.4.0

func (ep *EndpointResp) Unmarshal(out []byte) error

type EnqueueReq added in v0.4.0

type EnqueueReq struct {
	Queue    blobcache.Handle
	Messages []blobcache.Message
}

func (EnqueueReq) Marshal added in v0.4.0

func (er EnqueueReq) Marshal(out []byte) []byte

func (*EnqueueReq) Unmarshal added in v0.4.0

func (er *EnqueueReq) Unmarshal(data []byte) error

type EnqueueResp added in v0.4.0

type EnqueueResp struct {
	Success uint32
}

func (EnqueueResp) Marshal added in v0.4.0

func (ir EnqueueResp) Marshal(out []byte) []byte

func (*EnqueueResp) Unmarshal added in v0.4.0

func (ir *EnqueueResp) Unmarshal(data []byte) error

type ExistsReq

type ExistsReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (ExistsReq) Marshal

func (er ExistsReq) Marshal(out []byte) []byte

func (*ExistsReq) Unmarshal

func (er *ExistsReq) Unmarshal(data []byte) error

type ExistsResp

type ExistsResp struct {
	Exists []bool
}

func (ExistsResp) Marshal

func (er ExistsResp) Marshal(out []byte) []byte

func (*ExistsResp) Unmarshal

func (er *ExistsResp) Unmarshal(data []byte) error

type GetReq

type GetReq struct {
	Tx   blobcache.Handle
	CID  blobcache.CID
	Salt *blobcache.CID
}

func (GetReq) Marshal

func (gr GetReq) Marshal(out []byte) []byte

func (*GetReq) Unmarshal

func (gr *GetReq) Unmarshal(data []byte) error

type GetResp

type GetResp struct {
	Data []byte
}

func (GetResp) Marshal

func (gr GetResp) Marshal(out []byte) []byte

func (*GetResp) Unmarshal

func (gr *GetResp) Unmarshal(data []byte) error

type Handler added in v0.4.0

type Handler interface {
	ServeBCP(ctx context.Context, from blobcache.Endpoint, req Message, resp *Message) bool
}

type InspectHandleReq

type InspectHandleReq struct {
	Handle blobcache.Handle
}

func (InspectHandleReq) Marshal

func (ir InspectHandleReq) Marshal(out []byte) []byte

func (*InspectHandleReq) Unmarshal

func (ir *InspectHandleReq) Unmarshal(data []byte) error

type InspectHandleResp

type InspectHandleResp struct {
	Info blobcache.HandleInfo
}

func (InspectHandleResp) Marshal

func (ir InspectHandleResp) Marshal(out []byte) []byte

func (*InspectHandleResp) Unmarshal

func (ir *InspectHandleResp) Unmarshal(data []byte) error

type InspectQueueReq

type InspectQueueReq struct {
	Queue blobcache.Handle
}

func (InspectQueueReq) Marshal

func (iq InspectQueueReq) Marshal(out []byte) []byte

func (*InspectQueueReq) Unmarshal

func (iq *InspectQueueReq) Unmarshal(data []byte) error

type InspectQueueResp

type InspectQueueResp struct {
	Info blobcache.QueueInfo
}

func (InspectQueueResp) Marshal

func (iq InspectQueueResp) Marshal(out []byte) []byte

func (*InspectQueueResp) Unmarshal

func (iq *InspectQueueResp) Unmarshal(data []byte) error

type InspectTxReq

type InspectTxReq struct {
	Tx blobcache.Handle
}

func (InspectTxReq) Marshal

func (r InspectTxReq) Marshal(out []byte) []byte

func (*InspectTxReq) Unmarshal

func (r *InspectTxReq) Unmarshal(data []byte) error

type InspectTxResp

type InspectTxResp struct {
	Info blobcache.TxInfo
}

func (InspectTxResp) Marshal

func (r InspectTxResp) Marshal(out []byte) []byte

func (*InspectTxResp) Unmarshal

func (r *InspectTxResp) Unmarshal(data []byte) error

type InspectVolumeReq

type InspectVolumeReq struct {
	Volume blobcache.Handle
}

func (InspectVolumeReq) Marshal

func (iv InspectVolumeReq) Marshal(out []byte) []byte

func (*InspectVolumeReq) Unmarshal

func (iv *InspectVolumeReq) Unmarshal(data []byte) error

type InspectVolumeResp

type InspectVolumeResp struct {
	Info blobcache.VolumeInfo
}

func (InspectVolumeResp) Marshal

func (iv InspectVolumeResp) Marshal(out []byte) []byte

func (*InspectVolumeResp) Unmarshal

func (iv *InspectVolumeResp) Unmarshal(data []byte) error

type IsVisitedReq

type IsVisitedReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (IsVisitedReq) Marshal

func (ir IsVisitedReq) Marshal(out []byte) []byte

func (*IsVisitedReq) Unmarshal

func (ir *IsVisitedReq) Unmarshal(data []byte) error

type IsVisitedResp

type IsVisitedResp struct {
	Visited []bool
}

func (IsVisitedResp) Marshal

func (ir IsVisitedResp) Marshal(out []byte) []byte

func (*IsVisitedResp) Unmarshal

func (ir *IsVisitedResp) Unmarshal(data []byte) error

type KeepAliveReq

type KeepAliveReq struct {
	Handles []blobcache.Handle
}

func (KeepAliveReq) Marshal

func (kr KeepAliveReq) Marshal(out []byte) []byte

func (*KeepAliveReq) Unmarshal

func (kr *KeepAliveReq) Unmarshal(data []byte) error

type KeepAliveResp

type KeepAliveResp struct{}

func (KeepAliveResp) Marshal

func (kr KeepAliveResp) Marshal(out []byte) []byte

func (*KeepAliveResp) Unmarshal

func (kr *KeepAliveResp) Unmarshal(data []byte) error

type LinkReq

type LinkReq struct {
	Tx     blobcache.Handle
	Subvol blobcache.Handle
	Mask   blobcache.ActionSet
}

func (LinkReq) Marshal

func (ar LinkReq) Marshal(out []byte) []byte

func (*LinkReq) Unmarshal

func (ar *LinkReq) Unmarshal(data []byte) error

type LinkResp

type LinkResp struct {
	Token blobcache.LinkToken
}

func (LinkResp) Marshal

func (ar LinkResp) Marshal(out []byte) []byte

func (*LinkResp) Unmarshal

func (ar *LinkResp) Unmarshal(data []byte) error

type LoadReq

type LoadReq struct {
	Tx blobcache.Handle
}

func (LoadReq) Marshal

func (lr LoadReq) Marshal(out []byte) []byte

func (*LoadReq) Unmarshal

func (lr *LoadReq) Unmarshal(data []byte) error

type LoadResp

type LoadResp struct {
	Root []byte
}

func (LoadResp) Marshal

func (lr LoadResp) Marshal(out []byte) []byte

func (*LoadResp) Unmarshal

func (lr *LoadResp) Unmarshal(data []byte) error

type Marshaller added in v0.4.0

type Marshaller interface {
	Marshal(out []byte) []byte
}

type Message

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

func NewMessage added in v0.4.0

func NewMessage(x []byte) Message

func (*Message) Body

func (m *Message) Body() []byte

func (*Message) Header

func (m *Message) Header() MessageHeader

func (*Message) ReadDatagramFrom added in v0.4.0

func (m *Message) ReadDatagramFrom(r io.Reader, alloc int) error

func (*Message) ReadFrom

func (m *Message) ReadFrom(r io.Reader) (int64, error)

func (*Message) SetBody

func (m *Message) SetBody(body []byte)

func (*Message) SetCode

func (m *Message) SetCode(code MessageType)

func (*Message) SetError

func (m *Message) SetError(err error)

func (*Message) SetSendable

func (m *Message) SetSendable(x Sendable)

SetSendable sets the body of the message to a Sendable

func (*Message) WriteTo

func (m *Message) WriteTo(w io.Writer) (int64, error)

type MessageHeader

type MessageHeader [HeaderLen]byte

func (MessageHeader) BodyLen

func (h MessageHeader) BodyLen() int

func (MessageHeader) Code

func (h MessageHeader) Code() MessageType

func (*MessageHeader) SetBodyLen

func (h *MessageHeader) SetBodyLen(bodyLen int)

func (*MessageHeader) SetCode

func (h *MessageHeader) SetCode(code MessageType)

type MessageType

type MessageType uint8
const (
	MT_UNKNOWN MessageType = iota
	// MT_PING is a request to ping the remote peer.
	MT_PING
	// MT_ENDPOINT is a request for the remote to respond with its Endpoint
	MT_ENDPOINT
)
const (
	MT_HANDLE_INSPECT MessageType = 16 + iota
	MT_HANDLE_DROP
	MT_HANDLE_KEEP_ALIVE
	MT_HANDLE_SHARE
)

Handle messages

const (
	MT_OPEN_FIAT MessageType = 32 + iota
	MT_OPEN_FROM
	MT_VOLUME_INSPECT
	MT_VOLUME_AWAIT
	MT_VOLUME_BEGIN_TX
	MT_VOLUME_CLONE

	MT_CREATE_VOLUME MessageType = 47
)

Volume messages

const (
	MT_TX_INSPECT MessageType = 48 + iota

	MT_TX_COMMIT
	MT_TX_ABORT

	MT_TX_LOAD
	MT_TX_SAVE

	MT_TX_POST
	MT_TX_POST_SALT
	MT_TX_GET
	MT_TX_EXISTS
	MT_TX_DELETE
	MT_TX_ADD_FROM
	MT_TX_VISIT
	MT_TX_IS_VISITED

	MT_TX_LINK
	MT_TX_UNLINK
	MT_TX_VISIT_LINKS
)

Tx messages

const (
	MT_QUEUE_INSPECT MessageType = 80 + iota
	MT_QUEUE_ENQUEUE
	MT_QUEUE_DEQUEUE
	MT_QUEUE_SUB_TO_VOLUME

	MT_QUEUE_CREATE MessageType = 96
)

func (MessageType) IsError

func (mt MessageType) IsError() bool

func (MessageType) IsOK

func (mt MessageType) IsOK() bool

type OpenFiatReq

type OpenFiatReq struct {
	Target blobcache.OID
	Mask   blobcache.ActionSet
}

func (OpenFiatReq) Marshal

func (oa OpenFiatReq) Marshal(out []byte) []byte

func (*OpenFiatReq) Unmarshal

func (oa *OpenFiatReq) Unmarshal(data []byte) error

type OpenFiatResp

type OpenFiatResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (OpenFiatResp) Marshal

func (oa OpenFiatResp) Marshal(out []byte) []byte

func (*OpenFiatResp) Unmarshal

func (oa *OpenFiatResp) Unmarshal(data []byte) error

type OpenFromReq

type OpenFromReq struct {
	Base  blobcache.Handle
	Token blobcache.LinkToken
	Mask  blobcache.ActionSet
}

func (OpenFromReq) Marshal

func (of OpenFromReq) Marshal(out []byte) []byte

func (*OpenFromReq) Unmarshal

func (of *OpenFromReq) Unmarshal(data []byte) error

type OpenFromResp

type OpenFromResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (OpenFromResp) Marshal

func (of OpenFromResp) Marshal(out []byte) []byte

func (*OpenFromResp) Unmarshal

func (of *OpenFromResp) Unmarshal(data []byte) error

type SaveReq

type SaveReq struct {
	Tx   blobcache.Handle
	Root []byte
}

func (SaveReq) Marshal

func (r SaveReq) Marshal(out []byte) []byte

func (*SaveReq) Unmarshal

func (r *SaveReq) Unmarshal(data []byte) error

type SaveResp

type SaveResp struct{}

func (SaveResp) Marshal

func (r SaveResp) Marshal(out []byte) []byte

func (*SaveResp) Unmarshal

func (r *SaveResp) Unmarshal(data []byte) error

type Sendable

type Sendable interface {
	Marshal(out []byte) []byte
}

Sendable is a type that can be sent in a message

type Server added in v0.4.0

type Server struct {
	Access AccessFunc
}

func (*Server) ServeBCP added in v0.4.0

func (s *Server) ServeBCP(ctx context.Context, ep blobcache.Endpoint, req Message, resp *Message) bool

type ShareReq

type ShareReq struct {
	Handle blobcache.Handle
	Peer   blobcache.PeerID
	Mask   blobcache.ActionSet
}

func (ShareReq) Marshal

func (sr ShareReq) Marshal(out []byte) []byte

func (*ShareReq) Unmarshal

func (sr *ShareReq) Unmarshal(data []byte) error

type ShareResp

type ShareResp struct {
	Handle blobcache.Handle
}

func (ShareResp) Marshal

func (sr ShareResp) Marshal(out []byte) []byte

func (*ShareResp) Unmarshal

func (sr *ShareResp) Unmarshal(data []byte) error

type SubToVolumeReq

type SubToVolumeReq struct {
	Queue  blobcache.Handle
	Volume blobcache.Handle
	Spec   blobcache.VolSubSpec
}

func (SubToVolumeReq) Marshal

func (sr SubToVolumeReq) Marshal(out []byte) []byte

func (*SubToVolumeReq) Unmarshal

func (sr *SubToVolumeReq) Unmarshal(data []byte) error

type SubToVolumeResp

type SubToVolumeResp struct{}

func (SubToVolumeResp) Marshal

func (sr SubToVolumeResp) Marshal(out []byte) []byte

func (*SubToVolumeResp) Unmarshal

func (sr *SubToVolumeResp) Unmarshal(data []byte) error

type Teller

type Teller interface {
	Tell(ctx context.Context, remote blobcache.Endpoint, req Message) error
}

type TopicMessage added in v0.4.0

type TopicMessage = blobcache.Message

type TopicTellMsg

type TopicTellMsg struct {
	// TopicHash is the hash of the topic ID
	TopicHash  blobcache.CID
	Ciphertext []byte
}

func (*TopicTellMsg) Decrypt

func (ttm *TopicTellMsg) Decrypt(tid blobcache.TID, dst *blobcache.Message) error

Decrypt attempts to decrypt the message using topic ID.

func (*TopicTellMsg) Encrypt

func (dst *TopicTellMsg) Encrypt(topicID blobcache.TID, ptext []byte)

Encrypt sets the message to contain ciphertext for ptext on topicID.

func (TopicTellMsg) Marshal

func (ttm TopicTellMsg) Marshal(out []byte) []byte

func (*TopicTellMsg) Unmarshal

func (ttm *TopicTellMsg) Unmarshal(data []byte) error

type UnlinkReq

type UnlinkReq struct {
	Tx      blobcache.Handle
	Targets []blobcache.LinkToken
}

func (UnlinkReq) Marshal

func (ur UnlinkReq) Marshal(out []byte) []byte

func (*UnlinkReq) Unmarshal

func (ur *UnlinkReq) Unmarshal(data []byte) error

type UnlinkResp

type UnlinkResp struct{}

func (UnlinkResp) Marshal

func (ur UnlinkResp) Marshal(out []byte) []byte

func (*UnlinkResp) Unmarshal

func (ur *UnlinkResp) Unmarshal(data []byte) error

type Unmarshaller added in v0.4.0

type Unmarshaller interface {
	Unmarshal(data []byte) error
}

type VisitLinksReq

type VisitLinksReq struct {
	Tx      blobcache.Handle
	Targets []blobcache.LinkToken
}

func (VisitLinksReq) Marshal

func (vr VisitLinksReq) Marshal(out []byte) []byte

func (*VisitLinksReq) Unmarshal

func (vr *VisitLinksReq) Unmarshal(data []byte) error

type VisitLinksResp

type VisitLinksResp struct{}

func (VisitLinksResp) Marshal

func (vr VisitLinksResp) Marshal(out []byte) []byte

func (*VisitLinksResp) Unmarshal

func (vr *VisitLinksResp) Unmarshal(data []byte) error

type VisitReq

type VisitReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (VisitReq) Marshal

func (vr VisitReq) Marshal(out []byte) []byte

func (*VisitReq) Unmarshal

func (vr *VisitReq) Unmarshal(data []byte) error

type VisitResp

type VisitResp struct{}

func (VisitResp) Marshal

func (vr VisitResp) Marshal(out []byte) []byte

func (*VisitResp) Unmarshal

func (vr *VisitResp) Unmarshal(data []byte) error

Jump to

Keyboard shortcuts

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