Esempio n. 1
0
func (rm *RouteManager) Add(route *defines.Route) error {
	rm.Lock()
	defer rm.Unlock()
	route.Closer = make(chan bool)
	route.Done = make(chan struct{})
	rm.routes[route.ID] = route
	go func() {
		logstream := make(chan *defines.Log)
		go Streamer(route, logstream)
		rm.attacher.Listen(route.Source, logstream, route.Closer)
		close(logstream)
	}()
	if rm.persistor != nil {
		if err := rm.persistor.Add(route); err != nil {
			logs.Info("Lenz Persistor:", err)
		}
	}
	return nil
}