aboutsummaryrefslogtreecommitdiff
path: root/object_iterator.go
diff options
context:
space:
mode:
authorStefan Majewsky <stefan.majewsky@sap.com>2024-07-08 15:43:52 +0200
committerGitHub <noreply@github.com>2024-07-08 15:43:52 +0200
commit4fac97b5e944ce70cdca3679f5c2b1eef9b83952 (patch)
treefcf486f49df855f2803981c753ed775b1305f6c8 /object_iterator.go
parent5a783c56a98c225569abfa6fb12fdf55297fee9e (diff)
parentb7683ab8dcdeca10ff52d626a285edcf7c1db719 (diff)
downloadgo-schwift-4fac97b5e944ce70cdca3679f5c2b1eef9b83952.tar.gz
Merge pull request #19 from SuperSandro2000/context
Remove context from struct, add ctx as first args to many functions
Diffstat (limited to 'object_iterator.go')
-rw-r--r--object_iterator.go25
1 files changed, 13 insertions, 12 deletions
diff --git a/object_iterator.go b/object_iterator.go
index c6efa78..314b9bf 100644
--- a/object_iterator.go
+++ b/object_iterator.go
@@ -19,6 +19,7 @@
package schwift
import (
+ "context"
"fmt"
"regexp"
"time"
@@ -103,8 +104,8 @@ func (i *ObjectIterator) getBase() *iteratorBase {
//
// This method offers maximal flexibility, but most users will prefer the
// simpler interfaces offered by Collect() and Foreach().
-func (i *ObjectIterator) NextPage(limit int) ([]*Object, error) {
- names, err := i.getBase().nextPage(limit)
+func (i *ObjectIterator) NextPage(ctx context.Context, limit int) ([]*Object, error) {
+ names, err := i.getBase().nextPage(ctx, limit)
if err != nil {
return nil, err
}
@@ -120,7 +121,7 @@ func (i *ObjectIterator) NextPage(limit int) ([]*Object, error) {
var symlinkPathRx = regexp.MustCompile(`^/v1/([^/]+)/([^/]+)/(.+)$`)
// NextPageDetailed is like NextPage, but includes basic metadata.
-func (i *ObjectIterator) NextPageDetailed(limit int) ([]ObjectInfo, error) {
+func (i *ObjectIterator) NextPageDetailed(ctx context.Context, limit int) ([]ObjectInfo, error) {
b := i.getBase()
var document []struct {
@@ -134,7 +135,7 @@ func (i *ObjectIterator) NextPageDetailed(limit int) ([]ObjectInfo, error) {
// or just this:
Subdir string `json:"subdir"`
}
- err := b.nextPageDetailed(limit, &document)
+ err := b.nextPageDetailed(ctx, limit, &document)
if err != nil {
return nil, err
}
@@ -182,9 +183,9 @@ func (i *ObjectIterator) NextPageDetailed(limit int) ([]ObjectInfo, error) {
// Foreach lists the object names matching this iterator and calls the
// callback once for every object. Iteration is aborted when a GET request fails,
// or when the callback returns a non-nil error.
-func (i *ObjectIterator) Foreach(callback func(*Object) error) error {
+func (i *ObjectIterator) Foreach(ctx context.Context, callback func(*Object) error) error {
for {
- objects, err := i.NextPage(-1)
+ objects, err := i.NextPage(ctx, -1)
if err != nil {
return err
}
@@ -201,9 +202,9 @@ func (i *ObjectIterator) Foreach(callback func(*Object) error) error {
}
// ForeachDetailed is like Foreach, but includes basic metadata.
-func (i *ObjectIterator) ForeachDetailed(callback func(ObjectInfo) error) error {
+func (i *ObjectIterator) ForeachDetailed(ctx context.Context, callback func(ObjectInfo) error) error {
for {
- infos, err := i.NextPageDetailed(-1)
+ infos, err := i.NextPageDetailed(ctx, -1)
if err != nil {
return err
}
@@ -222,10 +223,10 @@ func (i *ObjectIterator) ForeachDetailed(callback func(ObjectInfo) error) error
// Collect lists all object names matching this iterator. For large sets of
// objects that cannot be retrieved at once, Collect handles paging behind
// the scenes. The return value is always the complete set of objects.
-func (i *ObjectIterator) Collect() ([]*Object, error) {
+func (i *ObjectIterator) Collect(ctx context.Context) ([]*Object, error) {
var result []*Object
for {
- objects, err := i.NextPage(-1)
+ objects, err := i.NextPage(ctx, -1)
if err != nil {
return nil, err
}
@@ -237,10 +238,10 @@ func (i *ObjectIterator) Collect() ([]*Object, error) {
}
// CollectDetailed is like Collect, but includes basic metadata.
-func (i *ObjectIterator) CollectDetailed() ([]ObjectInfo, error) {
+func (i *ObjectIterator) CollectDetailed(ctx context.Context) ([]ObjectInfo, error) {
var result []ObjectInfo
for {
- infos, err := i.NextPageDetailed(-1)
+ infos, err := i.NextPageDetailed(ctx, -1)
if err != nil {
return nil, err
}