27b03f2136
After consideration, it has been decided that the interfaces defined in the storage package provide a good base for interacting with various registry instances. Whether interacting with a remote API or a local, on-disk registry, these types have proved flexible. By moving them here, they can become the central components of interacting with distribution components. Signed-off-by: Stephen J Day <stephen.day@docker.com>
37 lines
724 B
Go
37 lines
724 B
Go
package storage
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/docker/distribution"
|
|
"github.com/docker/distribution/digest"
|
|
)
|
|
|
|
// layerReadSeeker implements Layer and provides facilities for reading and
|
|
// seeking.
|
|
type layerReader struct {
|
|
fileReader
|
|
|
|
name string // repo name of this layer
|
|
digest digest.Digest
|
|
}
|
|
|
|
var _ distribution.Layer = &layerReader{}
|
|
|
|
func (lrs *layerReader) Name() string {
|
|
return lrs.name
|
|
}
|
|
|
|
func (lrs *layerReader) Digest() digest.Digest {
|
|
return lrs.digest
|
|
}
|
|
|
|
func (lrs *layerReader) CreatedAt() time.Time {
|
|
return lrs.modtime
|
|
}
|
|
|
|
// Close the layer. Should be called when the resource is no longer needed.
|
|
func (lrs *layerReader) Close() error {
|
|
return lrs.closeWithErr(distribution.ErrLayerClosed)
|
|
}
|