Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseInfo ¶
type BaseInfo struct { // the url of seed file. URL string // the taskID of seed file. TaskID string // the header of seed file. Header map[string][]string // URL may contains some changeful query parameters such as authentication parameters. Dragonfly will // filter these parameter via 'filter'. The usage of it is that different URL may generate the same // download url. Filters []string // the full length of seed file. FullLength int64 // Seed will download data from rss which is divided by blocks. // And block size is defined by BlockOrder. It should be limited [10, 31]. BlockOrder uint32 // expire time duration of seed file. ExpireTimeDur time.Duration }
BaseInfo describes the base info of seed.
type Manager ¶
type Manager interface { // Register a seed. Register(key string, info BaseInfo) (Seed, error) // UnRegister seed by key. UnRegister(key string) error // RefreshExpireTime refreshes expire time of seed. RefreshExpireTime(key string, expireTimeDur time.Duration) error // NotifyExpired get the expired chan of seed, it will be notified if seed expired. NotifyExpired(key string) (<-chan struct{}, error) // Prefetch will add seed to the prefetch list, and then prefetch by the concurrent limit. Prefetch(key string, perDownloadSize int64) (<-chan struct{}, error) // GetPrefetchResult should be called after notify by prefetch chan. GetPrefetchResult(key string) (PreFetchResult, error) // SetPrefetchLimit limits the concurrency of prefetching seed. // Default is defaultDownloadConcurrency. SetConcurrentLimit(limit int) (validLimit int) // Get gets the seed by key. Get(key string) (Seed, error) // List lists the seeds. List() ([]Seed, error) // Stop stops the SeedManager. Stop() }
Manager is an interface which manages the seeds.
type PreFetchResult ¶
type PreFetchResult struct { Success bool Err error // if canceled, caller need not to do other. Canceled bool }
PreFetchResult shows the result of prefetch.
type Seed ¶
type Seed interface { // Prefetch will start to download seed file to local cache. Prefetch(perDownloadSize int64) (<-chan struct{}, error) // GetPrefetchResult should be called after notify by prefetch chan. GetPrefetchResult() (PreFetchResult, error) // Delete will delete the local cache and release the resource. Delete() error // Download providers the range download, if local cache of seed do not include the range, // it will download the range data from rss and reply to request. Download(off int64, size int64) (io.ReadCloser, error) // stop the internal loop and release execution resource. Stop() // GetFullSize gets the full size of seed file. GetFullSize() int64 // GetStatus gets the status of seed file. GetStatus() string // GetURL gets the url of seed file. GetURL() string // GetHeaders gets the headers of seed file. GetHeaders() map[string][]string // GetHeaders gets the taskID of seed file. GetTaskID() string }
Seed describes the seed file which represents the resource file defined by taskUrl.
Click to show internal directories.
Click to hide internal directories.