X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fagent%2Fevents.go;h=2684ff5d8de3ea22f2eeb0ceed3de15f48498a81;hb=02aec942b44eecd2ea9b311bb4ba2d60cce21e9a;hp=e66f758b9a970e705e5f93b7b820a9cacd327724;hpb=4695555e178bcabe54c5bf82117c9c4cef5440b5;p=src%2Fxds%2Fxds-agent.git diff --git a/lib/agent/events.go b/lib/agent/events.go index e66f758..2684ff5 100644 --- a/lib/agent/events.go +++ b/lib/agent/events.go @@ -3,39 +3,23 @@ package agent import ( "fmt" "time" -) - -// Events constants -const ( - // EventTypePrefix Used as event prefix - EventTypePrefix = "event:" // following by event type - // Supported Events type - EVTAll = "all" - EVTServerConfig = "server-config" // data type ServerCfg - EVTProjectAdd = "project-add" // data type ProjectConfig - EVTProjectDelete = "project-delete" // data type ProjectConfig - EVTProjectChange = "project-state-change" // data type ProjectConfig + "github.com/iotbzh/xds-agent/lib/apiv1" ) var _EVTAllList = []string{ - EVTServerConfig, - EVTProjectAdd, - EVTProjectDelete, - EVTProjectChange, -} - -// EventMsg Message send -type EventMsg struct { - Time string `json:"time"` - Type string `json:"type"` - Data interface{} `json:"data"` + apiv1.EVTServerConfig, + apiv1.EVTProjectAdd, + apiv1.EVTProjectDelete, + apiv1.EVTProjectChange, } +// EventDef Definition on one event type EventDef struct { sids map[string]int } +// Events Hold registered events per context type Events struct { *Context eventsMap map[string]*EventDef @@ -63,7 +47,7 @@ func (e *Events) GetList() []string { // Register Used by a client/session to register to a specific (or all) event(s) func (e *Events) Register(evName, sessionID string) error { evs := _EVTAllList - if evName != EVTAll { + if evName != apiv1.EVTAll { if _, ok := e.eventsMap[evName]; !ok { return fmt.Errorf("Unsupported event type name") } @@ -78,7 +62,7 @@ func (e *Events) Register(evName, sessionID string) error { // UnRegister Used by a client/session to unregister event(s) func (e *Events) UnRegister(evName, sessionID string) error { evs := _EVTAllList - if evName != EVTAll { + if evName != apiv1.EVTAll { if _, ok := e.eventsMap[evName]; !ok { return fmt.Errorf("Unsupported event type name") } @@ -115,13 +99,14 @@ func (e *Events) Emit(evName string, data interface{}) error { } continue } - msg := EventMsg{ + msg := apiv1.EventMsg{ Time: time.Now().String(), Type: evName, Data: data, } - if err := (*so).Emit(EventTypePrefix+evName, msg); err != nil { - e.Log.Errorf("WS Emit %v error : %v", EventTypePrefix+evName, err) + e.Log.Debugf("Emit Event %s: %v", evName, sid) + if err := (*so).Emit(evName, msg); err != nil { + e.Log.Errorf("WS Emit %v error : %v", evName, err) if firstErr == nil { firstErr = err }