1package internal
2
3import (
4	"github.com/influxdata/influxdb/models"
5	"github.com/influxdata/influxdb/pkg/bloom"
6	"github.com/influxdata/influxdb/pkg/estimator"
7	"github.com/influxdata/influxdb/tsdb"
8	"github.com/influxdata/influxdb/tsdb/index/tsi1"
9)
10
11// File is a mock implementation of a tsi1.File.
12type File struct {
13	Closef                       func() error
14	Pathf                        func() string
15	IDf                          func() int
16	Levelf                       func() int
17	Measurementf                 func(name []byte) tsi1.MeasurementElem
18	MeasurementIteratorf         func() tsi1.MeasurementIterator
19	HasSeriesf                   func(name []byte, tags models.Tags, buf []byte) (exists, tombstoned bool)
20	TagKeyf                      func(name, key []byte) tsi1.TagKeyElem
21	TagKeyIteratorf              func(name []byte) tsi1.TagKeyIterator
22	TagValuef                    func(name, key, value []byte) tsi1.TagValueElem
23	TagValueIteratorf            func(name, key []byte) tsi1.TagValueIterator
24	SeriesIDIteratorf            func() tsdb.SeriesIDIterator
25	MeasurementSeriesIDIteratorf func(name []byte) tsdb.SeriesIDIterator
26	TagKeySeriesIDIteratorf      func(name, key []byte) tsdb.SeriesIDIterator
27	TagValueSeriesIDIteratorf    func(name, key, value []byte) tsdb.SeriesIDIterator
28	MergeSeriesSketchesf         func(s, t estimator.Sketch) error
29	MergeMeasurementsSketchesf   func(s, t estimator.Sketch) error
30	Retainf                      func()
31	Releasef                     func()
32	Filterf                      func() *bloom.Filter
33}
34
35func (f *File) Close() error                                  { return f.Closef() }
36func (f *File) Path() string                                  { return f.Pathf() }
37func (f *File) ID() int                                       { return f.IDf() }
38func (f *File) Level() int                                    { return f.Levelf() }
39func (f *File) Measurement(name []byte) tsi1.MeasurementElem  { return f.Measurementf(name) }
40func (f *File) MeasurementIterator() tsi1.MeasurementIterator { return f.MeasurementIteratorf() }
41func (f *File) HasSeries(name []byte, tags models.Tags, buf []byte) (exists, tombstoned bool) {
42	return f.HasSeriesf(name, tags, buf)
43}
44func (f *File) TagKey(name, key []byte) tsi1.TagKeyElem        { return f.TagKeyf(name, key) }
45func (f *File) TagKeyIterator(name []byte) tsi1.TagKeyIterator { return f.TagKeyIteratorf(name) }
46
47func (f *File) TagValue(name, key, value []byte) tsi1.TagValueElem {
48	return f.TagValuef(name, key, value)
49}
50func (f *File) TagValueIterator(name, key []byte) tsi1.TagValueIterator {
51	return f.TagValueIteratorf(name, key)
52}
53func (f *File) SeriesIDIterator() tsdb.SeriesIDIterator { return f.SeriesIDIteratorf() }
54func (f *File) MeasurementSeriesIDIterator(name []byte) tsdb.SeriesIDIterator {
55	return f.MeasurementSeriesIDIteratorf(name)
56}
57func (f *File) TagKeySeriesIDIterator(name, key []byte) tsdb.SeriesIDIterator {
58	return f.TagKeySeriesIDIteratorf(name, key)
59}
60func (f *File) TagValueSeriesIDIterator(name, key, value []byte) tsdb.SeriesIDIterator {
61	return f.TagValueSeriesIDIteratorf(name, key, value)
62}
63func (f *File) MergeSeriesSketches(s, t estimator.Sketch) error { return f.MergeSeriesSketchesf(s, t) }
64func (f *File) MergeMeasurementsSketches(s, t estimator.Sketch) error {
65	return f.MergeMeasurementsSketchesf(s, t)
66}
67func (f *File) Retain()               { f.Retainf() }
68func (f *File) Release()              { f.Releasef() }
69func (f *File) Filter() *bloom.Filter { return f.Filterf() }
70