app

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2024 License: MIT Imports: 9 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// Time to sleep during main loop so we're a nice neighbour.
	EventLoopSleep time.Duration = 250 * time.Millisecond
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Application

type Application interface {
	// Initialises the application object.
	//
	// This must be called, as it does several things to set up the
	// various facilities (such as logging) used by the application.
	Init()

	// Run the application.
	//
	// This enters the application's event loop, which will block until
	// the application is subsequently terminated.
	Run()

	// Terminate the application.
	//
	// Breaks out of the event loop, returning control back to the calling
	// function.
	Terminate()

	// Return the application's pretty name.
	Name() string

	// Return the application's version.
	Version() *semver.SemVer

	// Return the application's version control commit identifier.
	Commit() string

	// Return the application's context.
	Context() context.Context

	// Return the application's process manager instance.
	ProcessManager() process.Manager

	// Return the application's logger instance.
	Logger() logger.Logger

	// Return the application's configuration.
	Configuration() config.Config

	// Set the callback that will be invoked when the application starts.
	SetOnStart(OnSignalFn)

	// Set the callback that will be invoked when the application exits.
	//
	// If not set, then the default exit handler will be invoked.
	SetOnExit(OnSignalFn)

	// Set the callback that will be invoked when the application
	// receives a HUP signal.
	SetOnHUP(OnSignalFn)

	// Set the callback that will be invoked when the application
	// receives a USR1 signal.
	SetOnUSR1(OnSignalFn)

	// Set the callback that will be invoked when the application
	// receives a USR2 signal.
	SetOnUSR2(OnSignalFn)

	// Set the callback that will be invoked when the application
	// receives a WINCH signal.
	//
	// Be careful with this, as it will fire whenever the controlling
	// terminal is resized.
	SetOnWINCH(OnSignalFn)

	// Set the callback that will be invoked when the application
	// receives a CHLD signal.
	SetOnCHLD(OnSignalFn)

	// Set the callback that will be invoked whenever the event loop
	// fires.
	SetMainLoop(MainLoopFn)

	// Is the application running?
	IsRunning() bool

	// Is the application in 'debug' mode.
	IsDebug() bool
}

Application.

func NewApplication

func NewApplication(cnf *Config) Application

Create a new application.

type Config added in v0.3.3

type Config struct {
	// The application's pretty name.
	Name string

	// The application's version number.
	Version *semver.SemVer

	// The application's logger instance.
	Logger logger.Logger

	// The application's process manager instance.
	ProcessManager process.Manager

	// The application's configuration.
	AppConfig any

	// Validators used to validate the application's configuration.
	Validators config.ValidatorsMap
}

Application configuration.

func NewConfig added in v0.3.3

func NewConfig() *Config

Create a new empty configuration.

type MainLoopFn

type MainLoopFn func(Application)

Main loop callback function type.

type OnSignalFn

type OnSignalFn func(Application)

Signal callback function type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL