forked from TrueCloudLab/frostfs-sdk-go
[#XX] patcher: Add closer
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
parent
cb813e27a8
commit
6a339ceeeb
2 changed files with 12 additions and 4 deletions
|
@ -47,7 +47,7 @@ type RangeProvider interface {
|
|||
// GetRange reads an original object payload by the given range.
|
||||
// The method returns io.Reader over the data range only. This means if the data is read out,
|
||||
// then GetRange has to be invoked to provide reader over the next range.
|
||||
GetRange(ctx context.Context, rng *objectSDK.Range) io.Reader
|
||||
GetRange(ctx context.Context, rng *objectSDK.Range) io.ReadCloser
|
||||
}
|
||||
|
||||
type patcher struct {
|
||||
|
|
|
@ -41,14 +41,22 @@ type mockRangeProvider struct {
|
|||
|
||||
var _ RangeProvider = (*mockRangeProvider)(nil)
|
||||
|
||||
func (m *mockRangeProvider) GetRange(_ context.Context, rng *objectSDK.Range) io.Reader {
|
||||
func (m *mockRangeProvider) GetRange(_ context.Context, rng *objectSDK.Range) io.ReadCloser {
|
||||
offset := rng.GetOffset()
|
||||
length := rng.GetLength()
|
||||
|
||||
if length == 0 {
|
||||
return bytes.NewReader(m.originalObjectPayload[offset:])
|
||||
return &readCloserImpl{bytes.NewReader(m.originalObjectPayload[offset:])}
|
||||
}
|
||||
return bytes.NewReader(m.originalObjectPayload[offset : offset+length])
|
||||
return &readCloserImpl{bytes.NewReader(m.originalObjectPayload[offset : offset+length])}
|
||||
}
|
||||
|
||||
type readCloserImpl struct {
|
||||
*bytes.Reader
|
||||
}
|
||||
|
||||
func (*readCloserImpl) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func newTestObject() (*objectSDK.Object, oid.Address) {
|
||||
|
|
Loading…
Add table
Reference in a new issue