package client import ( "bytes" "context" "io" "github.com/keegancsmith/rpc" "forge.cadoles.com/arcad/edge/pkg/storage" "github.com/pkg/errors" ) type BlobBucket struct { name string closed bool client *rpc.Client } // Size implements storage.BlobBucket func (b *BlobBucket) Size(ctx context.Context) (int64, error) { return 0, nil } // Name implements storage.BlobBucket func (b *BlobBucket) Name() string { return b.name } // Close implements storage.BlobBucket func (b *BlobBucket) Close() error { return nil } // Delete implements storage.BlobBucket func (b *BlobBucket) Delete(ctx context.Context, id storage.BlobID) error { return nil } // Get implements storage.BlobBucket func (b *BlobBucket) Get(ctx context.Context, id storage.BlobID) (storage.BlobInfo, error) { return nil, nil } // List implements storage.BlobBucket func (b *BlobBucket) List(ctx context.Context) ([]storage.BlobInfo, error) { return nil, nil } // NewReader implements storage.BlobBucket func (b *BlobBucket) NewReader(ctx context.Context, id storage.BlobID) (io.ReadSeekCloser, error) { if b.closed { return nil, errors.WithStack(storage.ErrBucketClosed) } return &blobReaderCloser{ id: id, bucket: b.name, client: b.client, }, nil } // NewWriter implements storage.BlobBucket func (b *BlobBucket) NewWriter(ctx context.Context, id storage.BlobID) (io.WriteCloser, error) { if b.closed { return nil, errors.WithStack(storage.ErrBucketClosed) } return &blobWriterCloser{ id: id, bucket: b.name, buf: bytes.Buffer{}, client: b.client, }, nil } type blobWriterCloser struct { id storage.BlobID bucket string client *rpc.Client buf bytes.Buffer closed bool } // Write implements io.WriteCloser func (wbc *blobWriterCloser) Write(p []byte) (int, error) { return 0, nil } // Close implements io.WriteCloser func (wbc *blobWriterCloser) Close() error { return nil } type blobReaderCloser struct { id storage.BlobID bucket string client *rpc.Client } // Read implements io.ReadSeekCloser func (brc *blobReaderCloser) Read(p []byte) (int, error) { return 0, nil } // Seek implements io.ReadSeekCloser func (brc *blobReaderCloser) Seek(offset int64, whence int) (int64, error) { return 0, nil } // Close implements io.ReadSeekCloser func (brc *blobReaderCloser) Close() error { return nil } var ( _ storage.BlobBucket = &BlobBucket{} _ storage.BlobInfo = &BlobInfo{} _ io.WriteCloser = &blobWriterCloser{} _ io.ReadSeekCloser = &blobReaderCloser{} )