mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 23:51:44 +08:00
41 lines
999 B
Go
41 lines
999 B
Go
package dispatcher
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
"github.com/wailsapp/wails/v2/internal/binding"
|
|
"github.com/wailsapp/wails/v2/internal/frontend"
|
|
"github.com/wailsapp/wails/v2/internal/logger"
|
|
)
|
|
|
|
type Dispatcher struct {
|
|
log *logger.Logger
|
|
bindings *binding.Bindings
|
|
events frontend.Events
|
|
bindingsDB *binding.DB
|
|
}
|
|
|
|
func NewDispatcher(log *logger.Logger, bindings *binding.Bindings, events frontend.Events) *Dispatcher {
|
|
return &Dispatcher{
|
|
log: log,
|
|
bindings: bindings,
|
|
events: events,
|
|
bindingsDB: bindings.DB(),
|
|
}
|
|
}
|
|
|
|
func (d *Dispatcher) ProcessMessage(message string, sender frontend.Frontend) (string, error) {
|
|
if message == "" {
|
|
return "", errors.New("No message to process")
|
|
}
|
|
switch message[0] {
|
|
case 'L':
|
|
return d.processLogMessage(message)
|
|
case 'E':
|
|
return d.processEventMessage(message, sender)
|
|
case 'C':
|
|
return d.processCallMessage(message)
|
|
default:
|
|
return "", errors.New("Unknown message from front end: " + message)
|
|
}
|
|
}
|