Improve documentation in backend.go.

Signed-off-by: David Anderson <dave@natulte.net>
pull/10/head
David Anderson 4 years ago committed by Dave Anderson
parent b0f5751a76
commit 73c0a2bee2

@ -72,9 +72,9 @@ type Notify struct {
type StateKey string
type Options struct {
// Public logtail id used by frontend.
// FrontendLogID is the public logtail id used by the frontend.
FrontendLogID string
// Base URL for the tailcontrol server to talk to.
// ServerURL is the base URL of the tailcontrol server to talk to.
ServerURL string
// StateKey and Prefs together define the state the backend should
// use:
@ -86,27 +86,32 @@ type Options struct {
// an initial overwrite of backend state with Prefs.
StateKey StateKey
Prefs *Prefs
// Callback for backend events.
// Notify is called when backend events happen.
Notify func(Notify) `json:"-"`
}
type Backend interface {
// Start or restart the backend, because a new Handle has connected.
Start(opts Options) error
// Start a new interactive login. This should trigger a new
// BrowseToURL notification eventually.
// StartLoginInteractive requests to start a new interactive login
// flow. This should trigger a new BrowseToURL notification
// eventually.
StartLoginInteractive()
// Terminate the current login session and stop the wireguard engine.
// Logout terminates the current login session and stop the
// wireguard engine.
Logout()
// Install a new set of user preferences, including WantRunning.
// This may cause the wireguard engine to reconfigure or stop.
// SetPrefs install a new set of user preferences, including
// WantRunning. This may cause the wireguard engine to
// reconfigure or stop.
SetPrefs(new Prefs)
// Poll for an update from the wireguard engine. Only needed if
// you want to display byte counts. Connection events are emitted
// automatically without polling.
// RequestEngineStatus polls for an update from the wireguard
// engine. Only needed if you want to display byte
// counts. Connection events are emitted automatically without
// polling.
RequestEngineStatus()
// Pretend the current key is going to expire after duration x.
// This is useful for testing GUIs to make sure they react properly
// with keys that are going to expire.
// FakeExpireAfter pretends that the current key is going to
// expire after duration x. This is useful for testing GUIs to
// make sure they react properly with keys that are going to
// expire.
FakeExpireAfter(x time.Duration)
}

Loading…
Cancel
Save