Documentation ¶
Index ¶
- func PeerCompare(a, b pq.Elem) bool
- type PeerTracker
- func (p *PeerTracker) Freeze()
- func (p *PeerTracker) FullThaw()
- func (p *PeerTracker) Index() int
- func (p *PeerTracker) IsFrozen() bool
- func (p *PeerTracker) IsIdle() bool
- func (p *PeerTracker) PopBlock() *peertask.TaskBlock
- func (p *PeerTracker) PushBlock(target peer.ID, tasks []peertask.Task, done func(e []peertask.Task))
- func (p *PeerTracker) Remove(identifier peertask.Identifier)
- func (p *PeerTracker) SetIndex(i int)
- func (p *PeerTracker) StartTask(identifier peertask.Identifier)
- func (p *PeerTracker) Target() peer.ID
- func (p *PeerTracker) TaskDone(identifier peertask.Identifier)
- func (p *PeerTracker) Thaw() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PeerCompare ¶
PeerCompare implements pq.ElemComparator returns true if peer 'a' has higher priority than peer 'b'
Types ¶
type PeerTracker ¶
type PeerTracker struct {
// contains filtered or unexported fields
}
PeerTracker tracks task blocks for a single peer, as well as active tasks for that peer
func (*PeerTracker) Freeze ¶
func (p *PeerTracker) Freeze()
Freeze increments the freeze value for this peer. While a peer is frozen (freeze value > 0) it will not execute tasks.
func (*PeerTracker) FullThaw ¶
func (p *PeerTracker) FullThaw()
FullThaw completely unfreezes this peer so it can execute tasks.
func (*PeerTracker) IsFrozen ¶
func (p *PeerTracker) IsFrozen() bool
IsFrozen returns whether this peer is frozen and unable to execute tasks.
func (*PeerTracker) IsIdle ¶
func (p *PeerTracker) IsIdle() bool
IsIdle returns true if the peer has no active tasks or queued tasks
func (*PeerTracker) PopBlock ¶
func (p *PeerTracker) PopBlock() *peertask.TaskBlock
PopBlock removes a block of tasks from this peers queue
func (*PeerTracker) PushBlock ¶
func (p *PeerTracker) PushBlock(target peer.ID, tasks []peertask.Task, done func(e []peertask.Task))
PushBlock adds a new block of tasks on to a peers queue from the given peer ID, list of tasks, and task block completion function
func (*PeerTracker) Remove ¶
func (p *PeerTracker) Remove(identifier peertask.Identifier)
Remove removes the task with the given identifier from this peers queue
func (*PeerTracker) StartTask ¶
func (p *PeerTracker) StartTask(identifier peertask.Identifier)
StartTask signals that a task was started for this peer.
func (*PeerTracker) Target ¶
func (p *PeerTracker) Target() peer.ID
Target returns the peer that this peer tracker tracks tasks for
func (*PeerTracker) TaskDone ¶
func (p *PeerTracker) TaskDone(identifier peertask.Identifier)
TaskDone signals that a task was completed for this peer.
func (*PeerTracker) Thaw ¶
func (p *PeerTracker) Thaw() bool
Thaw decrements the freeze value for this peer. While a peer is frozen (freeze value > 0) it will not execute tasks.