diff --git a/pkg/mining/container.go b/pkg/mining/container.go index 6fd7ec1..8b211cf 100644 --- a/pkg/mining/container.go +++ b/pkg/mining/container.go @@ -8,29 +8,22 @@ import ( "forge.lthn.ai/Snider/Mining/pkg/logging" ) -// cfg := mining.DefaultContainerConfig() -// cfg.ListenAddr = ":8080" -// cfg.SimulationMode = true +// containerConfig := mining.DefaultContainerConfig() +// containerConfig.ListenAddr = ":8080" +// containerConfig.SimulationMode = true +// ContainerConfig{ListenAddr: ":9090", DisplayAddr: "localhost:9090", SwaggerNamespace: "/api/v1/mining"} +// ContainerConfig{SimulationMode: true, Database: database.Config{Enabled: false}} type ContainerConfig struct { - // Database configuration - Database database.Config - - // ListenAddr is the address to listen on (e.g., ":9090") - ListenAddr string - - // DisplayAddr is the address shown in Swagger docs - DisplayAddr string - - // SwaggerNamespace is the API path prefix + Database database.Config + ListenAddr string + DisplayAddr string SwaggerNamespace string - - // SimulationMode enables simulation mode for testing - SimulationMode bool + SimulationMode bool } -// cfg := mining.DefaultContainerConfig() -// cfg.ListenAddr = ":8080" -// c := NewContainer(cfg) +// containerConfig := mining.DefaultContainerConfig() +// containerConfig.ListenAddr = ":8080" +// container := NewContainer(containerConfig) func DefaultContainerConfig() ContainerConfig { return ContainerConfig{ Database: database.Config{ @@ -44,26 +37,20 @@ func DefaultContainerConfig() ContainerConfig { } } -// c := NewContainer(DefaultContainerConfig()) -// c.Initialize(ctx); c.Start(ctx); defer c.Shutdown(ctx) +// container := NewContainer(DefaultContainerConfig()) +// container.Initialize(ctx); container.Start(ctx); defer container.Shutdown(ctx) type Container struct { - config ContainerConfig - mutex sync.RWMutex - - // Core services + config ContainerConfig + mutex sync.RWMutex manager ManagerInterface profileManager *ProfileManager nodeService *NodeService eventHub *EventHub service *Service - - // Database store (interface for testing) - hashrateStore database.HashrateStore - - // Initialization state - initialized bool + hashrateStore database.HashrateStore + initialized bool transportStarted bool - shutdownCh chan struct{} + shutdownCh chan struct{} } // container := NewContainer(DefaultContainerConfig()) @@ -216,24 +203,24 @@ func (c *Container) Manager() ManagerInterface { return c.manager } -// pm := container.ProfileManager() -// pm.SaveProfile("eth-main", config) +// profileManager := container.ProfileManager() +// profileManager.SaveProfile("eth-main", config) func (c *Container) ProfileManager() *ProfileManager { c.mutex.RLock() defer c.mutex.RUnlock() return c.profileManager } -// ns := container.NodeService() // nil if P2P is unavailable -// ns.GetPeers() +// nodeService := container.NodeService() // nil if P2P is unavailable +// nodeService.GetPeers() func (c *Container) NodeService() *NodeService { c.mutex.RLock() defer c.mutex.RUnlock() return c.nodeService } -// hub := container.EventHub() -// hub.Broadcast(event) +// eventHub := container.EventHub() +// eventHub.Broadcast(event) func (c *Container) EventHub() *EventHub { c.mutex.RLock() defer c.mutex.RUnlock()