// Reset resets the state of the source object so that it // is ready to feed the filters func (s *Source) Reset() { if pdebug.Enabled { g := pdebug.Marker("Source.Reset") defer g.End() } s.OutputChannel = pipeline.OutputChannel(make(chan interface{})) }
func NewRegexpFilter() *RegexpFilter { return &RegexpFilter{ flags: regexpFlagList(defaultFlags), name: "Regexp", outCh: pipeline.OutputChannel(make(chan interface{})), } }
func (rf RegexpFilter) Clone() LineFilter { return &RegexpFilter{ flags: rf.flags, quotemeta: rf.quotemeta, query: rf.query, name: rf.name, outCh: pipeline.OutputChannel(make(chan interface{})), } }
func (ecf ExternalCmdFilter) Clone() LineFilter { return &ExternalCmdFilter{ args: ecf.args, cmd: ecf.cmd, enableSep: ecf.enableSep, name: ecf.name, outCh: pipeline.OutputChannel(make(chan interface{})), thresholdBufsiz: ecf.thresholdBufsiz, } }
// Creates a new Source. Does not start processing the input until you // call Setup() func NewSource(in io.Reader, idgen lineIDGenerator, enableSep bool) *Source { s := &Source{ in: in, // Note that this may be closed, so do not rely on it enableSep: enableSep, idgen: idgen, ready: make(chan struct{}), setupDone: make(chan struct{}), setupOnce: sync.Once{}, start: make(chan struct{}, 1), OutputChannel: pipeline.OutputChannel(make(chan interface{})), } s.Reset() return s }
func NewExternalCmdFilter(name string, cmd string, args []string, threshold int, idgen lineIDGenerator, enableSep bool) *ExternalCmdFilter { if len(args) == 0 { args = []string{"$QUERY"} } if threshold <= 0 { threshold = DefaultCustomFilterBufferThreshold } return &ExternalCmdFilter{ args: args, cmd: cmd, enableSep: enableSep, idgen: idgen, name: name, outCh: pipeline.OutputChannel(make(chan interface{})), thresholdBufsiz: threshold, } }