Documentation ¶
Overview ¶
Package resource is a generated GoMock package.
Package resource is a generated GoMock package.
Package resource is a generated GoMock package.
Package resource is a generated GoMock package.
Package resource is a generated GoMock package.
Package resource is a generated GoMock package.
Index ¶
- Constants
- type Host
- type HostManager
- type HostOption
- type HostType
- type MockHostManager
- func (m *MockHostManager) Delete(arg0 string)
- func (m *MockHostManager) EXPECT() *MockHostManagerMockRecorder
- func (m *MockHostManager) Load(arg0 string) (*Host, bool)
- func (m *MockHostManager) LoadOrStore(arg0 *Host) (*Host, bool)
- func (m *MockHostManager) RunGC() error
- func (m *MockHostManager) Store(arg0 *Host)
- type MockHostManagerMockRecorder
- func (mr *MockHostManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
- func (mr *MockHostManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
- func (mr *MockHostManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
- func (mr *MockHostManagerMockRecorder) RunGC() *gomock.Call
- func (mr *MockHostManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
- type MockPeerManager
- func (m *MockPeerManager) Delete(arg0 string)
- func (m *MockPeerManager) EXPECT() *MockPeerManagerMockRecorder
- func (m *MockPeerManager) Load(arg0 string) (*Peer, bool)
- func (m *MockPeerManager) LoadOrStore(arg0 *Peer) (*Peer, bool)
- func (m *MockPeerManager) RunGC() error
- func (m *MockPeerManager) Store(arg0 *Peer)
- type MockPeerManagerMockRecorder
- func (mr *MockPeerManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
- func (mr *MockPeerManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
- func (mr *MockPeerManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
- func (mr *MockPeerManagerMockRecorder) RunGC() *gomock.Call
- func (mr *MockPeerManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
- type MockResource
- type MockResourceMockRecorder
- type MockSeedPeer
- type MockSeedPeerClient
- func (m *MockSeedPeerClient) Close() error
- func (m *MockSeedPeerClient) EXPECT() *MockSeedPeerClientMockRecorder
- func (m *MockSeedPeerClient) GetPieceTasks(ctx context.Context, addr dfnet.NetAddr, req *base.PieceTaskRequest, ...) (*base.PiecePacket, error)
- func (m *MockSeedPeerClient) ObtainSeeds(ctx context.Context, sr *cdnsystem.SeedRequest, opts ...grpc.CallOption) (*client.PieceSeedStream, error)
- func (m *MockSeedPeerClient) OnNotify(arg0 *config.DynconfigData)
- func (m *MockSeedPeerClient) SyncPieceTasks(ctx context.Context, addr dfnet.NetAddr, ptr *base.PieceTaskRequest, ...) (cdnsystem.Seeder_SyncPieceTasksClient, error)
- func (m *MockSeedPeerClient) UpdateState(addrs []dfnet.NetAddr)
- type MockSeedPeerClientMockRecorder
- func (mr *MockSeedPeerClientMockRecorder) Close() *gomock.Call
- func (mr *MockSeedPeerClientMockRecorder) GetPieceTasks(ctx, addr, req interface{}, opts ...interface{}) *gomock.Call
- func (mr *MockSeedPeerClientMockRecorder) ObtainSeeds(ctx, sr interface{}, opts ...interface{}) *gomock.Call
- func (mr *MockSeedPeerClientMockRecorder) OnNotify(arg0 interface{}) *gomock.Call
- func (mr *MockSeedPeerClientMockRecorder) SyncPieceTasks(ctx, addr, ptr interface{}, opts ...interface{}) *gomock.Call
- func (mr *MockSeedPeerClientMockRecorder) UpdateState(addrs interface{}) *gomock.Call
- type MockSeedPeerMockRecorder
- type MockTaskManager
- func (m *MockTaskManager) Delete(arg0 string)
- func (m *MockTaskManager) EXPECT() *MockTaskManagerMockRecorder
- func (m *MockTaskManager) Load(arg0 string) (*Task, bool)
- func (m *MockTaskManager) LoadOrStore(arg0 *Task) (*Task, bool)
- func (m *MockTaskManager) RunGC() error
- func (m *MockTaskManager) Store(arg0 *Task)
- type MockTaskManagerMockRecorder
- func (mr *MockTaskManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) RunGC() *gomock.Call
- func (mr *MockTaskManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
- type Option
- type Peer
- func (p *Peer) Ancestors() []string
- func (p *Peer) AppendPieceCost(cost int64)
- func (p *Peer) DeleteChild(key string)
- func (p *Peer) DeleteParent()
- func (p *Peer) DeleteStream()
- func (p *Peer) Depth() int
- func (p *Peer) DownloadTinyFile() ([]byte, error)
- func (p *Peer) IsAncestor(descendant *Peer) bool
- func (p *Peer) IsDescendant(ancestor *Peer) bool
- func (p *Peer) LoadChild(key string) (*Peer, bool)
- func (p *Peer) LoadParent() (*Peer, bool)
- func (p *Peer) LoadStream() (scheduler.Scheduler_ReportPieceResultServer, bool)
- func (p *Peer) PieceCosts() []int64
- func (p *Peer) ReplaceParent(parent *Peer)
- func (p *Peer) StoreChild(child *Peer)
- func (p *Peer) StoreParent(parent *Peer)
- func (p *Peer) StoreStream(stream scheduler.Scheduler_ReportPieceResultServer)
- type PeerManager
- type PeerOption
- type Resource
- type SeedPeer
- type SeedPeerClient
- type Task
- func (t *Task) CanBackToSource() bool
- func (t *Task) DeletePeer(key string)
- func (t *Task) DeletePiece(key int32)
- func (t *Task) HasAvailablePeer() bool
- func (t *Task) IsSeedPeerFailed() bool
- func (t *Task) LoadOrStorePeer(peer *Peer) (*Peer, bool)
- func (t *Task) LoadOrStorePiece(piece *base.PieceInfo) (*base.PieceInfo, bool)
- func (t *Task) LoadPeer(key string) (*Peer, bool)
- func (t *Task) LoadPiece(key int32) (*base.PieceInfo, bool)
- func (t *Task) LoadSeedPeer() (*Peer, bool)
- func (t *Task) NotifyPeers(code base.Code, event string)
- func (t *Task) SizeScope() (base.SizeScope, error)
- func (t *Task) StorePeer(peer *Peer)
- func (t *Task) StorePiece(piece *base.PieceInfo)
- type TaskManager
Constants ¶
const ( // Peer has been created but did not start running. PeerStatePending = "Pending" // Peer successfully registered as tiny scope size. PeerStateReceivedTiny = "ReceivedTiny" // Peer successfully registered as small scope size. PeerStateReceivedSmall = "ReceivedSmall" // Peer successfully registered as normal scope size. PeerStateReceivedNormal = "ReceivedNormal" // Peer is downloading resources from peer. PeerStateRunning = "Running" // Peer is downloading resources from back-to-source. PeerStateBackToSource = "BackToSource" // Peer has been downloaded successfully. PeerStateSucceeded = "Succeeded" // Peer has been downloaded failed. PeerStateFailed = "Failed" // Peer has been left. PeerStateLeave = "Leave" )
const ( // Peer is registered as tiny scope size. PeerEventRegisterTiny = "RegisterTiny" // Peer is registered as small scope size. PeerEventRegisterSmall = "RegisterSmall" // Peer is registered as normal scope size. PeerEventRegisterNormal = "RegisterNormal" // Peer is downloading. PeerEventDownload = "Download" // Peer is downloading from back-to-source. PeerEventDownloadFromBackToSource = "DownloadFromBackToSource" // Peer downloaded successfully. PeerEventDownloadSucceeded = "DownloadSucceeded" // Peer downloaded failed. PeerEventDownloadFailed = "DownloadFailed" // Peer leaves. PeerEventLeave = "Leave" )
const ( // Tiny file size is 128 bytes. TinyFileSize = 128 // Peer failure limit in task. FailedPeerCountLimit = 200 )
const ( // TaskTypeNormal is normal type of task, // normal task is a normal p2p task. TaskTypeNormal = iota // TaskTypeDfcache is dfcache type of task, // dfcache task is a cache task, and the task url is fake url. // It can only be used for caching and cannot be downloaded back to source. TaskTypeDfcache )
const ( // Task has been created but did not start running. TaskStatePending = "Pending" // Task is downloading resources from seed peer or back-to-source. TaskStateRunning = "Running" // Task has been downloaded successfully. TaskStateSucceeded = "Succeeded" // Task has been downloaded failed. TaskStateFailed = "Failed" )
const ( // Task is downloading. TaskEventDownload = "Download" // Task downloaded successfully. TaskEventDownloadSucceeded = "DownloadSucceeded" // Task downloaded failed. TaskEventDownloadFailed = "DownloadFailed" )
const (
// Default value of biz tag.
DefaultBizTag = "unknow"
)
const (
// GC host id.
GCHostID = "host"
)
const (
// GC peer id.
GCPeerID = "peer"
)
const (
// GC task id.
GCTaskID = "task"
)
const (
// Default value of biz tag for seed peer.
SeedBizTag = "d7y/seed"
)
const ( // Default value of seed peer failed timeout. SeedPeerFailedTimeout = 30 * time.Minute )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Host ¶
type Host struct { // ID is host id. ID string // Type is host type. Type HostType // IP is host ip. IP string // Hostname is host name. Hostname string // Port is grpc service port. Port int32 // DownloadPort is piece downloading port. DownloadPort int32 // SecurityDomain is security domain of host. SecurityDomain string // IDC is internet data center of host. IDC string // NetTopology is network topology of host. // Example: switch|router|... NetTopology string // Location is location of host. // Example: country|province|... Location string // UploadLoadLimit is upload load limit count. UploadLoadLimit *atomic.Int32 // UploadPeerCount is upload peer count. UploadPeerCount *atomic.Int32 // Peer sync map. Peers *sync.Map // PeerCount is peer count. PeerCount *atomic.Int32 // CreateAt is host create time. CreateAt *atomic.Time // UpdateAt is host update time. UpdateAt *atomic.Time // Host log. Log *logger.SugaredLoggerOnWith }
func NewHost ¶
func NewHost(rawHost *scheduler.PeerHost, options ...HostOption) *Host
New host instance.
func (*Host) FreeUploadLoad ¶
FreeUploadLoad return free upload load of host.
func (*Host) LoadOrStorePeer ¶
LoadOrStorePeer returns peer the key if present. Otherwise, it stores and returns the given peer. The loaded result is true if the peer was loaded, false if stored.
type HostManager ¶
type HostManager interface { // Load returns host for a key. Load(string) (*Host, bool) // Store sets host. Store(*Host) // LoadOrStore returns host the key if present. // Otherwise, it stores and returns the given host. // The loaded result is true if the host was loaded, false if stored. LoadOrStore(*Host) (*Host, bool) // Delete deletes host for a key. Delete(string) // Try to reclaim host. RunGC() error }
type HostOption ¶
HostOption is a functional option for configuring the host.
func WithHostType ¶ added in v2.0.3
func WithHostType(hostType HostType) HostOption
WithHostType sets host's type.
func WithUploadLoadLimit ¶
func WithUploadLoadLimit(limit int32) HostOption
WithUploadLoadLimit sets host's UploadLoadLimit.
type MockHostManager ¶
type MockHostManager struct {
// contains filtered or unexported fields
}
MockHostManager is a mock of HostManager interface.
func NewMockHostManager ¶
func NewMockHostManager(ctrl *gomock.Controller) *MockHostManager
NewMockHostManager creates a new mock instance.
func (*MockHostManager) Delete ¶
func (m *MockHostManager) Delete(arg0 string)
Delete mocks base method.
func (*MockHostManager) EXPECT ¶
func (m *MockHostManager) EXPECT() *MockHostManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockHostManager) Load ¶
func (m *MockHostManager) Load(arg0 string) (*Host, bool)
Load mocks base method.
func (*MockHostManager) LoadOrStore ¶
func (m *MockHostManager) LoadOrStore(arg0 *Host) (*Host, bool)
LoadOrStore mocks base method.
func (*MockHostManager) Store ¶
func (m *MockHostManager) Store(arg0 *Host)
Store mocks base method.
type MockHostManagerMockRecorder ¶
type MockHostManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockHostManagerMockRecorder is the mock recorder for MockHostManager.
func (*MockHostManagerMockRecorder) Delete ¶
func (mr *MockHostManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
Delete indicates an expected call of Delete.
func (*MockHostManagerMockRecorder) Load ¶
func (mr *MockHostManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
Load indicates an expected call of Load.
func (*MockHostManagerMockRecorder) LoadOrStore ¶
func (mr *MockHostManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
LoadOrStore indicates an expected call of LoadOrStore.
func (*MockHostManagerMockRecorder) RunGC ¶
func (mr *MockHostManagerMockRecorder) RunGC() *gomock.Call
RunGC indicates an expected call of RunGC.
func (*MockHostManagerMockRecorder) Store ¶
func (mr *MockHostManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
Store indicates an expected call of Store.
type MockPeerManager ¶
type MockPeerManager struct {
// contains filtered or unexported fields
}
MockPeerManager is a mock of PeerManager interface.
func NewMockPeerManager ¶
func NewMockPeerManager(ctrl *gomock.Controller) *MockPeerManager
NewMockPeerManager creates a new mock instance.
func (*MockPeerManager) Delete ¶
func (m *MockPeerManager) Delete(arg0 string)
Delete mocks base method.
func (*MockPeerManager) EXPECT ¶
func (m *MockPeerManager) EXPECT() *MockPeerManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockPeerManager) Load ¶
func (m *MockPeerManager) Load(arg0 string) (*Peer, bool)
Load mocks base method.
func (*MockPeerManager) LoadOrStore ¶
func (m *MockPeerManager) LoadOrStore(arg0 *Peer) (*Peer, bool)
LoadOrStore mocks base method.
func (*MockPeerManager) Store ¶
func (m *MockPeerManager) Store(arg0 *Peer)
Store mocks base method.
type MockPeerManagerMockRecorder ¶
type MockPeerManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockPeerManagerMockRecorder is the mock recorder for MockPeerManager.
func (*MockPeerManagerMockRecorder) Delete ¶
func (mr *MockPeerManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
Delete indicates an expected call of Delete.
func (*MockPeerManagerMockRecorder) Load ¶
func (mr *MockPeerManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
Load indicates an expected call of Load.
func (*MockPeerManagerMockRecorder) LoadOrStore ¶
func (mr *MockPeerManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
LoadOrStore indicates an expected call of LoadOrStore.
func (*MockPeerManagerMockRecorder) RunGC ¶
func (mr *MockPeerManagerMockRecorder) RunGC() *gomock.Call
RunGC indicates an expected call of RunGC.
func (*MockPeerManagerMockRecorder) Store ¶
func (mr *MockPeerManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
Store indicates an expected call of Store.
type MockResource ¶
type MockResource struct {
// contains filtered or unexported fields
}
MockResource is a mock of Resource interface.
func NewMockResource ¶
func NewMockResource(ctrl *gomock.Controller) *MockResource
NewMockResource creates a new mock instance.
func (*MockResource) EXPECT ¶
func (m *MockResource) EXPECT() *MockResourceMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockResource) HostManager ¶
func (m *MockResource) HostManager() HostManager
HostManager mocks base method.
func (*MockResource) PeerManager ¶
func (m *MockResource) PeerManager() PeerManager
PeerManager mocks base method.
func (*MockResource) SeedPeer ¶ added in v2.0.3
func (m *MockResource) SeedPeer() SeedPeer
SeedPeer mocks base method.
func (*MockResource) TaskManager ¶
func (m *MockResource) TaskManager() TaskManager
TaskManager mocks base method.
type MockResourceMockRecorder ¶
type MockResourceMockRecorder struct {
// contains filtered or unexported fields
}
MockResourceMockRecorder is the mock recorder for MockResource.
func (*MockResourceMockRecorder) HostManager ¶
func (mr *MockResourceMockRecorder) HostManager() *gomock.Call
HostManager indicates an expected call of HostManager.
func (*MockResourceMockRecorder) PeerManager ¶
func (mr *MockResourceMockRecorder) PeerManager() *gomock.Call
PeerManager indicates an expected call of PeerManager.
func (*MockResourceMockRecorder) SeedPeer ¶ added in v2.0.3
func (mr *MockResourceMockRecorder) SeedPeer() *gomock.Call
SeedPeer indicates an expected call of SeedPeer.
func (*MockResourceMockRecorder) TaskManager ¶
func (mr *MockResourceMockRecorder) TaskManager() *gomock.Call
TaskManager indicates an expected call of TaskManager.
type MockSeedPeer ¶ added in v2.0.3
type MockSeedPeer struct {
// contains filtered or unexported fields
}
MockSeedPeer is a mock of SeedPeer interface.
func NewMockSeedPeer ¶ added in v2.0.3
func NewMockSeedPeer(ctrl *gomock.Controller) *MockSeedPeer
NewMockSeedPeer creates a new mock instance.
func (*MockSeedPeer) Client ¶ added in v2.0.3
func (m *MockSeedPeer) Client() SeedPeerClient
Client mocks base method.
func (*MockSeedPeer) EXPECT ¶ added in v2.0.3
func (m *MockSeedPeer) EXPECT() *MockSeedPeerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockSeedPeer) TriggerTask ¶ added in v2.0.3
func (m *MockSeedPeer) TriggerTask(arg0 context.Context, arg1 *Task) (*Peer, *scheduler.PeerResult, error)
TriggerTask mocks base method.
type MockSeedPeerClient ¶ added in v2.0.3
type MockSeedPeerClient struct {
// contains filtered or unexported fields
}
MockSeedPeerClient is a mock of SeedPeerClient interface.
func NewMockSeedPeerClient ¶ added in v2.0.3
func NewMockSeedPeerClient(ctrl *gomock.Controller) *MockSeedPeerClient
NewMockSeedPeerClient creates a new mock instance.
func (*MockSeedPeerClient) Close ¶ added in v2.0.3
func (m *MockSeedPeerClient) Close() error
Close mocks base method.
func (*MockSeedPeerClient) EXPECT ¶ added in v2.0.3
func (m *MockSeedPeerClient) EXPECT() *MockSeedPeerClientMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockSeedPeerClient) GetPieceTasks ¶ added in v2.0.3
func (m *MockSeedPeerClient) GetPieceTasks(ctx context.Context, addr dfnet.NetAddr, req *base.PieceTaskRequest, opts ...grpc.CallOption) (*base.PiecePacket, error)
GetPieceTasks mocks base method.
func (*MockSeedPeerClient) ObtainSeeds ¶ added in v2.0.3
func (m *MockSeedPeerClient) ObtainSeeds(ctx context.Context, sr *cdnsystem.SeedRequest, opts ...grpc.CallOption) (*client.PieceSeedStream, error)
ObtainSeeds mocks base method.
func (*MockSeedPeerClient) OnNotify ¶ added in v2.0.3
func (m *MockSeedPeerClient) OnNotify(arg0 *config.DynconfigData)
OnNotify mocks base method.
func (*MockSeedPeerClient) SyncPieceTasks ¶ added in v2.0.3
func (m *MockSeedPeerClient) SyncPieceTasks(ctx context.Context, addr dfnet.NetAddr, ptr *base.PieceTaskRequest, opts ...grpc.CallOption) (cdnsystem.Seeder_SyncPieceTasksClient, error)
SyncPieceTasks mocks base method.
func (*MockSeedPeerClient) UpdateState ¶ added in v2.0.3
func (m *MockSeedPeerClient) UpdateState(addrs []dfnet.NetAddr)
UpdateState mocks base method.
type MockSeedPeerClientMockRecorder ¶ added in v2.0.3
type MockSeedPeerClientMockRecorder struct {
// contains filtered or unexported fields
}
MockSeedPeerClientMockRecorder is the mock recorder for MockSeedPeerClient.
func (*MockSeedPeerClientMockRecorder) Close ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) Close() *gomock.Call
Close indicates an expected call of Close.
func (*MockSeedPeerClientMockRecorder) GetPieceTasks ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) GetPieceTasks(ctx, addr, req interface{}, opts ...interface{}) *gomock.Call
GetPieceTasks indicates an expected call of GetPieceTasks.
func (*MockSeedPeerClientMockRecorder) ObtainSeeds ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) ObtainSeeds(ctx, sr interface{}, opts ...interface{}) *gomock.Call
ObtainSeeds indicates an expected call of ObtainSeeds.
func (*MockSeedPeerClientMockRecorder) OnNotify ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) OnNotify(arg0 interface{}) *gomock.Call
OnNotify indicates an expected call of OnNotify.
func (*MockSeedPeerClientMockRecorder) SyncPieceTasks ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) SyncPieceTasks(ctx, addr, ptr interface{}, opts ...interface{}) *gomock.Call
SyncPieceTasks indicates an expected call of SyncPieceTasks.
func (*MockSeedPeerClientMockRecorder) UpdateState ¶ added in v2.0.3
func (mr *MockSeedPeerClientMockRecorder) UpdateState(addrs interface{}) *gomock.Call
UpdateState indicates an expected call of UpdateState.
type MockSeedPeerMockRecorder ¶ added in v2.0.3
type MockSeedPeerMockRecorder struct {
// contains filtered or unexported fields
}
MockSeedPeerMockRecorder is the mock recorder for MockSeedPeer.
func (*MockSeedPeerMockRecorder) Client ¶ added in v2.0.3
func (mr *MockSeedPeerMockRecorder) Client() *gomock.Call
Client indicates an expected call of Client.
func (*MockSeedPeerMockRecorder) TriggerTask ¶ added in v2.0.3
func (mr *MockSeedPeerMockRecorder) TriggerTask(arg0, arg1 interface{}) *gomock.Call
TriggerTask indicates an expected call of TriggerTask.
type MockTaskManager ¶
type MockTaskManager struct {
// contains filtered or unexported fields
}
MockTaskManager is a mock of TaskManager interface.
func NewMockTaskManager ¶
func NewMockTaskManager(ctrl *gomock.Controller) *MockTaskManager
NewMockTaskManager creates a new mock instance.
func (*MockTaskManager) Delete ¶
func (m *MockTaskManager) Delete(arg0 string)
Delete mocks base method.
func (*MockTaskManager) EXPECT ¶
func (m *MockTaskManager) EXPECT() *MockTaskManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockTaskManager) Load ¶
func (m *MockTaskManager) Load(arg0 string) (*Task, bool)
Load mocks base method.
func (*MockTaskManager) LoadOrStore ¶
func (m *MockTaskManager) LoadOrStore(arg0 *Task) (*Task, bool)
LoadOrStore mocks base method.
func (*MockTaskManager) Store ¶
func (m *MockTaskManager) Store(arg0 *Task)
Store mocks base method.
type MockTaskManagerMockRecorder ¶
type MockTaskManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockTaskManagerMockRecorder is the mock recorder for MockTaskManager.
func (*MockTaskManagerMockRecorder) Delete ¶
func (mr *MockTaskManagerMockRecorder) Delete(arg0 interface{}) *gomock.Call
Delete indicates an expected call of Delete.
func (*MockTaskManagerMockRecorder) Load ¶
func (mr *MockTaskManagerMockRecorder) Load(arg0 interface{}) *gomock.Call
Load indicates an expected call of Load.
func (*MockTaskManagerMockRecorder) LoadOrStore ¶
func (mr *MockTaskManagerMockRecorder) LoadOrStore(arg0 interface{}) *gomock.Call
LoadOrStore indicates an expected call of LoadOrStore.
func (*MockTaskManagerMockRecorder) RunGC ¶
func (mr *MockTaskManagerMockRecorder) RunGC() *gomock.Call
RunGC indicates an expected call of RunGC.
func (*MockTaskManagerMockRecorder) Store ¶
func (mr *MockTaskManagerMockRecorder) Store(arg0 interface{}) *gomock.Call
Store indicates an expected call of Store.
type Option ¶ added in v2.0.3
type Option func(task *Task)
Option is a functional option for task.
func WithBackToSourceLimit ¶ added in v2.0.3
WithBackToSourceLimit set BackToSourceLimit for task.
type Peer ¶
type Peer struct { // ID is peer id. ID string // BizTag is peer biz tag. BizTag string // Pieces is piece bitset. Pieces *bitset.BitSet // Stream is grpc stream instance. Stream *atomic.Value // Task state machine. FSM *fsm.FSM // Task is peer task. Task *Task // Host is peer host. Host *Host // Parent is peer parent. Parent *atomic.Value // Children is peer children. Children *sync.Map // ChildCount is child count. ChildCount *atomic.Int32 // StealPeers is steal peer ids. StealPeers set.SafeSet // BlockPeers is bad peer ids. BlockPeers set.SafeSet // NeedBackToSource needs downloaded from source. // // When peer is registering, at the same time, // scheduler needs to create the new corresponding task and the seed peer is disabled, // NeedBackToSource is set to true. NeedBackToSource *atomic.Bool // IsBackToSource is downloaded from source. // // When peer is scheduling and NeedBackToSource is true, // scheduler needs to return Code_SchedNeedBackSource and // IsBackToSource is set to true. IsBackToSource *atomic.Bool // CreateAt is peer create time. CreateAt *atomic.Time // UpdateAt is peer update time. UpdateAt *atomic.Time // Peer log. Log *logger.SugaredLoggerOnWith // contains filtered or unexported fields }
func NewPeer ¶
func NewPeer(id string, task *Task, host *Host, options ...PeerOption) *Peer
New Peer instance.
func (*Peer) AppendPieceCost ¶
AppendPieceCost append piece cost to costs slice.
func (*Peer) DeleteChild ¶
DeleteChild deletes peer child for a key.
func (*Peer) DownloadTinyFile ¶
DownloadTinyFile downloads tiny file from peer.
func (*Peer) IsAncestor ¶
IsAncestor determines whether it is descendant of peer.
func (*Peer) IsDescendant ¶
IsDescendant determines whether it is ancestor of peer.
func (*Peer) LoadStream ¶
func (p *Peer) LoadStream() (scheduler.Scheduler_ReportPieceResultServer, bool)
LoadStream return grpc stream.
func (*Peer) ReplaceParent ¶
ReplaceParent replaces peer parent.
func (*Peer) StoreStream ¶
func (p *Peer) StoreStream(stream scheduler.Scheduler_ReportPieceResultServer)
StoreStream set grpc stream.
type PeerManager ¶
type PeerManager interface { // Load returns peer for a key. Load(string) (*Peer, bool) // Store sets peer. Store(*Peer) // LoadOrStore returns peer the key if present. // Otherwise, it stores and returns the given peer. // The loaded result is true if the peer was loaded, false if stored. LoadOrStore(*Peer) (*Peer, bool) // Delete deletes peer for a key. Delete(string) // Try to reclaim peer. RunGC() error }
type PeerOption ¶
PeerOption is a functional option for configuring the peer.
type Resource ¶
type Resource interface { // SeedPeer interface. SeedPeer() SeedPeer // Host manager interface. HostManager() HostManager // Peer manager interface. PeerManager() PeerManager // Task manager interface. TaskManager() TaskManager }
type SeedPeer ¶ added in v2.0.3
type SeedPeer interface { // TriggerTask triggers the seed peer to download the task. TriggerTask(context.Context, *Task) (*Peer, *rpcscheduler.PeerResult, error) // Client returns grpc client of seed peer. Client() SeedPeerClient }
type SeedPeerClient ¶ added in v2.0.3
type Task ¶
type Task struct { // ID is task id. ID string // URL is task download url. URL string // Type is task type. Type int // URLMeta is task download url meta. URLMeta *base.UrlMeta // DirectPiece is tiny piece data. DirectPiece []byte // ContentLength is task total content length. ContentLength *atomic.Int64 // TotalPieceCount is total piece count. TotalPieceCount *atomic.Int32 // BackToSourceLimit is back-to-source limit. BackToSourceLimit *atomic.Int32 // BackToSourcePeers is back-to-source sync map. BackToSourcePeers set.SafeSet // Task state machine. FSM *fsm.FSM // Piece sync map. Pieces *sync.Map // Peer sync map. Peers *sync.Map // PeerCount is peer count. PeerCount *atomic.Int32 // PeerFailedCount is peer failed count, // if one peer succeeds, the value is reset to zero. PeerFailedCount *atomic.Int32 // CreateAt is task create time. CreateAt *atomic.Time // UpdateAt is task update time. UpdateAt *atomic.Time // Task log. Log *logger.SugaredLoggerOnWith }
func (*Task) CanBackToSource ¶
CanBackToSource represents whether peer can back-to-source.
func (*Task) DeletePiece ¶
DeletePiece deletes piece for a key.
func (*Task) HasAvailablePeer ¶
HasAvailablePeer returns whether there is an available peer.
func (*Task) IsSeedPeerFailed ¶ added in v2.0.3
IsSeedPeerFailed returns whether the seed peer in the task failed.
func (*Task) LoadOrStorePeer ¶
LoadOrStorePeer returns peer the key if present. Otherwise, it stores and returns the given peer. The loaded result is true if the peer was loaded, false if stored.
func (*Task) LoadOrStorePiece ¶
LoadOrStorePiece returns piece the key if present. Otherwise, it stores and returns the given piece. The loaded result is true if the piece was loaded, false if stored.
func (*Task) LoadSeedPeer ¶ added in v2.0.3
LoadSeedPeer return latest seed peer in peers sync map.
func (*Task) NotifyPeers ¶
NotifyPeers notify all peers in the task with the state code.
type TaskManager ¶
type TaskManager interface { // Load returns task for a key. Load(string) (*Task, bool) // Store sets task. Store(*Task) // LoadOrStore returns task the key if present. // Otherwise, it stores and returns the given task. // The loaded result is true if the task was loaded, false if stored. LoadOrStore(*Task) (*Task, bool) // Delete deletes task for a key. Delete(string) // Try to reclaim task. RunGC() error }