3x-ui/web/global/global.go

46 lines
1 KiB
Go
Raw Permalink Normal View History

2025-09-20 07:35:50 +00:00
// Package global provides global variables and interfaces for accessing web and subscription servers.
2023-02-09 19:18:06 +00:00
package global
import (
"context"
_ "unsafe"
2023-04-27 20:45:06 +00:00
"github.com/robfig/cron/v3"
2023-02-09 19:18:06 +00:00
)
var (
webServer WebServer
subServer SubServer
)
2023-02-09 19:18:06 +00:00
2025-09-20 07:35:50 +00:00
// WebServer interface defines methods for accessing the web server instance.
2023-02-09 19:18:06 +00:00
type WebServer interface {
2025-09-20 07:35:50 +00:00
GetCron() *cron.Cron // Get the cron scheduler
GetCtx() context.Context // Get the server context
2023-02-09 19:18:06 +00:00
}
2025-09-20 07:35:50 +00:00
// SubServer interface defines methods for accessing the subscription server instance.
type SubServer interface {
2025-09-20 07:35:50 +00:00
GetCtx() context.Context // Get the server context
}
2025-09-20 07:35:50 +00:00
// SetWebServer sets the global web server instance.
2023-02-09 19:18:06 +00:00
func SetWebServer(s WebServer) {
webServer = s
}
2025-09-20 07:35:50 +00:00
// GetWebServer returns the global web server instance.
2023-02-09 19:18:06 +00:00
func GetWebServer() WebServer {
return webServer
}
2025-09-20 07:35:50 +00:00
// SetSubServer sets the global subscription server instance.
func SetSubServer(s SubServer) {
subServer = s
}
2025-09-20 07:35:50 +00:00
// GetSubServer returns the global subscription server instance.
func GetSubServer() SubServer {
return subServer
}