github.com/rudderlabs/rudder-go-kit@v0.30.0/filemanager/base.go (about)

     1  package filemanager
     2  
     3  import (
     4  	"context"
     5  	"time"
     6  
     7  	"github.com/rudderlabs/rudder-go-kit/logger"
     8  )
     9  
    10  // baseManager is the base struct for all file managers.
    11  type baseManager struct {
    12  	logger         logger.Logger
    13  	timeout        time.Duration
    14  	defaultTimeout func() time.Duration
    15  }
    16  
    17  func (manager *baseManager) SetTimeout(timeout time.Duration) {
    18  	manager.timeout = timeout
    19  }
    20  
    21  func (manager *baseManager) getTimeout() time.Duration {
    22  	if manager.timeout > 0 {
    23  		return manager.timeout
    24  	}
    25  	if manager.defaultTimeout != nil {
    26  		return manager.defaultTimeout()
    27  	}
    28  	return defaultTimeout
    29  }
    30  
    31  // baseListSession is the base struct for all list sessions.
    32  type baseListSession struct {
    33  	ctx        context.Context
    34  	startAfter string
    35  	prefix     string
    36  	maxItems   int64
    37  }