global.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Package global provides global variables and interfaces for accessing web and subscription servers.
  2. package global
  3. import (
  4. "context"
  5. _ "unsafe"
  6. "github.com/robfig/cron/v3"
  7. )
  8. var (
  9. webServer WebServer
  10. subServer SubServer
  11. )
  12. // WebServer interface defines methods for accessing the web server instance.
  13. type WebServer interface {
  14. GetCron() *cron.Cron // Get the cron scheduler
  15. GetCtx() context.Context // Get the server context
  16. }
  17. // SubServer interface defines methods for accessing the subscription server instance.
  18. type SubServer interface {
  19. GetCtx() context.Context // Get the server context
  20. }
  21. // SetWebServer sets the global web server instance.
  22. func SetWebServer(s WebServer) {
  23. webServer = s
  24. }
  25. // GetWebServer returns the global web server instance.
  26. func GetWebServer() WebServer {
  27. return webServer
  28. }
  29. // SetSubServer sets the global subscription server instance.
  30. func SetSubServer(s SubServer) {
  31. subServer = s
  32. }
  33. // GetSubServer returns the global subscription server instance.
  34. func GetSubServer() SubServer {
  35. return subServer
  36. }