123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package utils
- type ProgressEventType int
- const (
-
- TransferStartedEvent ProgressEventType = 1 + iota
-
- TransferDataEvent
-
- TransferCompletedEvent
-
- TransferFailedEvent
- )
- type ProgressEvent struct {
- ConsumedBytes int64
- TotalBytes int64
- RwBytes int64
- EventType ProgressEventType
- }
- type ProgressListener interface {
- ProgressChanged(event *ProgressEvent)
- }
- func NewProgressEvent(eventType ProgressEventType, consumed, total int64, rwBytes int64) *ProgressEvent {
- return &ProgressEvent{
- ConsumedBytes: consumed,
- TotalBytes: total,
- RwBytes: rwBytes,
- EventType: eventType}
- }
- func PublishProgress(listener ProgressListener, event *ProgressEvent) {
- if listener != nil && event != nil {
- listener.ProgressChanged(event)
- }
- }
- func GetProgressListener(obj interface{}) ProgressListener {
- if obj == nil {
- return nil
- }
- listener, ok := obj.(ProgressListener)
- if !ok {
- return nil
- }
- return listener
- }
- type ReaderTracker struct {
- CompletedBytes int64
- }
|