( ctx context.Context, cfg Config, sm *es.StorageManager, fetchBlob es.FetchBlobFunc, l1 IL1, feed *event.Feed, lg log.Logger, )
| 31 | } |
| 32 | |
| 33 | func New( |
| 34 | ctx context.Context, |
| 35 | cfg Config, |
| 36 | sm *es.StorageManager, |
| 37 | fetchBlob es.FetchBlobFunc, |
| 38 | l1 IL1, |
| 39 | feed *event.Feed, |
| 40 | lg log.Logger, |
| 41 | ) *Scanner { |
| 42 | cctx, cancel := context.WithCancel(ctx) |
| 43 | return &Scanner{ |
| 44 | worker: NewWorker(sm, fetchBlob, l1, lg), |
| 45 | feed: feed, |
| 46 | cfg: cfg, |
| 47 | ctx: cctx, |
| 48 | cancel: cancel, |
| 49 | lg: lg, |
| 50 | stats: make(mismatchTracker), |
| 51 | scanPermit: make(chan struct{}, 1), |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | // Start begins the scanner's background processing. Must be called after New(). |
| 56 | func (s *Scanner) Start() { |
no test coverage detected