basic loop to discover providers

This commit is contained in:
2026-08-25 22:01:34 +01:00
parent f4bde52f40
commit 3493a73a82
6 changed files with 118 additions and 157 deletions
+23 -9
View File
@@ -14,28 +14,42 @@ import (
// Make this be some kind of struct where we can access a function that returns
// the selected provider by its name
type Provider struct {
Name string
Provider telemetry.TelemetryProvider
Name string
NewProvider func(*slog.Logger) telemetry.TelemetryProvider
IsRunning func() bool
}
var Providers = map[string]Provider{
beamng.NAME: {
Name: beamng.NAME,
Name: beamng.NAME,
NewProvider: NewBeamNGProvider,
IsRunning: beamng.IsRunning,
},
iracing.NAME: {
Name: iracing.NAME,
Name: iracing.NAME,
NewProvider: NewLiveIRacingProvider,
IsRunning: iracing.IsRunning,
},
}
func NewIRacingProvider(logger *slog.Logger, opts goirsdk.Options,
) telemetry.TelemetryProvider {
provider, _ := iracing.NewIRacingProvider(logger, opts)
// func NewIRacingProvider(logger *slog.Logger, opts goirsdk.Options,
// ) telemetry.TelemetryProvider {
// provider, _ := iracing.NewIRacingProvider(logger, opts)
//
// return provider
// }
func NewLiveIRacingProvider(logger *slog.Logger) telemetry.TelemetryProvider {
provider, _ := iracing.NewIRacingProvider(logger, goirsdk.Options{
SourceType: goirsdk.SharedMemoryFile,
})
return provider
}
func NewBeamNGProvider(ip string, port int) telemetry.TelemetryProvider {
provider, _ := beamng.NewBeamNGProvider(ip, port)
func NewBeamNGProvider(logger *slog.Logger) telemetry.TelemetryProvider {
// Get from some kind of config or whatever
provider, _ := beamng.NewBeamNGProvider("127.0.0.1", 4443)
return provider
}