Files
beelzebub/protocols/protocol_manager.go

31 lines
829 B
Go
Raw Normal View History

2022-05-08 20:49:53 +02:00
package protocols
import (
"github.com/mariocandela/beelzebub/v3/parser"
"github.com/mariocandela/beelzebub/v3/tracer"
)
2022-05-08 20:49:53 +02:00
type ServiceStrategy interface {
Init(beelzebubServiceConfiguration parser.BeelzebubServiceConfiguration, tracer tracer.Tracer) error
}
2022-05-08 20:49:53 +02:00
type ProtocolManager struct {
strategy ServiceStrategy
2022-06-04 17:14:46 +02:00
tracer tracer.Tracer
2022-05-08 20:49:53 +02:00
}
func InitProtocolManager(tracerStrategy tracer.Strategy, strategy ServiceStrategy) *ProtocolManager {
return &ProtocolManager{
tracer: tracer.Init(tracerStrategy),
strategy: strategy,
}
2022-05-08 20:49:53 +02:00
}
func (pm *ProtocolManager) SetProtocolStrategy(strategy ServiceStrategy) {
pm.strategy = strategy
}
func (pm *ProtocolManager) InitService(beelzebubServiceConfiguration parser.BeelzebubServiceConfiguration) error {
2022-06-04 17:14:46 +02:00
return pm.strategy.Init(beelzebubServiceConfiguration, pm.tracer)
2022-05-08 20:49:53 +02:00
}