39 lines
758 B
Go
39 lines
758 B
Go
package app
|
|
|
|
import (
|
|
"sync/atomic"
|
|
|
|
"git.oblat.lv/alex/triggerssmith/internal/config"
|
|
"git.oblat.lv/alex/triggerssmith/internal/server"
|
|
)
|
|
|
|
type App struct {
|
|
configuration atomic.Value // *config.Config
|
|
ls *server.LiveServer
|
|
}
|
|
|
|
// NewApp creates a new instance of the App struct. Always returns ErrNilPointerWarn.
|
|
func NewApp() (*App, error) {
|
|
app := &App{}
|
|
return app, ErrNilPointerWarn
|
|
}
|
|
|
|
func (a *App) LoadConfiguration(cfg *config.Config) {
|
|
a.configuration.Store(cfg)
|
|
}
|
|
|
|
func (a *App) Configuration() *config.Config {
|
|
cfg := a.configuration.Load()
|
|
if cfg == nil {
|
|
return nil
|
|
}
|
|
return cfg.(*config.Config)
|
|
}
|
|
|
|
func (a *App) Server() *server.LiveServer {
|
|
if a.ls == nil {
|
|
a.ls, _ = server.Create("main_server")
|
|
}
|
|
return a.ls
|
|
}
|