func New(next http.Handler) (*LanternProFilter, error) { return &LanternProFilter{ next: next, proTokens: set.New(), clientRegistry: ctrie.New(nil), }, nil }
func (p *Pipeline) initCache() error { logrus.Debugf("transactor.Pipeline(%s): initializing cache", p.Domain) p.initialized = true log, err := view.OpenLog(p.engine, p.Domain, commitLogName) // This denotes the domain is new. if err == view.ErrDoesNotExist { return nil } else if err != nil { return err } facts, err := origins.ReadAll(log.Asof(p.segment.Time)) if err != nil { return err } // Sort facts by entity. origins.Timsort(facts, origins.EAVTComparator) // Group the facts by entity. giter := origins.Groupby(origins.NewBuffer(facts), func(f1, f2 *origins.Fact) bool { return f1.Entity.Is(f2.Entity) }) // Initializing ctrie. cache := ctrie.New(nil) err = origins.MapFacts(giter, func(facts origins.Facts) error { cache.Insert([]byte(facts[0].Entity.Name), facts) return nil }) p.cache = cache logrus.Debugf("transactor.Pipeline(%s): cache initialized", p.Domain) return err }