Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventType ¶
type EventType string
EventType represents the type of event being handled
const ( EventExitApplication EventType = "EXIT_APPLICATION" EventGetData EventType = "GET_DATA" EventGetDirectories EventType = "GET_DIRECTORIES" EventGetDirectory EventType = "GET_DIRECTORY" EventGetFiles EventType = "GET_FILES" EventGetFile EventType = "GET_FILE" EventGetSettings EventType = "GET_SETTINGS" EventKeyboardKeypress EventType = "KEYBOARD_KEYPRESS" EventKeyboardText EventType = "KEYBOARD_TEXT" EventMediaControl EventType = "MEDIA_CONTROL" EventNotification EventType = "NOTIFICATION" EventOpen EventType = "OPEN" EventPowerHibernate EventType = "POWER_HIBERNATE" EventPowerLock EventType = "POWER_LOCK" EventPowerLogout EventType = "POWER_LOGOUT" EventPowerRestart EventType = "POWER_RESTART" EventPowerShutdown EventType = "POWER_SHUTDOWN" EventPowerSleep EventType = "POWER_SLEEP" EventRegisterDataListener EventType = "REGISTER_DATA_LISTENER" EventUnregisterDataListener EventType = "UNREGISTER_DATA_LISTENER" EventDataUpdate EventType = "DATA_UPDATE" EventCommandExecute EventType = "COMMAND_EXECUTE" EventUpdateSettings EventType = "UPDATE_SETTINGS" EventValidateDirectory EventType = "VALIDATE_DIRECTORY" )
type Message ¶
type Message struct {
ID string `json:"id" mapstructure:"id"`
Event EventType `json:"event" mapstructure:"event"`
Data any `json:"data" mapstructure:"data"`
}
Message is the base type for all events
type MessageHandler ¶
type MessageHandler func(connection string, message Message) MessageResponse
MessageHandler is the type for all event handlers
type MessageResponse ¶
type MessageResponse struct {
ID string `json:"id" mapstructure:"id"`
Type ResponseType `json:"type" mapstructure:"type"`
Subtype ResponseSubtype `json:"subtype" mapstructure:"subtype"`
Data any `json:"data" mapstructure:"data"`
Message string `json:"message,omitempty" mapstructure:"message,omitempty"`
Module types.ModuleName `json:"module,omitempty" mapstructure:"module,omitempty"`
}
MessageResponse is the base type for all responses
type MessageRouter ¶
type MessageRouter struct {
Handlers map[EventType]MessageHandler
}
MessageRouter is the type for all event routers
func NewMessageRouter ¶
func NewMessageRouter() *MessageRouter
NewMessageRouter creates a new MessageRouter
func (*MessageRouter) HandleMessage ¶
func (mr *MessageRouter) HandleMessage(connection string, message Message) MessageResponse
HandleMessage handles a new event
func (*MessageRouter) RegisterHandler ¶
func (mr *MessageRouter) RegisterHandler(event EventType, handler MessageHandler)
RegisterHandler registers a new event handler
func (*MessageRouter) RegisterSimpleHandler ¶
func (mr *MessageRouter) RegisterSimpleHandler(event EventType, fn func(string, Message) MessageResponse)
RegisterSimpleHandler registers a new event handler
type ResponseSubtype ¶
type ResponseSubtype string
const ( ResponseSubtypeNone ResponseSubtype = "NONE" ResponseSubtypeBadRequest ResponseSubtype = "BAD_REQUEST" ResponseSubtypeBadToken ResponseSubtype = "BAD_TOKEN" ResponseSubtypeBadJSON ResponseSubtype = "BAD_JSON" ResponseSubtypeBadDirectory ResponseSubtype = "BAD_DIRECTORY" ResponseSubtypeBadFile ResponseSubtype = "BAD_FILE" ResponseSubtypeBadPath ResponseSubtype = "BAD_PATH" ResponseSubtypeInvalidAction ResponseSubtype = "INVALID_ACTION" ResponseSubtypeListenerAlreadyRegistered ResponseSubtype = "LISTENER_ALREADY_REGISTERED" ResponseSubtypeListenerNotRegistered ResponseSubtype = "LISTENER_NOT_REGISTERED" ResponseSubtypeMissingAction ResponseSubtype = "MISSING_ACTION" ResponseSubtypeMissingBase ResponseSubtype = "MISSING_BASE" ResponseSubtypeMissingKey ResponseSubtype = "MISSING_KEY" ResponseSubtypeMissingModules ResponseSubtype = "MISSING_MODULES" ResponseSubtypeMissingPath ResponseSubtype = "MISSING_PATH" ResponseSubtypeMissingPathURL ResponseSubtype = "MISSING_PATH_URL" ResponseSubtypeMissingSetting ResponseSubtype = "MISSING_SETTING" ResponseSubtypeMissingText ResponseSubtype = "MISSING_TEXT" ResponseSubtypeMissingTitle ResponseSubtype = "MISSING_TITLE" ResponseSubtypeMissingToken ResponseSubtype = "MISSING_TOKEN" ResponseSubtypeMissingValue ResponseSubtype = "MISSING_VALUE" ResponseSubtypeCommandNotFound ResponseSubtype = "COMMAND_NOT_FOUND" ResponseSubtypeUnknownEvent ResponseSubtype = "UNKNOWN_EVENT" )
type ResponseType ¶
type ResponseType string
ResponseType represents the type of response being sent
const ( ResponseTypeError ResponseType = "ERROR" ResponseTypeApplicationExiting ResponseType = "APPLICATION_EXITING" ResponseTypeDataGet ResponseType = "DATA_GET" ResponseTypeDirectories ResponseType = "DIRECTORIES" ResponseTypeDirectory ResponseType = "DIRECTORY" ResponseTypeFiles ResponseType = "FILES" ResponseTypeFile ResponseType = "FILE" ResponseTypeKeyboardKeyPressed ResponseType = "KEYBOARD_KEY_PRESSED" ResponseTypeKeyboardTextSent ResponseType = "KEYBOARD_TEXT_SENT" ResponseTypeMediaControlled ResponseType = "MEDIA_CONTROLLED" ResponseTypeNotificationSent ResponseType = "NOTIFICATION_SENT" ResponseTypeOpened ResponseType = "OPENED" ResponseTypePowerHibernating ResponseType = "POWER_HIBERNATING" ResponseTypePowerLocking ResponseType = "POWER_LOCKING" ResponseTypePowerLoggingout ResponseType = "POWER_LOGGINGOUT" ResponseTypePowerRestarting ResponseType = "POWER_RESTARTING" ResponseTypePowerShuttingdown ResponseType = "POWER_SHUTTINGDOWN" ResponseTypePowerSleeping ResponseType = "POWER_SLEEPING" ResponseTypeDataListenerRegistered ResponseType = "DATA_LISTENER_REGISTERED" ResponseTypeDataListenerUnregistered ResponseType = "DATA_LISTENER_UNREGISTERED" ResponseTypeDataUpdate ResponseType = "DATA_UPDATE" ResponseTypeCommandExecuting ResponseType = "COMMAND_EXECUTING" ResponseTypeCommandCompleted ResponseType = "COMMAND_COMPLETED" ResponseTypeSettingsResult ResponseType = "SETTINGS_RESULT" ResponseTypeSettingsUpdated ResponseType = "SETTINGS_UPDATED" ResponseTypeDirectoryValidated ResponseType = "DIRECTORY_VALIDATED" )
Click to show internal directories.
Click to hide internal directories.