Skip to content

Commit 6248356

Browse files
committed
feat(backend, logger): add start hook and notify frontend on start
1 parent f7ace86 commit 6248356

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

backend/cmd/main.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,11 @@ func main() {
199199
orderTopic := order_topic.NewSendTopic()
200200
loggerTopic := logger_topic.NewEnableTopic()
201201
loggerTopic.SetDataLogger(subloggers[data_logger.Name].(*data_logger.Logger))
202+
loggerHandler.SetOnStart(func() {
203+
if err := loggerTopic.NotifyStarted(); err != nil {
204+
trace.Error().Err(err).Msg("failed to notify logger started")
205+
}
206+
})
202207

203208
messageTopic := message_topic.NewUpdateTopic()
204209
stateOrderTopic := order_topic.NewState(idToBoard, trace.Logger)

backend/pkg/broker/topics/logger/enable.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ func (enable *Enable) handleVariables(_ websocket.ClientId, message *websocket.M
104104
return nil
105105
}
106106

107+
func (enable *Enable) NotifyStarted() error {
108+
enable.isRunning.Store(true)
109+
return enable.broadcastState()
110+
}
111+
107112
func (enable *Enable) broadcastState() error {
108113
payload, err := json.Marshal(enable.isRunning.Load())
109114
if err != nil {

backend/pkg/logger/logger.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ type Logger struct {
2424
subloggers map[abstraction.LoggerName]abstraction.Logger
2525

2626
trace zerolog.Logger
27+
28+
onStart func()
2729
}
2830

2931
/**************
@@ -83,9 +85,17 @@ func (logger *Logger) Start() error {
8385
}
8486

8587
logger.trace.Info().Msg("started")
88+
89+
if logger.onStart != nil {
90+
logger.onStart()
91+
}
8692
return nil
8793
}
8894

95+
func (logger *Logger) SetOnStart(cb func()) {
96+
logger.onStart = cb
97+
}
98+
8999
// PushRecord works as a proxy for the PushRecord method of the subloggers
90100
func (logger *Logger) PushRecord(record abstraction.LoggerRecord) error {
91101

0 commit comments

Comments
 (0)