Documentation ¶
Overview ¶
Package peer is a generated GoMock package.
Package peer is a generated GoMock package.
Index ¶
- func WithCalculateDigest(enable bool) func(*pieceManager)
- func WithConcurrentOption(opt *config.ConcurrentOption) func(*pieceManager)
- func WithLimiter(limiter *rate.Limiter) func(*pieceManager)
- func WithTransport(rt http.RoundTripper) func(*pieceDownloader) error
- func WithTransportOption(opt *config.TransportOption) func(*pieceManager)
- type Bitmap
- type DownloadPieceRequest
- type DownloadPieceResult
- type FileTask
- type FileTaskProgress
- type FileTaskRequest
- type IDGenerator
- type Logger
- type MockLogger
- type MockLoggerMockRecorder
- type MockPieceDownloader
- type MockPieceDownloaderMockRecorder
- type MockTask
- func (m *MockTask) AddTraffic(arg0 uint64)
- func (m *MockTask) Context() context.Context
- func (m *MockTask) EXPECT() *MockTaskMockRecorder
- func (m *MockTask) GetContentLength() int64
- func (m *MockTask) GetPeerID() string
- func (m *MockTask) GetPieceMd5Sign() string
- func (m *MockTask) GetStorage() storage.TaskStorageDriver
- func (m *MockTask) GetTaskID() string
- func (m *MockTask) GetTotalPieces() int32
- func (m *MockTask) GetTraffic() uint64
- func (m *MockTask) Log() *dflog.SugaredLoggerOnWith
- func (m *MockTask) PublishPieceInfo(pieceNum int32, size uint32)
- func (m *MockTask) ReportPieceResult(request *DownloadPieceRequest, result *DownloadPieceResult, err error)
- func (m *MockTask) SetContentLength(arg0 int64)
- func (m *MockTask) SetPieceMd5Sign(arg0 string)
- func (m *MockTask) SetTotalPieces(arg0 int32)
- type MockTaskManager
- func (m *MockTaskManager) AnnouncePeerTask(ctx context.Context, meta storage.PeerTaskMetadata, url string, ...) error
- func (m *MockTaskManager) EXPECT() *MockTaskManagerMockRecorder
- func (m *MockTaskManager) GetPieceManager() PieceManager
- func (m *MockTaskManager) IsPeerTaskRunning(taskID string) (Task, bool)
- func (m *MockTaskManager) StartFileTask(ctx context.Context, req *FileTaskRequest) (chan *FileTaskProgress, *TinyData, error)
- func (m *MockTaskManager) StartSeedTask(ctx context.Context, req *SeedTaskRequest) (*SeedTaskResponse, bool, error)
- func (m *MockTaskManager) StartStreamTask(ctx context.Context, req *StreamTaskRequest) (io.ReadCloser, map[string]string, error)
- func (m *MockTaskManager) StatTask(ctx context.Context, taskID string) (*scheduler.Task, error)
- func (m *MockTaskManager) Stop(ctx context.Context) error
- func (m *MockTaskManager) Subscribe(request *base.PieceTaskRequest) (*SubscribeResponse, bool)
- type MockTaskManagerMockRecorder
- func (mr *MockTaskManagerMockRecorder) AnnouncePeerTask(ctx, meta, url, taskType, urlMeta interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) GetPieceManager() *gomock.Call
- func (mr *MockTaskManagerMockRecorder) IsPeerTaskRunning(taskID interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) StartFileTask(ctx, req interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) StartSeedTask(ctx, req interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) StartStreamTask(ctx, req interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) StatTask(ctx, taskID interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) Stop(ctx interface{}) *gomock.Call
- func (mr *MockTaskManagerMockRecorder) Subscribe(request interface{}) *gomock.Call
- type MockTaskMockRecorder
- func (mr *MockTaskMockRecorder) AddTraffic(arg0 interface{}) *gomock.Call
- func (mr *MockTaskMockRecorder) Context() *gomock.Call
- func (mr *MockTaskMockRecorder) GetContentLength() *gomock.Call
- func (mr *MockTaskMockRecorder) GetPeerID() *gomock.Call
- func (mr *MockTaskMockRecorder) GetPieceMd5Sign() *gomock.Call
- func (mr *MockTaskMockRecorder) GetStorage() *gomock.Call
- func (mr *MockTaskMockRecorder) GetTaskID() *gomock.Call
- func (mr *MockTaskMockRecorder) GetTotalPieces() *gomock.Call
- func (mr *MockTaskMockRecorder) GetTraffic() *gomock.Call
- func (mr *MockTaskMockRecorder) Log() *gomock.Call
- func (mr *MockTaskMockRecorder) PublishPieceInfo(pieceNum, size interface{}) *gomock.Call
- func (mr *MockTaskMockRecorder) ReportPieceResult(request, result, err interface{}) *gomock.Call
- func (mr *MockTaskMockRecorder) SetContentLength(arg0 interface{}) *gomock.Call
- func (mr *MockTaskMockRecorder) SetPieceMd5Sign(arg0 interface{}) *gomock.Call
- func (mr *MockTaskMockRecorder) SetTotalPieces(arg0 interface{}) *gomock.Call
- type PieceDownloader
- type PieceInfo
- type PieceManager
- type ProgressState
- type SeedTask
- type SeedTaskProgress
- type SeedTaskRequest
- type SeedTaskResponse
- type StreamTask
- type StreamTaskRequest
- type SubscribeResponse
- type Task
- type TaskManager
- type TinyData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithCalculateDigest ¶
func WithCalculateDigest(enable bool) func(*pieceManager)
func WithConcurrentOption ¶ added in v2.0.5
func WithConcurrentOption(opt *config.ConcurrentOption) func(*pieceManager)
func WithLimiter ¶
WithLimiter sets upload rate limiter, the burst size must be bigger than piece size
func WithTransport ¶
func WithTransport(rt http.RoundTripper) func(*pieceDownloader) error
func WithTransportOption ¶ added in v2.0.1
func WithTransportOption(opt *config.TransportOption) func(*pieceManager)
Types ¶
type Bitmap ¶
type Bitmap struct {
// contains filtered or unexported fields
}
func NewBitmapWithCap ¶
type DownloadPieceRequest ¶
type DownloadPieceResult ¶ added in v2.0.2
type FileTask ¶ added in v2.0.2
type FileTask interface {
Start(ctx context.Context) (chan *FileTaskProgress, error)
}
FileTask represents a peer task to download a file
type FileTaskProgress ¶ added in v2.0.2
type FileTaskRequest ¶ added in v2.0.2
type IDGenerator ¶ added in v2.0.2
type IDGenerator interface {
PeerID() string
}
func NewPeerIDGenerator ¶ added in v2.0.2
func NewPeerIDGenerator(ip string) IDGenerator
type Logger ¶ added in v2.0.2
type Logger interface {
Log() *logger.SugaredLoggerOnWith
}
type MockLogger ¶ added in v2.0.4
type MockLogger struct {
// contains filtered or unexported fields
}
MockLogger is a mock of Logger interface.
func NewMockLogger ¶ added in v2.0.4
func NewMockLogger(ctrl *gomock.Controller) *MockLogger
NewMockLogger creates a new mock instance.
func (*MockLogger) EXPECT ¶ added in v2.0.4
func (m *MockLogger) EXPECT() *MockLoggerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockLogger) Log ¶ added in v2.0.4
func (m *MockLogger) Log() *dflog.SugaredLoggerOnWith
Log mocks base method.
type MockLoggerMockRecorder ¶ added in v2.0.4
type MockLoggerMockRecorder struct {
// contains filtered or unexported fields
}
MockLoggerMockRecorder is the mock recorder for MockLogger.
func (*MockLoggerMockRecorder) Log ¶ added in v2.0.4
func (mr *MockLoggerMockRecorder) Log() *gomock.Call
Log indicates an expected call of Log.
type MockPieceDownloader ¶ added in v2.0.4
type MockPieceDownloader struct {
// contains filtered or unexported fields
}
MockPieceDownloader is a mock of PieceDownloader interface.
func NewMockPieceDownloader ¶ added in v2.0.4
func NewMockPieceDownloader(ctrl *gomock.Controller) *MockPieceDownloader
NewMockPieceDownloader creates a new mock instance.
func (*MockPieceDownloader) DownloadPiece ¶ added in v2.0.4
func (m *MockPieceDownloader) DownloadPiece(arg0 context.Context, arg1 *DownloadPieceRequest) (io.Reader, io.Closer, error)
DownloadPiece mocks base method.
func (*MockPieceDownloader) EXPECT ¶ added in v2.0.4
func (m *MockPieceDownloader) EXPECT() *MockPieceDownloaderMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockPieceDownloaderMockRecorder ¶ added in v2.0.4
type MockPieceDownloaderMockRecorder struct {
// contains filtered or unexported fields
}
MockPieceDownloaderMockRecorder is the mock recorder for MockPieceDownloader.
func (*MockPieceDownloaderMockRecorder) DownloadPiece ¶ added in v2.0.4
func (mr *MockPieceDownloaderMockRecorder) DownloadPiece(arg0, arg1 interface{}) *gomock.Call
DownloadPiece indicates an expected call of DownloadPiece.
type MockTask ¶ added in v2.0.4
type MockTask struct {
// contains filtered or unexported fields
}
MockTask is a mock of Task interface.
func NewMockTask ¶ added in v2.0.4
func NewMockTask(ctrl *gomock.Controller) *MockTask
NewMockTask creates a new mock instance.
func (*MockTask) AddTraffic ¶ added in v2.0.4
AddTraffic mocks base method.
func (*MockTask) EXPECT ¶ added in v2.0.4
func (m *MockTask) EXPECT() *MockTaskMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockTask) GetContentLength ¶ added in v2.0.4
GetContentLength mocks base method.
func (*MockTask) GetPieceMd5Sign ¶ added in v2.0.4
GetPieceMd5Sign mocks base method.
func (*MockTask) GetStorage ¶ added in v2.0.4
func (m *MockTask) GetStorage() storage.TaskStorageDriver
GetStorage mocks base method.
func (*MockTask) GetTotalPieces ¶ added in v2.0.4
GetTotalPieces mocks base method.
func (*MockTask) GetTraffic ¶ added in v2.0.4
GetTraffic mocks base method.
func (*MockTask) Log ¶ added in v2.0.4
func (m *MockTask) Log() *dflog.SugaredLoggerOnWith
Log mocks base method.
func (*MockTask) PublishPieceInfo ¶ added in v2.0.4
PublishPieceInfo mocks base method.
func (*MockTask) ReportPieceResult ¶ added in v2.0.4
func (m *MockTask) ReportPieceResult(request *DownloadPieceRequest, result *DownloadPieceResult, err error)
ReportPieceResult mocks base method.
func (*MockTask) SetContentLength ¶ added in v2.0.4
SetContentLength mocks base method.
func (*MockTask) SetPieceMd5Sign ¶ added in v2.0.4
SetPieceMd5Sign mocks base method.
func (*MockTask) SetTotalPieces ¶ added in v2.0.4
SetTotalPieces mocks base method.
type MockTaskManager ¶ added in v2.0.4
type MockTaskManager struct {
// contains filtered or unexported fields
}
MockTaskManager is a mock of TaskManager interface.
func NewMockTaskManager ¶ added in v2.0.4
func NewMockTaskManager(ctrl *gomock.Controller) *MockTaskManager
NewMockTaskManager creates a new mock instance.
func (*MockTaskManager) AnnouncePeerTask ¶ added in v2.0.4
func (m *MockTaskManager) AnnouncePeerTask(ctx context.Context, meta storage.PeerTaskMetadata, url string, taskType base.TaskType, urlMeta *base.UrlMeta) error
AnnouncePeerTask mocks base method.
func (*MockTaskManager) EXPECT ¶ added in v2.0.4
func (m *MockTaskManager) EXPECT() *MockTaskManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockTaskManager) GetPieceManager ¶ added in v2.0.4
func (m *MockTaskManager) GetPieceManager() PieceManager
GetPieceManager mocks base method.
func (*MockTaskManager) IsPeerTaskRunning ¶ added in v2.0.4
func (m *MockTaskManager) IsPeerTaskRunning(taskID string) (Task, bool)
IsPeerTaskRunning mocks base method.
func (*MockTaskManager) StartFileTask ¶ added in v2.0.4
func (m *MockTaskManager) StartFileTask(ctx context.Context, req *FileTaskRequest) (chan *FileTaskProgress, *TinyData, error)
StartFileTask mocks base method.
func (*MockTaskManager) StartSeedTask ¶ added in v2.0.4
func (m *MockTaskManager) StartSeedTask(ctx context.Context, req *SeedTaskRequest) (*SeedTaskResponse, bool, error)
StartSeedTask mocks base method.
func (*MockTaskManager) StartStreamTask ¶ added in v2.0.4
func (m *MockTaskManager) StartStreamTask(ctx context.Context, req *StreamTaskRequest) (io.ReadCloser, map[string]string, error)
StartStreamTask mocks base method.
func (*MockTaskManager) Stop ¶ added in v2.0.4
func (m *MockTaskManager) Stop(ctx context.Context) error
Stop mocks base method.
func (*MockTaskManager) Subscribe ¶ added in v2.0.4
func (m *MockTaskManager) Subscribe(request *base.PieceTaskRequest) (*SubscribeResponse, bool)
Subscribe mocks base method.
type MockTaskManagerMockRecorder ¶ added in v2.0.4
type MockTaskManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockTaskManagerMockRecorder is the mock recorder for MockTaskManager.
func (*MockTaskManagerMockRecorder) AnnouncePeerTask ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) AnnouncePeerTask(ctx, meta, url, taskType, urlMeta interface{}) *gomock.Call
AnnouncePeerTask indicates an expected call of AnnouncePeerTask.
func (*MockTaskManagerMockRecorder) GetPieceManager ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) GetPieceManager() *gomock.Call
GetPieceManager indicates an expected call of GetPieceManager.
func (*MockTaskManagerMockRecorder) IsPeerTaskRunning ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) IsPeerTaskRunning(taskID interface{}) *gomock.Call
IsPeerTaskRunning indicates an expected call of IsPeerTaskRunning.
func (*MockTaskManagerMockRecorder) StartFileTask ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) StartFileTask(ctx, req interface{}) *gomock.Call
StartFileTask indicates an expected call of StartFileTask.
func (*MockTaskManagerMockRecorder) StartSeedTask ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) StartSeedTask(ctx, req interface{}) *gomock.Call
StartSeedTask indicates an expected call of StartSeedTask.
func (*MockTaskManagerMockRecorder) StartStreamTask ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) StartStreamTask(ctx, req interface{}) *gomock.Call
StartStreamTask indicates an expected call of StartStreamTask.
func (*MockTaskManagerMockRecorder) StatTask ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) StatTask(ctx, taskID interface{}) *gomock.Call
StatTask indicates an expected call of StatTask.
func (*MockTaskManagerMockRecorder) Stop ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) Stop(ctx interface{}) *gomock.Call
Stop indicates an expected call of Stop.
func (*MockTaskManagerMockRecorder) Subscribe ¶ added in v2.0.4
func (mr *MockTaskManagerMockRecorder) Subscribe(request interface{}) *gomock.Call
Subscribe indicates an expected call of Subscribe.
type MockTaskMockRecorder ¶ added in v2.0.4
type MockTaskMockRecorder struct {
// contains filtered or unexported fields
}
MockTaskMockRecorder is the mock recorder for MockTask.
func (*MockTaskMockRecorder) AddTraffic ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) AddTraffic(arg0 interface{}) *gomock.Call
AddTraffic indicates an expected call of AddTraffic.
func (*MockTaskMockRecorder) Context ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) Context() *gomock.Call
Context indicates an expected call of Context.
func (*MockTaskMockRecorder) GetContentLength ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetContentLength() *gomock.Call
GetContentLength indicates an expected call of GetContentLength.
func (*MockTaskMockRecorder) GetPeerID ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetPeerID() *gomock.Call
GetPeerID indicates an expected call of GetPeerID.
func (*MockTaskMockRecorder) GetPieceMd5Sign ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetPieceMd5Sign() *gomock.Call
GetPieceMd5Sign indicates an expected call of GetPieceMd5Sign.
func (*MockTaskMockRecorder) GetStorage ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetStorage() *gomock.Call
GetStorage indicates an expected call of GetStorage.
func (*MockTaskMockRecorder) GetTaskID ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetTaskID() *gomock.Call
GetTaskID indicates an expected call of GetTaskID.
func (*MockTaskMockRecorder) GetTotalPieces ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetTotalPieces() *gomock.Call
GetTotalPieces indicates an expected call of GetTotalPieces.
func (*MockTaskMockRecorder) GetTraffic ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) GetTraffic() *gomock.Call
GetTraffic indicates an expected call of GetTraffic.
func (*MockTaskMockRecorder) Log ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) Log() *gomock.Call
Log indicates an expected call of Log.
func (*MockTaskMockRecorder) PublishPieceInfo ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) PublishPieceInfo(pieceNum, size interface{}) *gomock.Call
PublishPieceInfo indicates an expected call of PublishPieceInfo.
func (*MockTaskMockRecorder) ReportPieceResult ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) ReportPieceResult(request, result, err interface{}) *gomock.Call
ReportPieceResult indicates an expected call of ReportPieceResult.
func (*MockTaskMockRecorder) SetContentLength ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) SetContentLength(arg0 interface{}) *gomock.Call
SetContentLength indicates an expected call of SetContentLength.
func (*MockTaskMockRecorder) SetPieceMd5Sign ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) SetPieceMd5Sign(arg0 interface{}) *gomock.Call
SetPieceMd5Sign indicates an expected call of SetPieceMd5Sign.
func (*MockTaskMockRecorder) SetTotalPieces ¶ added in v2.0.4
func (mr *MockTaskMockRecorder) SetTotalPieces(arg0 interface{}) *gomock.Call
SetTotalPieces indicates an expected call of SetTotalPieces.
type PieceDownloader ¶
type PieceDownloader interface {
DownloadPiece(context.Context, *DownloadPieceRequest) (io.Reader, io.Closer, error)
}
func NewPieceDownloader ¶
func NewPieceDownloader(timeout time.Duration, opts ...func(*pieceDownloader) error) (PieceDownloader, error)
type PieceManager ¶
type PieceManager interface { DownloadSource(ctx context.Context, pt Task, request *scheduler.PeerTaskRequest, parsedRange *clientutil.Range) error DownloadPiece(ctx context.Context, request *DownloadPieceRequest) (*DownloadPieceResult, error) ImportFile(ctx context.Context, ptm storage.PeerTaskMetadata, tsd storage.TaskStorageDriver, req *dfdaemon.ImportTaskRequest) error Import(ctx context.Context, ptm storage.PeerTaskMetadata, tsd storage.TaskStorageDriver, contentLength int64, reader io.Reader) error }
func NewPieceManager ¶
func NewPieceManager(pieceDownloadTimeout time.Duration, opts ...func(*pieceManager)) (PieceManager, error)
type SeedTask ¶ added in v2.0.3
type SeedTask interface {
Start(ctx context.Context) (chan *SeedTaskProgress, error)
}
SeedTask represents a seed peer task
type SeedTaskProgress ¶ added in v2.0.3
type SeedTaskRequest ¶ added in v2.0.3
type SeedTaskResponse ¶ added in v2.0.3
type StreamTask ¶ added in v2.0.2
type StreamTask interface { // Start starts the special peer task, return an io.Reader for stream io // when all data transferred, reader return an io.EOF // attribute stands some extra data, like HTTP response Header Start(ctx context.Context) (rc io.ReadCloser, attribute map[string]string, err error) }
StreamTask represents a peer task with stream io for reading directly without once more disk io
type StreamTaskRequest ¶ added in v2.0.2
type SubscribeResponse ¶ added in v2.0.3
type SubscribeResponse struct { Storage storage.TaskStorageDriver PieceInfoChannel chan *PieceInfo Success chan struct{} Fail chan struct{} }
type Task ¶
type Task interface { Logger Context() context.Context Log() *logger.SugaredLoggerOnWith GetStorage() storage.TaskStorageDriver GetPeerID() string GetTaskID() string GetTotalPieces() int32 SetTotalPieces(int32) GetContentLength() int64 SetContentLength(int64) AddTraffic(uint64) GetTraffic() uint64 SetPieceMd5Sign(string) GetPieceMd5Sign() string PublishPieceInfo(pieceNum int32, size uint32) ReportPieceResult(request *DownloadPieceRequest, result *DownloadPieceResult, err error) }
Task represents common interface to operate a peer task
type TaskManager ¶
type TaskManager interface { // StartFileTask starts a peer task to download a file // return a progress channel for request download progress // tiny stands task file is tiny and task is done StartFileTask(ctx context.Context, req *FileTaskRequest) ( progress chan *FileTaskProgress, tiny *TinyData, err error) // StartStreamTask starts a peer task with stream io StartStreamTask(ctx context.Context, req *StreamTaskRequest) ( readCloser io.ReadCloser, attribute map[string]string, err error) // StartSeedTask starts a seed peer task StartSeedTask(ctx context.Context, req *SeedTaskRequest) ( seedTaskResult *SeedTaskResponse, reuse bool, err error) Subscribe(request *base.PieceTaskRequest) (*SubscribeResponse, bool) IsPeerTaskRunning(taskID string) (Task, bool) // StatTask checks whether the given task exists in P2P network StatTask(ctx context.Context, taskID string) (*scheduler.Task, error) // AnnouncePeerTask announces peer task info to P2P network AnnouncePeerTask(ctx context.Context, meta storage.PeerTaskMetadata, url string, taskType base.TaskType, urlMeta *base.UrlMeta) error GetPieceManager() PieceManager // Stop stops the PeerTaskManager Stop(ctx context.Context) error }
TaskManager processes all peer tasks request
func NewPeerTaskManager ¶
func NewPeerTaskManager( host *scheduler.PeerHost, pieceManager PieceManager, storageManager storage.Manager, schedulerClient schedulerclient.Client, schedulerOption config.SchedulerOption, perPeerRateLimit rate.Limit, multiplex bool, prefetch bool, calculateDigest bool, getPiecesMaxRetry int, watchdog time.Duration) (TaskManager, error)
Source Files ¶
- peerid_generator.go
- peertask_bitmap.go
- peertask_conductor.go
- peertask_dummy.go
- peertask_file.go
- peertask_manager.go
- peertask_manager_mock.go
- peertask_piecetask_poller.go
- peertask_piecetask_synchronizer.go
- peertask_reuse.go
- peertask_seed.go
- peertask_stream.go
- piece_broker.go
- piece_downloader.go
- piece_downloader_mock.go
- piece_manager.go