mirror of
https://github.com/netbirdio/netbird.git
synced 2025-07-14 05:15:08 +02:00
49 lines
747 B
Go
49 lines
747 B
Go
package netflow
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
"github.com/netbirdio/netbird/client/internal/netflow/logger"
|
|
"github.com/netbirdio/netbird/client/internal/netflow/types"
|
|
)
|
|
|
|
type Manager struct {
|
|
mux sync.Mutex
|
|
logger types.FlowLogger
|
|
flowConfig *types.FlowConfig
|
|
}
|
|
|
|
func NewManager(ctx context.Context) *Manager {
|
|
return &Manager{
|
|
logger: logger.New(ctx),
|
|
}
|
|
}
|
|
|
|
func (m *Manager) Update(update *types.FlowConfig) error {
|
|
m.mux.Lock()
|
|
defer m.mux.Unlock()
|
|
if update == nil {
|
|
return nil
|
|
}
|
|
|
|
m.flowConfig = update
|
|
|
|
if update.Enabled {
|
|
m.logger.Enable()
|
|
return nil
|
|
}
|
|
|
|
m.logger.Disable()
|
|
|
|
return nil
|
|
}
|
|
|
|
func (m *Manager) Close() {
|
|
m.logger.Close()
|
|
}
|
|
|
|
func (m *Manager) GetLogger() types.FlowLogger {
|
|
return m.logger
|
|
}
|