1// Copyright (c) 2019 FOSS contributors of https://github.com/nxadm/tail
2// Copyright (c) 2015 HPE Software Inc. All rights reserved.
3// Copyright (c) 2013 ActiveState Software Inc. All rights reserved.
4
5package watch
6
7import "gopkg.in/tomb.v1"
8
9// FileWatcher monitors file-level events.
10type FileWatcher interface {
11 // BlockUntilExists blocks until the file comes into existence.
12 BlockUntilExists(*tomb.Tomb) error
13
14 // ChangeEvents reports on changes to a file, be it modification,
15 // deletion, renames or truncations. Returned FileChanges group of
16 // channels will be closed, thus become unusable, after a deletion
17 // or truncation event.
18 // In order to properly report truncations, ChangeEvents requires
19 // the caller to pass their current offset in the file.
20 ChangeEvents(*tomb.Tomb, int64) (*FileChanges, error)
21}