Documentation ¶
Index ¶
- type BlockHooks
- type BlockSentListeners
- type CancelledListeners
- type CompletedListeners
- type Manager
- type NetworkErrorListeners
- type QueryQueue
- type RequestHooks
- type RequestQueuedHooks
- type ResponseAssembler
- type ResponseManager
- func (rm *ResponseManager) CancelResponse(p peer.ID, requestID graphsync.RequestID) error
- func (rm *ResponseManager) FinishTask(task *peertask.Task, err error)
- func (rm *ResponseManager) GetUpdates(p peer.ID, requestID graphsync.RequestID, ...)
- func (rm *ResponseManager) PauseResponse(p peer.ID, requestID graphsync.RequestID) error
- func (rm *ResponseManager) ProcessRequests(ctx context.Context, p peer.ID, requests []gsmsg.GraphSyncRequest)
- func (rm *ResponseManager) Shutdown()
- func (rm *ResponseManager) StartTask(task *peertask.Task, responseTaskDataChan chan<- ResponseTaskData)
- func (rm *ResponseManager) Startup()
- func (rm *ResponseManager) UnpauseResponse(p peer.ID, requestID graphsync.RequestID, ...) error
- type ResponseSignals
- type ResponseTaskData
- type UpdateHooks
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockHooks ¶ added in v0.1.0
type BlockHooks interface {
ProcessBlockHooks(p peer.ID, request graphsync.RequestData, blockData graphsync.BlockData) hooks.BlockResult
}
BlockHooks is an interface for processing block hooks
type BlockSentListeners ¶ added in v0.3.0
type BlockSentListeners interface {
NotifyBlockSentListeners(p peer.ID, request graphsync.RequestData, block graphsync.BlockData)
}
BlockSentListeners is an interface for notifying listeners that of a block send occuring over the wire
type CancelledListeners ¶ added in v0.1.0
type CancelledListeners interface {
NotifyCancelledListeners(p peer.ID, request graphsync.RequestData)
}
CancelledListeners is an interface for notifying listeners that requestor cancelled
type CompletedListeners ¶ added in v0.1.0
type CompletedListeners interface {
NotifyCompletedListeners(p peer.ID, request graphsync.RequestData, status graphsync.ResponseStatusCode)
}
CompletedListeners is an interface for notifying listeners that responses are complete
type Manager ¶ added in v0.10.0
type Manager interface { StartTask(task *peertask.Task, responseTaskDataChan chan<- ResponseTaskData) GetUpdates(p peer.ID, requestID graphsync.RequestID, updatesChan chan<- []gsmsg.GraphSyncRequest) FinishTask(task *peertask.Task, err error) }
Manager providers an interface to the response manager
type NetworkErrorListeners ¶ added in v0.3.0
type NetworkErrorListeners interface {
NotifyNetworkErrorListeners(p peer.ID, request graphsync.RequestData, err error)
}
NetworkErrorListeners is an interface for notifying listeners that an error occurred sending a data on the wire
type QueryQueue ¶
type QueryQueue interface { PushTasks(to peer.ID, tasks ...peertask.Task) PopTasks(targetMinWork int) (peer.ID, []*peertask.Task, int) Remove(topic peertask.Topic, p peer.ID) TasksDone(to peer.ID, tasks ...*peertask.Task) ThawRound() }
QueryQueue is an interface that can receive new selector query tasks and prioritize them as needed, and pop them off later
type RequestHooks ¶ added in v0.1.0
type RequestHooks interface {
ProcessRequestHooks(p peer.ID, request graphsync.RequestData) hooks.RequestResult
}
RequestHooks is an interface for processing request hooks
type RequestQueuedHooks ¶ added in v0.6.4
type RequestQueuedHooks interface {
ProcessRequestQueuedHooks(p peer.ID, request graphsync.RequestData)
}
RequestQueuedHooks is an interface for processing request queued hooks
type ResponseAssembler ¶ added in v0.6.0
type ResponseAssembler interface { DedupKey(p peer.ID, requestID graphsync.RequestID, key string) IgnoreBlocks(p peer.ID, requestID graphsync.RequestID, links []ipld.Link) SkipFirstBlocks(p peer.ID, requestID graphsync.RequestID, skipCount int64) Transaction(p peer.ID, requestID graphsync.RequestID, transaction responseassembler.Transaction) error }
ResponseAssembler is an interface that returns sender interfaces for peer responses.
type ResponseManager ¶
type ResponseManager struct {
// contains filtered or unexported fields
}
ResponseManager handles incoming requests from the network, initiates selector traversals, and transmits responses
func New ¶
func New(ctx context.Context, linkSystem ipld.LinkSystem, responseAssembler ResponseAssembler, queryQueue QueryQueue, requestQueuedHooks RequestQueuedHooks, requestHooks RequestHooks, blockHooks BlockHooks, updateHooks UpdateHooks, completedListeners CompletedListeners, cancelledListeners CancelledListeners, blockSentListeners BlockSentListeners, networkErrorListeners NetworkErrorListeners, maxInProcessRequests uint64, connManager network.ConnManager, ) *ResponseManager
New creates a new response manager for responding to requests
func (*ResponseManager) CancelResponse ¶ added in v0.1.0
func (rm *ResponseManager) CancelResponse(p peer.ID, requestID graphsync.RequestID) error
CancelResponse cancels an in progress response
func (*ResponseManager) FinishTask ¶ added in v0.10.0
func (rm *ResponseManager) FinishTask(task *peertask.Task, err error)
FinishTask marks a task from the task queue as done
func (*ResponseManager) GetUpdates ¶ added in v0.10.0
func (rm *ResponseManager) GetUpdates(p peer.ID, requestID graphsync.RequestID, updatesChan chan<- []gsmsg.GraphSyncRequest)
GetUpdates is called to read pending updates for a task and clear them
func (*ResponseManager) PauseResponse ¶ added in v0.1.0
func (rm *ResponseManager) PauseResponse(p peer.ID, requestID graphsync.RequestID) error
PauseResponse pauses an in progress response (may take 1 or more blocks to process)
func (*ResponseManager) ProcessRequests ¶
func (rm *ResponseManager) ProcessRequests(ctx context.Context, p peer.ID, requests []gsmsg.GraphSyncRequest)
ProcessRequests processes incoming requests for the given peer
func (*ResponseManager) Shutdown ¶
func (rm *ResponseManager) Shutdown()
Shutdown ends processing for the want manager.
func (*ResponseManager) StartTask ¶ added in v0.10.0
func (rm *ResponseManager) StartTask(task *peertask.Task, responseTaskDataChan chan<- ResponseTaskData)
StartTask starts the given task from the peer task queue
func (*ResponseManager) Startup ¶
func (rm *ResponseManager) Startup()
Startup starts processing for the WantManager.
func (*ResponseManager) UnpauseResponse ¶ added in v0.1.0
func (rm *ResponseManager) UnpauseResponse(p peer.ID, requestID graphsync.RequestID, extensions ...graphsync.ExtensionData) error
UnpauseResponse unpauses a response that was previously paused
type ResponseSignals ¶ added in v0.10.0
type ResponseSignals struct { PauseSignal chan struct{} UpdateSignal chan struct{} ErrSignal chan error }
ResponseSignals are message channels to communicate between the manager and the query
type ResponseTaskData ¶ added in v0.10.0
type ResponseTaskData struct { Empty bool Subscriber *notifications.TopicDataSubscriber Ctx context.Context Request gsmsg.GraphSyncRequest Loader ipld.BlockReadOpener Traverser ipldutil.Traverser Signals ResponseSignals }
ResponseTaskData returns all information needed to execute a given response
type UpdateHooks ¶ added in v0.1.0
type UpdateHooks interface {
ProcessUpdateHooks(p peer.ID, request graphsync.RequestData, update graphsync.RequestData) hooks.UpdateResult
}
UpdateHooks is an interface for processing update hooks
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package responseassembler assembles responses that are queued for sending in outgoing messages The response assembler's Transaction method allows a caller to specify response actions that will go into a single libp2p2 message.
|
Package responseassembler assembles responses that are queued for sending in outgoing messages The response assembler's Transaction method allows a caller to specify response actions that will go into a single libp2p2 message. |