status

package
v2.0.153-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2023 License: MIT Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Null        = Status{"", -1}
	Indexed     = Status{"indexed", 0}
	Retrying    = Status{"retrying", 0}
	Queued      = Status{"queued", 1}
	Downloading = Status{"downloading", 2}
	Uploading   = Status{"uploading", 2}
	Skipped     = Status{"skipped", 3}
	Ignored     = Status{"ignored", 3}
	Complete    = Status{"complete", 4}
	Canceled    = Status{"canceled", 5}
	Errored     = Status{"errored", 5}

	Included = []Status{Indexed, Queued, Retrying, Downloading, Uploading, Complete, Canceled, Errored}
	Excluded = []Status{Skipped, Ignored}
	Valid    = []Status{Indexed, Queued, Retrying, Downloading, Uploading, Complete}
	Invalid  = []Status{Null, Canceled, Errored, Skipped, Ignored}
	Running  = []Status{Downloading, Uploading}
	Ended    = []Status{Complete, Canceled, Errored, Skipped, Ignored}
)

Functions

func WaitTellFinished

func WaitTellFinished[T any](job *Job, onStatusComplete chan T, beforeCallingFinish func())

Types

type Change

type Change struct {
	Status
	time.Time
	Err error
}

type Changes

type Changes []Change

func (Changes) Count

func (c Changes) Count(s Status) (count int)

type EventsReporter

type EventsReporter map[Status][]Reporter

type File

type File struct {
	StatusName    string        `json:"status"`
	TransferBytes int64         `json:"transferred_bytes"`
	Size          int64         `json:"size_bytes"`
	LocalPath     string        `json:"local_path"`
	RemotePath    string        `json:"remote_path"`
	EndedAt       time.Time     `json:"transferred_at"`
	Err           error         `json:"error"`
	Id            string        `json:"-"`
	Attempts      int           `json:"attempts"`
	Mutex         *sync.RWMutex `json:"-"`
	LastByte      time.Time     `json:"-"`
	Status        `json:"-"`
	filesSDK.File `json:"-"`
	*Job          `json:"-"`
}

func ToStatusFile

func ToStatusFile(f IFile) File

type IFile

type IFile interface {
	SetStatus(Status, error)
	StatusChanges() Changes
	TransferBytes() int64
	File() filesSDK.File
	Size() int64
	Id() string
	LocalPath() string
	RemotePath() string
	Status() Status
	LastByte() time.Time
	EndedAt() time.Time
	Err() error
	Job() *Job
}

type Job

type Job struct {
	Id string
	*timer.Timer
	Statuses  []IFile
	Direction direction.Direction

	LocalPath  string
	RemotePath string
	Sync       bool
	CodeStart  func()
	context.CancelFunc

	Params interface{}
	Client interface{}
	Config interface{}
	EventsReporter
	directory.Type
	*manager.Manager
	RetryPolicy interface{}
	*ignore.GitIgnore
	Started     *Signal
	Finished    *Signal
	Canceled    *Signal
	Scanning    *Signal
	EndScanning *Signal
	retryablehttp.Logger
	RemoteFs fs.FS
	// contains filtered or unexported fields
}

func (*Job) Add

func (r *Job) Add(report IFile)

func (*Job) All

func (r *Job) All(t ...Status) bool

func (*Job) Any

func (r *Job) Any(t ...Status) (b bool)

func (*Job) Cancel

func (r *Job) Cancel()

func (*Job) ClearCalled

func (r *Job) ClearCalled()

func (*Job) ClearStatuses

func (r *Job) ClearStatuses() Job

func (*Job) Count

func (r *Job) Count(t ...Status) int

func (*Job) ETA

func (r *Job) ETA(t ...Status) time.Duration

func (*Job) ElapsedTime

func (r *Job) ElapsedTime() time.Duration

func (*Job) EndScan

func (r *Job) EndScan()

func (*Job) EnqueueNext

func (r *Job) EnqueueNext() (f IFile, ok bool)

func (*Job) Files

func (r *Job) Files() []filesSDK.File

func (*Job) Find

func (r *Job) Find(t Status) (IFile, bool)

func (*Job) FindRemoteFile

func (r *Job) FindRemoteFile(file IFile) (filesSDK.File, bool, error)

func (*Job) Finish

func (r *Job) Finish()

func (*Job) Idle

func (r *Job) Idle(t ...Status) bool

func (Job) Init

func (r Job) Init() *Job

func (*Job) Job

func (r *Job) Job() *Job

func (*Job) Percentage

func (r *Job) Percentage(t ...Status) int

func (*Job) RegisterFileEvent

func (r *Job) RegisterFileEvent(callback Reporter, events ...Status)

func (*Job) RemainingBytes

func (r *Job) RemainingBytes(t ...Status) int64

func (*Job) Reset

func (r *Job) Reset()

func (*Job) Scan

func (r *Job) Scan()

func (*Job) SetEventsReporter

func (r *Job) SetEventsReporter(e EventsReporter)

func (*Job) SetManager

func (r *Job) SetManager(m *manager.Manager)

func (*Job) Start

func (r *Job) Start(ignoreCodeStart ...bool)

func (*Job) StatusFromError

func (r *Job) StatusFromError(s IFile, err error)

func (*Job) Sub

func (r *Job) Sub(t ...Status) *Job

func (*Job) SubscribeAll

func (r *Job) SubscribeAll() Subscriptions

func (*Job) TotalBytes

func (r *Job) TotalBytes(t ...Status) int64

func (*Job) TransferBytes

func (r *Job) TransferBytes(t ...Status) int64

func (*Job) TransferRate

func (r *Job) TransferRate(t ...Status) int64

func (*Job) UpdateStatus

func (r *Job) UpdateStatus(status Status, file IFile, err error)

func (*Job) Wait

func (r *Job) Wait()

func (*Job) WithContext

func (r *Job) WithContext(ctx context.Context) context.Context

type Log

type Log struct {
	Path   string
	Action string
}

type MashableError

type MashableError struct {
	// contains filtered or unexported fields
}

func (MashableError) Err

func (me MashableError) Err() error

func (MashableError) MarshalJSON

func (me MashableError) MarshalJSON() ([]byte, error)

type Reporter

type Reporter func(File)

type Signal

type Signal struct {
	// contains filtered or unexported fields
}

func (*Signal) Called

func (s *Signal) Called() bool

func (*Signal) Clear

func (s *Signal) Clear()

func (*Signal) Subscribe

func (s *Signal) Subscribe() chan time.Time

func (*Signal) TrySubscribe

func (s *Signal) TrySubscribe(try func(chan time.Time))

func (*Signal) Wait

func (s *Signal) Wait()

func (*Signal) When

func (s *Signal) When() time.Time

type Status

type Status struct {
	Name  string
	Value int
}

func SetStatus

func SetStatus(old Status, new Status, err error) (Status, bool)

func (Status) Any

func (e Status) Any(statuses ...Status) bool

func (Status) Has

func (e Status) Has(statuses ...Status) bool

func (Status) Is

func (e Status) Is(statuses ...Status) bool

func (Status) IsNot

func (e Status) IsNot(statuses ...Status) bool

func (Status) String

func (e Status) String() string

type Subscriptions

type Subscriptions struct {
	Started     chan time.Time
	Finished    chan time.Time
	Canceled    chan time.Time
	Scanning    chan time.Time
	EndScanning chan time.Time
}

type UnwrappedError

type UnwrappedError struct {
	OriginalError error
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL