61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
// AppState holds application state.
|
|
type AppState struct {
|
|
Source Source
|
|
Destinations []Destination
|
|
BuildInfo BuildInfo
|
|
}
|
|
|
|
// BuildInfo holds information about the build.
|
|
type BuildInfo struct {
|
|
GoVersion string
|
|
Version string
|
|
}
|
|
|
|
// Source represents the source, currently always the mediaserver.
|
|
type Source struct {
|
|
Container Container
|
|
Live bool
|
|
Listeners int
|
|
Tracks []string
|
|
RTMPURL string
|
|
RTMPInternalURL string
|
|
ExitReason string
|
|
}
|
|
|
|
type DestinationStatus int
|
|
|
|
const (
|
|
DestinationStatusOffAir DestinationStatus = iota
|
|
DestinationStatusStarting
|
|
DestinationStatusLive
|
|
)
|
|
|
|
// Destination is a single destination.
|
|
type Destination struct {
|
|
Container Container
|
|
Status DestinationStatus
|
|
Name string
|
|
URL string
|
|
}
|
|
|
|
// Container represents the current state of an individual container.
|
|
//
|
|
// The source of truth is always the Docker daemon, this struct is used only
|
|
// for passing asynchronous state.
|
|
type Container struct {
|
|
ID string
|
|
State string
|
|
HealthState string
|
|
CPUPercent float64
|
|
MemoryUsageBytes uint64
|
|
RxRate int
|
|
TxRate int
|
|
RxSince time.Time
|
|
RestartCount int
|
|
ExitCode *int
|
|
}
|