blob: e03c3c4fbe15a87d27a90026abcab189172d7057 [file] [log] [blame]
// Package file is a source of file names and contents that contain data
// for Perf to ingest.
package file
import (
"context"
"io"
"time"
"cloud.google.com/go/pubsub"
)
// File represents a single file.
type File struct {
Name string
Contents io.ReadCloser
Created time.Time
PubSubMsg *pubsub.Message
}
// Source is a source of Files.
type Source interface {
// Start begins the process of looking for new files and as they arrive they
// are sent on the returned channel.
//
// Should only be called once per instance.
Start(ctx context.Context) (<-chan File, error)
}