use Id function instead of accessing config directly

This commit is contained in:
Joel Wetzell
2025-12-10 07:44:55 -06:00
parent 8ca105a0b6
commit b59da597ba
14 changed files with 46 additions and 45 deletions

View File

@@ -43,7 +43,7 @@ func (hc *HTTPClient) Run() error {
} }
<-hc.ctx.Done() <-hc.ctx.Done()
slog.Debug("router context done in module", "id", hc.config.Id) slog.Debug("router context done in module", "id", hc.Id())
return nil return nil
} }
@@ -66,7 +66,7 @@ func (hc *HTTPClient) Output(payload any) error {
} }
if hc.router != nil { if hc.router != nil {
hc.router.HandleInput(hc.config.Id, response) hc.router.HandleInput(hc.Id(), response)
} }
return nil return nil

View File

@@ -61,7 +61,7 @@ func (hs *HTTPServer) HandleDefault(w http.ResponseWriter, r *http.Request) {
} }
if hs.router != nil { if hs.router != nil {
routingErrors := hs.router.HandleInput(hs.config.Id, r) routingErrors := hs.router.HandleInput(hs.Id(), r)
if routingErrors != nil { if routingErrors != nil {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
response.Status = "error" response.Status = "error"
@@ -89,12 +89,12 @@ func (hs *HTTPServer) Run() error {
go func() { go func() {
<-hs.ctx.Done() <-hs.ctx.Done()
slog.Debug("router context done in module", "id", hs.config.Id) slog.Debug("router context done in module", "id", hs.Id())
httpServer.Close() httpServer.Close()
}() }()
err := httpServer.ListenAndServe() err := httpServer.ListenAndServe()
slog.Debug("net.http.server closed", "id", hs.config.Id) slog.Debug("net.http.server closed", "id", hs.Id())
// TODO(jwetzell): handle server closed error differently // TODO(jwetzell): handle server closed error differently
if err != nil { if err != nil {
return err return err

View File

@@ -56,11 +56,11 @@ func (i *Interval) Run() error {
for { for {
select { select {
case <-i.ctx.Done(): case <-i.ctx.Done():
slog.Debug("router context done in module", "id", i.config.Id) slog.Debug("router context done in module", "id", i.Id())
return nil return nil
case <-ticker.C: case <-ticker.C:
if i.router != nil { if i.router != nil {
i.router.HandleInput(i.config.Id, time.Now()) i.router.HandleInput(i.Id(), time.Now())
} }
} }
} }

View File

@@ -75,6 +75,7 @@ func (mc *MIDIClient) Run() error {
stop, err := midi.ListenTo(in, func(msg midi.Message, timestampms int32) { stop, err := midi.ListenTo(in, func(msg midi.Message, timestampms int32) {
if mc.router != nil { if mc.router != nil {
// TODO(jwetzell): unpack MIDI messsage into something more useful?
mc.router.HandleInput(mc.Id(), msg) mc.router.HandleInput(mc.Id(), msg)
} }
}, midi.UseSysEx()) }, midi.UseSysEx())
@@ -99,7 +100,7 @@ func (mc *MIDIClient) Run() error {
mc.SendFunc = send mc.SendFunc = send
<-mc.ctx.Done() <-mc.ctx.Done()
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
return nil return nil
} }

View File

@@ -83,7 +83,7 @@ func (mc *MQTTClient) Run() error {
opts.OnConnect = func(c mqtt.Client) { opts.OnConnect = func(c mqtt.Client) {
token := mc.client.Subscribe(mc.Topic, 1, func(c mqtt.Client, m mqtt.Message) { token := mc.client.Subscribe(mc.Topic, 1, func(c mqtt.Client, m mqtt.Message) {
mc.router.HandleInput(mc.config.Id, m) mc.router.HandleInput(mc.Id(), m)
}) })
token.Wait() token.Wait()
} }
@@ -99,7 +99,7 @@ func (mc *MQTTClient) Run() error {
} }
<-mc.ctx.Done() <-mc.ctx.Done()
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
return nil return nil
} }

View File

@@ -76,7 +76,7 @@ func (nc *NATSClient) Run() error {
sub, err := nc.client.Subscribe(nc.Subject, func(msg *nats.Msg) { sub, err := nc.client.Subscribe(nc.Subject, func(msg *nats.Msg) {
if nc.router != nil { if nc.router != nil {
nc.router.HandleInput(nc.config.Id, msg) nc.router.HandleInput(nc.Id(), msg)
} }
}) })
@@ -87,7 +87,7 @@ func (nc *NATSClient) Run() error {
defer sub.Unsubscribe() defer sub.Unsubscribe()
<-nc.ctx.Done() <-nc.ctx.Done()
slog.Debug("router context done in module", "id", nc.config.Id) slog.Debug("router context done in module", "id", nc.Id())
return nil return nil
} }

View File

@@ -58,7 +58,7 @@ func (pc *PSNClient) Run() error {
select { select {
case <-pc.ctx.Done(): case <-pc.ctx.Done():
// TODO(jwetzell): cleanup? // TODO(jwetzell): cleanup?
slog.Debug("router context done in module", "id", pc.config.Id) slog.Debug("router context done in module", "id", pc.Id())
return nil return nil
default: default:
pc.conn.SetDeadline(time.Now().Add(time.Millisecond * 200)) pc.conn.SetDeadline(time.Now().Add(time.Millisecond * 200))
@@ -76,15 +76,15 @@ func (pc *PSNClient) Run() error {
message := buffer[:numBytes] message := buffer[:numBytes]
err := pc.decoder.Decode(message) err := pc.decoder.Decode(message)
if err != nil { if err != nil {
slog.Error("net.psn.client problem decoding psn traffic", "id", pc.config.Id, "error", err) slog.Error("net.psn.client problem decoding psn traffic", "id", pc.Id(), "error", err)
} }
if pc.router != nil { if pc.router != nil {
for _, tracker := range pc.decoder.Trackers { for _, tracker := range pc.decoder.Trackers {
pc.router.HandleInput(pc.config.Id, tracker) pc.router.HandleInput(pc.Id(), tracker)
} }
} else { } else {
slog.Error("net.psn.client has no router", "id", pc.config.Id) slog.Error("net.psn.client has no router", "id", pc.Id())
} }
} }
} }

View File

@@ -105,7 +105,7 @@ func (mc *SerialClient) Run() error {
// TODO(jwetzell): shutdown with router.Context properly // TODO(jwetzell): shutdown with router.Context properly
go func() { go func() {
<-mc.ctx.Done() <-mc.ctx.Done()
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
if mc.port != nil { if mc.port != nil {
mc.port.Close() mc.port.Close()
} }
@@ -115,10 +115,10 @@ func (mc *SerialClient) Run() error {
err := mc.SetupPort() err := mc.SetupPort()
if err != nil { if err != nil {
if mc.ctx.Err() != nil { if mc.ctx.Err() != nil {
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
return nil return nil
} }
slog.Error("misc.serial.client", "id", mc.config.Id, "error", err.Error()) slog.Error("misc.serial.client", "id", mc.Id(), "error", err.Error())
time.Sleep(time.Second * 2) time.Sleep(time.Second * 2)
continue continue
} }
@@ -126,14 +126,14 @@ func (mc *SerialClient) Run() error {
buffer := make([]byte, 1024) buffer := make([]byte, 1024)
select { select {
case <-mc.ctx.Done(): case <-mc.ctx.Done():
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
return nil return nil
default: default:
READ: READ:
for { for {
select { select {
case <-mc.ctx.Done(): case <-mc.ctx.Done():
slog.Debug("router context done in module", "id", mc.config.Id) slog.Debug("router context done in module", "id", mc.Id())
return nil return nil
default: default:
byteCount, err := mc.port.Read(buffer) byteCount, err := mc.port.Read(buffer)
@@ -148,9 +148,9 @@ func (mc *SerialClient) Run() error {
messages := mc.Framer.Decode(buffer[0:byteCount]) messages := mc.Framer.Decode(buffer[0:byteCount])
for _, message := range messages { for _, message := range messages {
if mc.router != nil { if mc.router != nil {
mc.router.HandleInput(mc.config.Id, message) mc.router.HandleInput(mc.Id(), message)
} else { } else {
slog.Error("misc.serial.client has no router", "id", mc.config.Id) slog.Error("misc.serial.client has no router", "id", mc.Id())
} }
} }
} }

View File

@@ -91,7 +91,7 @@ func (tc *TCPClient) Run() error {
// TODO(jwetzell): shutdown with router.Context properly // TODO(jwetzell): shutdown with router.Context properly
go func() { go func() {
<-tc.ctx.Done() <-tc.ctx.Done()
slog.Debug("router context done in module", "id", tc.config.Id) slog.Debug("router context done in module", "id", tc.Id())
if tc.conn != nil { if tc.conn != nil {
tc.conn.Close() tc.conn.Close()
} }
@@ -101,10 +101,10 @@ func (tc *TCPClient) Run() error {
err := tc.SetupConn() err := tc.SetupConn()
if err != nil { if err != nil {
if tc.ctx.Err() != nil { if tc.ctx.Err() != nil {
slog.Debug("router context done in module", "id", tc.config.Id) slog.Debug("router context done in module", "id", tc.Id())
return nil return nil
} }
slog.Error("net.tcp.client", "id", tc.config.Id, "error", err.Error()) slog.Error("net.tcp.client", "id", tc.Id(), "error", err.Error())
time.Sleep(time.Second * 2) time.Sleep(time.Second * 2)
continue continue
} }
@@ -112,14 +112,14 @@ func (tc *TCPClient) Run() error {
buffer := make([]byte, 1024) buffer := make([]byte, 1024)
select { select {
case <-tc.ctx.Done(): case <-tc.ctx.Done():
slog.Debug("router context done in module", "id", tc.config.Id) slog.Debug("router context done in module", "id", tc.Id())
return nil return nil
default: default:
READ: READ:
for { for {
select { select {
case <-tc.ctx.Done(): case <-tc.ctx.Done():
slog.Debug("router context done in module", "id", tc.config.Id) slog.Debug("router context done in module", "id", tc.Id())
return nil return nil
default: default:
byteCount, err := tc.conn.Read(buffer) byteCount, err := tc.conn.Read(buffer)
@@ -134,9 +134,9 @@ func (tc *TCPClient) Run() error {
messages := tc.framer.Decode(buffer[0:byteCount]) messages := tc.framer.Decode(buffer[0:byteCount])
for _, message := range messages { for _, message := range messages {
if tc.router != nil { if tc.router != nil {
tc.router.HandleInput(tc.config.Id, message) tc.router.HandleInput(tc.Id(), message)
} else { } else {
slog.Error("net.tcp.client has no router", "id", tc.config.Id) slog.Error("net.tcp.client has no router", "id", tc.Id())
} }
} }
} }

View File

@@ -98,7 +98,7 @@ func (ts *TCPServer) handleClient(client *net.TCPConn) {
ts.connectionsMu.Lock() ts.connectionsMu.Lock()
ts.connections = append(ts.connections, client) ts.connections = append(ts.connections, client)
ts.connectionsMu.Unlock() ts.connectionsMu.Unlock()
slog.Debug("net.tcp.server connection accepted", "id", ts.config.Id, "remoteAddr", client.RemoteAddr().String()) slog.Debug("net.tcp.server connection accepted", "id", ts.Id(), "remoteAddr", client.RemoteAddr().String())
defer client.Close() defer client.Close()
buffer := make([]byte, 1024) buffer := make([]byte, 1024)
@@ -125,7 +125,7 @@ ClientRead:
break break
} }
} }
slog.Debug("net.tcp.server connection reset", "id", ts.config.Id, "remoteAddr", client.RemoteAddr().String()) slog.Debug("net.tcp.server connection reset", "id", ts.Id(), "remoteAddr", client.RemoteAddr().String())
ts.connectionsMu.Unlock() ts.connectionsMu.Unlock()
} }
} }
@@ -138,7 +138,7 @@ ClientRead:
break break
} }
} }
slog.Debug("net.tcp.server stream ended", "id", ts.config.Id, "remoteAddr", client.RemoteAddr().String()) slog.Debug("net.tcp.server stream ended", "id", ts.Id(), "remoteAddr", client.RemoteAddr().String())
ts.connectionsMu.Unlock() ts.connectionsMu.Unlock()
} }
return return
@@ -148,9 +148,9 @@ ClientRead:
messages := ts.Framer.Decode(buffer[0:byteCount]) messages := ts.Framer.Decode(buffer[0:byteCount])
for _, message := range messages { for _, message := range messages {
if ts.router != nil { if ts.router != nil {
ts.router.HandleInput(ts.config.Id, message) ts.router.HandleInput(ts.Id(), message)
} else { } else {
slog.Error("net.tcp.server has no router", "id", ts.config.Id) slog.Error("net.tcp.server has no router", "id", ts.Id())
} }
} }
} }
@@ -170,7 +170,7 @@ func (ts *TCPServer) Run() error {
<-ts.ctx.Done() <-ts.ctx.Done()
close(ts.quit) close(ts.quit)
listener.Close() listener.Close()
slog.Debug("router context done in module", "id", ts.config.Id) slog.Debug("router context done in module", "id", ts.Id())
}() }()
AcceptLoop: AcceptLoop:

View File

@@ -55,11 +55,11 @@ func (t *Timer) Run() error {
select { select {
case <-t.ctx.Done(): case <-t.ctx.Done():
t.timer.Stop() t.timer.Stop()
slog.Debug("router context done in module", "id", t.config.Id) slog.Debug("router context done in module", "id", t.Id())
return nil return nil
case time := <-t.timer.C: case time := <-t.timer.C:
if t.router != nil { if t.router != nil {
t.router.HandleInput(t.config.Id, time) t.router.HandleInput(t.Id(), time)
} }
} }
} }

View File

@@ -79,7 +79,7 @@ func (uc *UDPClient) Run() error {
} }
<-uc.ctx.Done() <-uc.ctx.Done()
slog.Debug("router context done in module", "id", uc.config.Id) slog.Debug("router context done in module", "id", uc.Id())
if uc.conn != nil { if uc.conn != nil {
uc.conn.Close() uc.conn.Close()
} }

View File

@@ -79,7 +79,7 @@ func (um *UDPMulticast) Run() error {
select { select {
case <-um.ctx.Done(): case <-um.ctx.Done():
// TODO(jwetzell): cleanup? // TODO(jwetzell): cleanup?
slog.Debug("router context done in module", "id", um.config.Id) slog.Debug("router context done in module", "id", um.Id())
return nil return nil
default: default:
um.conn.SetDeadline(time.Now().Add(time.Millisecond * 200)) um.conn.SetDeadline(time.Now().Add(time.Millisecond * 200))
@@ -97,9 +97,9 @@ func (um *UDPMulticast) Run() error {
message := buffer[:numBytes] message := buffer[:numBytes]
if um.router != nil { if um.router != nil {
um.router.HandleInput(um.config.Id, message) um.router.HandleInput(um.Id(), message)
} else { } else {
slog.Error("net.udp.multicast has no router", "id", um.config.Id) slog.Error("net.udp.multicast has no router", "id", um.Id())
} }
} }
} }

View File

@@ -81,7 +81,7 @@ func (us *UDPServer) Run() error {
select { select {
case <-us.ctx.Done(): case <-us.ctx.Done():
// TODO(jwetzell): cleanup? // TODO(jwetzell): cleanup?
slog.Debug("router context done in module", "id", us.config.Id) slog.Debug("router context done in module", "id", us.Id())
return nil return nil
default: default:
listener.SetDeadline(time.Now().Add(time.Millisecond * 200)) listener.SetDeadline(time.Now().Add(time.Millisecond * 200))
@@ -96,9 +96,9 @@ func (us *UDPServer) Run() error {
} }
message := buffer[:numBytes] message := buffer[:numBytes]
if us.router != nil { if us.router != nil {
us.router.HandleInput(us.config.Id, message) us.router.HandleInput(us.Id(), message)
} else { } else {
slog.Error("net.udp.server has no router", "id", us.config.Id) slog.Error("net.udp.server has no router", "id", us.Id())
} }
} }
} }