func NewTimedUserValidator(hasher protocol.IDHash) protocol.UserValidator { tus := &TimedUserValidator{ validUsers: make([]*protocol.User, 0, 16), userHash: make(map[[16]byte]*indexTimePair, 512), ids: make([]*idEntry, 0, 512), hasher: hasher, running: true, cancel: signal.NewCloseSignal(), } go tus.updateUserHash(updateIntervalSec * time.Second) return tus }
func NewFileLogWriter(path string) (*FileLogWriter, error) { file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600) if err != nil { return nil, err } logger := &FileLogWriter{ queue: make(chan string, 16), logger: log.New(file, "", log.Ldate|log.Ltime), file: file, cancel: signal.NewCloseSignal(), } go logger.run() return logger, nil }
func NewStdOutLogWriter() LogWriter { return &StdOutLogWriter{ logger: log.New(os.Stdout, "", log.Ldate|log.Ltime), cancel: signal.NewCloseSignal(), } }