func NewManager(sources []source_api.Source, sinkManager sinks.ExternalSinkManager, res, bufferDuration time.Duration, c cache.Cache, useModel bool, modelRes time.Duration) (Manager, error) { var newModel model.Model = nil if useModel { newModel = model.NewModel(modelRes) // Temporary semi-hack to get model storage garbage-collected. c.AddCacheListener(newModel.GetCacheListener()) } return &realManager{ sources: sources, sinkManager: sinkManager, cache: c, model: newModel, lastSync: time.Now(), resolution: res, decoder: sink_api.NewDecoder(), sinkStopChan: sinkManager.Sync(), }, nil }