mirror of
https://gitee.com/zhangsken/aliyunpan.git
synced 2026-10-16 10:29:42 +08:00
init project
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
// Copyright (c) 2020 tickstep.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
package downloader
|
||||
|
||||
import (
|
||||
"github.com/tickstep/aliyunpan/library/requester/transfer"
|
||||
)
|
||||
|
||||
type (
|
||||
//WorkerStatuser 状态
|
||||
WorkerStatuser interface {
|
||||
StatusCode() StatusCode //状态码
|
||||
StatusText() string
|
||||
}
|
||||
|
||||
//StatusCode 状态码
|
||||
StatusCode int
|
||||
|
||||
//WorkerStatus worker状态
|
||||
WorkerStatus struct {
|
||||
statusCode StatusCode
|
||||
}
|
||||
|
||||
// DownloadStatusFunc 下载状态处理函数
|
||||
DownloadStatusFunc func(status transfer.DownloadStatuser, workersCallback func(RangeWorkerFunc))
|
||||
)
|
||||
|
||||
const (
|
||||
//StatusCodeInit 初始化
|
||||
StatusCodeInit StatusCode = iota
|
||||
//StatusCodeSuccessed 成功
|
||||
StatusCodeSuccessed
|
||||
//StatusCodePending 等待响应
|
||||
StatusCodePending
|
||||
//StatusCodeDownloading 下载中
|
||||
StatusCodeDownloading
|
||||
//StatusCodeWaitToWrite 等待写入数据
|
||||
StatusCodeWaitToWrite
|
||||
//StatusCodeInternalError 内部错误
|
||||
StatusCodeInternalError
|
||||
//StatusCodeTooManyConnections 连接数太多
|
||||
StatusCodeTooManyConnections
|
||||
//StatusCodeNetError 网络错误
|
||||
StatusCodeNetError
|
||||
//StatusCodeFailed 下载失败
|
||||
StatusCodeFailed
|
||||
//StatusCodePaused 已暂停
|
||||
StatusCodePaused
|
||||
//StatusCodeReseted 已重设连接
|
||||
StatusCodeReseted
|
||||
//StatusCodeCanceled 已取消
|
||||
StatusCodeCanceled
|
||||
//StatusCodeDownloadUrlExpired 下载链接已过期
|
||||
StatusCodeDownloadUrlExpired
|
||||
)
|
||||
|
||||
//GetStatusText 根据状态码获取状态信息
|
||||
func GetStatusText(sc StatusCode) string {
|
||||
switch sc {
|
||||
case StatusCodeInit:
|
||||
return "初始化"
|
||||
case StatusCodeSuccessed:
|
||||
return "成功"
|
||||
case StatusCodePending:
|
||||
return "等待响应"
|
||||
case StatusCodeDownloading:
|
||||
return "下载中"
|
||||
case StatusCodeWaitToWrite:
|
||||
return "等待写入数据"
|
||||
case StatusCodeInternalError:
|
||||
return "内部错误"
|
||||
case StatusCodeTooManyConnections:
|
||||
return "连接数太多"
|
||||
case StatusCodeNetError:
|
||||
return "网络错误"
|
||||
case StatusCodeFailed:
|
||||
return "下载失败"
|
||||
case StatusCodePaused:
|
||||
return "已暂停"
|
||||
case StatusCodeReseted:
|
||||
return "已重设连接"
|
||||
case StatusCodeCanceled:
|
||||
return "已取消"
|
||||
default:
|
||||
return "未知状态码"
|
||||
}
|
||||
}
|
||||
|
||||
//NewWorkerStatus 初始化WorkerStatus
|
||||
func NewWorkerStatus() *WorkerStatus {
|
||||
return &WorkerStatus{
|
||||
statusCode: StatusCodeInit,
|
||||
}
|
||||
}
|
||||
|
||||
//SetStatusCode 设置worker状态码
|
||||
func (ws *WorkerStatus) SetStatusCode(sc StatusCode) {
|
||||
ws.statusCode = sc
|
||||
}
|
||||
|
||||
//StatusCode 返回状态码
|
||||
func (ws *WorkerStatus) StatusCode() StatusCode {
|
||||
return ws.statusCode
|
||||
}
|
||||
|
||||
//StatusText 返回状态信息
|
||||
func (ws *WorkerStatus) StatusText() string {
|
||||
return GetStatusText(ws.statusCode)
|
||||
}
|
||||
Reference in New Issue
Block a user