This section is empty.


This section is empty.


func NewReader

func NewReader(ctx context.Context, s Sinker, r io.Reader, size int64) *reader


type Aggregator

type Aggregator struct {
	// contains filtered or unexported fields

func NewAggregator

func NewAggregator(s Sinker) *Aggregator

func (*Aggregator) Done

func (a *Aggregator) Done()

    Done marks the aggregator as done. No more calls to Sink() may be made and the downstream progress report channel will be closed when Done() returns.

    func (*Aggregator) Sink

    func (a *Aggregator) Sink() chan<- Report

    type Report

    type Report interface {
    	Percentage() float32
    	Detail() string
    	Error() error

      Report defines the interface for types that can deliver progress reports. Examples include uploads/downloads in the http client and the task info field in the task managed object.

      type SinkFunc

      type SinkFunc func() chan<- Report

        SinkFunc defines a function that returns a progress report channel.

        func (SinkFunc) Sink

        func (fn SinkFunc) Sink() chan<- Report

          Sink makes the SinkFunc implement the Sinker interface.

          type Sinker

          type Sinker interface {
          	Sink() chan<- Report

            Sinker defines what is expected of a type that can act as a sink for progress reports. The semantics are as follows. If you call Sink(), you are responsible for closing the returned channel. Closing this channel means that the related task is done, or resulted in error.

            func Prefix

            func Prefix(s Sinker, prefix string) Sinker

            func Scale

            func Scale(s Sinker, n int) Sinker

            func Tee

            func Tee(s1, s2 Sinker) Sinker

              Tee works like Unix tee; it forwards all progress reports it receives to the specified sinks