mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-11 10:44:28 +00:00
62 lines
2.3 KiB
Go
62 lines
2.3 KiB
Go
package model
|
|
|
|
type (
|
|
// The event type.
|
|
Event int
|
|
// The event response.
|
|
EventResponse int
|
|
// The handler signature.
|
|
EventHandler func(typeOf Event, value interface{}) (responseOf EventResponse)
|
|
RevelCallback interface {
|
|
FireEvent(key Event, value interface{}) (response EventResponse)
|
|
PackageResolver(pkgName string) error
|
|
}
|
|
)
|
|
|
|
const (
|
|
// Event type when templates are going to be refreshed (receivers are registered template engines added to the template.engine conf option).
|
|
TEMPLATE_REFRESH_REQUESTED Event = iota
|
|
// Event type when templates are refreshed (receivers are registered template engines added to the template.engine conf option).
|
|
TEMPLATE_REFRESH_COMPLETED
|
|
// Event type before all module loads, events thrown to handlers added to AddInitEventHandler.
|
|
|
|
// Event type before all module loads, events thrown to handlers added to AddInitEventHandler.
|
|
REVEL_BEFORE_MODULES_LOADED
|
|
// Event type before module loads, events thrown to handlers added to AddInitEventHandler.
|
|
REVEL_BEFORE_MODULE_LOADED
|
|
// Event type after module loads, events thrown to handlers added to AddInitEventHandler.
|
|
REVEL_AFTER_MODULE_LOADED
|
|
// Event type after all module loads, events thrown to handlers added to AddInitEventHandler.
|
|
REVEL_AFTER_MODULES_LOADED
|
|
|
|
// Event type before server engine is initialized, receivers are active server engine and handlers added to AddInitEventHandler.
|
|
ENGINE_BEFORE_INITIALIZED
|
|
// Event type before server engine is started, receivers are active server engine and handlers added to AddInitEventHandler.
|
|
ENGINE_STARTED
|
|
// Event type after server engine is stopped, receivers are active server engine and handlers added to AddInitEventHandler.
|
|
ENGINE_SHUTDOWN
|
|
|
|
// Called before routes are refreshed.
|
|
ROUTE_REFRESH_REQUESTED
|
|
// Called after routes have been refreshed.
|
|
ROUTE_REFRESH_COMPLETED
|
|
|
|
// Fired when a panic is caught during the startup process.
|
|
REVEL_FAILURE
|
|
)
|
|
|
|
var initEventList = []EventHandler{} // Event handler list for receiving events
|
|
|
|
// Fires system events from revel.
|
|
func RaiseEvent(key Event, value interface{}) (response EventResponse) {
|
|
for _, handler := range initEventList {
|
|
response |= handler(key, value)
|
|
}
|
|
return
|
|
}
|
|
|
|
// Add event handler to listen for all system events.
|
|
func AddInitEventHandler(handler EventHandler) {
|
|
initEventList = append(initEventList, handler)
|
|
}
|