68 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package content
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"io"
 | 
						|
	"sync"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/opencontainers/go-digest"
 | 
						|
	"github.com/pkg/errors"
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	// ErrNotFound is returned when an item is not found.
 | 
						|
	//
 | 
						|
	// Use IsNotFound(err) to detect this condition.
 | 
						|
	ErrNotFound = errors.New("content: not found")
 | 
						|
 | 
						|
	// ErrExists is returned when something exists when it may not be expected.
 | 
						|
	//
 | 
						|
	// Use IsExists(err) to detect this condition.
 | 
						|
	ErrExists = errors.New("content: exists")
 | 
						|
 | 
						|
	bufPool = sync.Pool{
 | 
						|
		New: func() interface{} {
 | 
						|
			return make([]byte, 1<<20)
 | 
						|
		},
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
type Info struct {
 | 
						|
	Digest      digest.Digest
 | 
						|
	Size        int64
 | 
						|
	CommittedAt time.Time
 | 
						|
}
 | 
						|
 | 
						|
type Provider interface {
 | 
						|
	Reader(ctx context.Context, dgst digest.Digest) (io.ReadCloser, error)
 | 
						|
}
 | 
						|
 | 
						|
type Status struct {
 | 
						|
	Ref       string
 | 
						|
	Offset    int64
 | 
						|
	Total     int64
 | 
						|
	StartedAt time.Time
 | 
						|
	UpdatedAt time.Time
 | 
						|
}
 | 
						|
 | 
						|
type Writer interface {
 | 
						|
	io.WriteCloser
 | 
						|
	Status() (Status, error)
 | 
						|
	Digest() digest.Digest
 | 
						|
	Commit(size int64, expected digest.Digest) error
 | 
						|
	Truncate(size int64) error
 | 
						|
}
 | 
						|
 | 
						|
type Ingester interface {
 | 
						|
	Writer(ctx context.Context, ref string, size int64, expected digest.Digest) (Writer, error)
 | 
						|
}
 | 
						|
 | 
						|
func IsNotFound(err error) bool {
 | 
						|
	return errors.Cause(err) == ErrNotFound
 | 
						|
}
 | 
						|
 | 
						|
func IsExists(err error) bool {
 | 
						|
	return errors.Cause(err) == ErrExists
 | 
						|
}
 |