types.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package kos
  2. import (
  3. "context"
  4. "git.nspix.com/golang/kos/entry"
  5. "git.nspix.com/golang/kos/entry/cli"
  6. "git.nspix.com/golang/kos/entry/http"
  7. )
  8. type (
  9. // Server custom attach server
  10. Server interface {
  11. Start(ctx context.Context) (err error)
  12. Stop() (err error)
  13. }
  14. // HandleFunc request handle func
  15. HandleFunc func(ctx Context) (err error)
  16. // Application app interface
  17. Application interface {
  18. Info() *Info
  19. Http() *http.Server
  20. Command() *cli.Server
  21. Handle(method string, cb HandleFunc)
  22. }
  23. // Info application information
  24. Info struct {
  25. ID string `json:"id"`
  26. Name string `json:"name"`
  27. Version string `json:"version"`
  28. VcsVersion string `json:"vcsVersion"`
  29. Status string `json:"status"`
  30. Address string `json:"address"`
  31. Port int `json:"port"`
  32. Metadata map[string]string `json:"metadata"`
  33. }
  34. // State application runtime state
  35. State struct {
  36. ID string `json:"id"`
  37. Name string `json:"name"`
  38. Version string `json:"version"`
  39. Uptime string `json:"uptime"`
  40. Gateway *entry.State `json:"gateway"`
  41. }
  42. )