Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrorSessionNotFound = errors.New("session not found")
)
Functions ¶
func ScanFolder ¶
func ScanFolder(task *TaskScanFolder, ctx Context) error
func ScanSingleFileSystem ¶
func ScanSingleFileSystem( log esl.Logger, seq eq_sequence.Sequence, folder, sum kv_storage.Storage, fs es_filesystem.FileSystem, path es_filesystem.Path, depth int, h func(s FolderSize), ) error
Types ¶
type Context ¶
type Context interface {
QueueIdScanFolder() string
New(sessionId string, path es_filesystem.Path, stg eq_sequence.Stage, fs es_filesystem.FileSystem, folder, sum kv_storage.Storage, meta interface{}) Session
StartSession(sessionId string, stg eq_sequence.Stage) error
Get(sessionId string) (Session, error)
Log() esl.Logger
ListEach(depth int, h func(sessionId string, meta interface{}, size FolderSize)) error
}
type FolderSize ¶
type FolderSize struct {
Path string `json:"path"`
Depth int `json:"depth"`
Size int64 `json:"size"`
NumFile int64 `json:"num_file"`
NumFolder int64 `json:"num_folder"`
ModTimeEarliest *time.Time `json:"mod_time_earliest"`
ModTimeLatest *time.Time `json:"mod_time_latest"`
OperationalComplexity int64 `json:"operational_complexity"`
}
func Fold ¶
func Fold(path string, fs es_filesystem.FileSystem, entries []es_filesystem.Entry) (size FolderSize)
func (FolderSize) Add ¶
func (z FolderSize) Add(s FolderSize) FolderSize
Returns new instance of this instance plus given s. But keeps Path and Depth attributes.
type Session ¶
type Session interface {
// Session Id of this scan
SessionId() string
// Logger
Log() esl.Logger
// Queue stage
Stage() eq_sequence.Stage
// Target file system
FileSystem() es_filesystem.FileSystem
// Storage for folder tree (path -> descendant paths)
Folder() kv_storage.Storage
// Storage for sum (path -> *FolderSize)
Sum() kv_storage.Storage
// List each results. This function must call after stage finish.
// depth == 0 for the root folder.
ListEach(depth int, h func(size FolderSize)) error
// Session metadata
Metadata() interface{}
// Open session
Open() error
// Enqueue
Enqueue(path es_filesystem.Path, depth int)
}
type TaskScanFolder ¶
type TaskScanFolder struct {
SessionId string `json:"session_id"`
Path es_filesystem.PathData `json:"path"`
Depth int `json:"depth"`
}
type TaskScanFolderDescendants ¶
type TaskScanFolderDescendants struct {
Folders []string `json:"folders"`
}
Descendant folder paths
Click to show internal directories.
Click to hide internal directories.