/
sampler-defs.go
42 lines (35 loc) 路 1.36 KB
/
sampler-defs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package nav
type (
samplerControllerFuncParams struct {
contents *DirectoryContents
subscription TraverseSubscription
noOf *EntryQuantities
forward bool
navi *NavigationInfo
tp *traverseParams
adapters samplingAdaptersCollection
iterator *directoryEntryWhileIt
}
// samplerControllerFunc is the root sampling handler and distinguishes between
// sampling with a slice or sampling by using an iterator (filter/custom)
samplerControllerFunc func(
params *samplerControllerFuncParams,
)
// sliceSamplerFunc invokes the selected slice function fn, to create
// sample. The client will specify the first or last slice function
// depending on the sampling option.
sliceSamplerFunc func(contents *DirectoryContents, noOf *EntryQuantities, fn sliceEntriesFunc)
// filterSamplerIteratorFunc
filterSamplerIteratorFunc func(contents *DirectoryContents, iterator *directoryEntryWhileIt)
// sampleIsFullFunc
sampleIsFullFunc func(fi *FilteredInfo, noOf *EntryQuantities) bool
// samplingAdaptersCollection
samplingAdaptersCollection map[TraverseSubscription]samplingAdapters
// samplingAdapters allows sampling behaviour to be customised according to
// the type of subscription
samplingAdapters struct {
slice sliceSamplerFunc
filterWithIt filterSamplerIteratorFunc
isFull sampleIsFullFunc
}
)