X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fagent%2Fevents.go;h=a45d4042af5e2b329d5a1d37168d393e1914ef29;hb=7c7d90a781082c6bd22d12a5e2451ca61a5198af;hp=046c37747b1f7e313779a4090f18d3449f076374;hpb=be13167b869161b6e19dc3e94835245cdc7911e5;p=src%2Fxds%2Fxds-agent.git diff --git a/lib/agent/events.go b/lib/agent/events.go index 046c377..a45d404 100644 --- a/lib/agent/events.go +++ b/lib/agent/events.go @@ -4,16 +4,9 @@ import ( "fmt" "time" - "github.com/iotbzh/xds-agent/lib/apiv1" + "github.com/iotbzh/xds-agent/lib/xaapiv1" ) -var _EVTAllList = []string{ - apiv1.EVTServerConfig, - apiv1.EVTProjectAdd, - apiv1.EVTProjectDelete, - apiv1.EVTProjectChange, -} - // EventDef Definition on one event type EventDef struct { sids map[string]int @@ -28,7 +21,7 @@ type Events struct { // NewEvents creates an instance of Events func NewEvents(ctx *Context) *Events { evMap := make(map[string]*EventDef) - for _, ev := range _EVTAllList { + for _, ev := range xaapiv1.EVTAllList { evMap[ev] = &EventDef{ sids: make(map[string]int), } @@ -41,13 +34,13 @@ func NewEvents(ctx *Context) *Events { // GetList returns the list of all supported events func (e *Events) GetList() []string { - return _EVTAllList + return xaapiv1.EVTAllList } // 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 != apiv1.EVTAll { + evs := xaapiv1.EVTAllList + if evName != xaapiv1.EVTAll { if _, ok := e.eventsMap[evName]; !ok { return fmt.Errorf("Unsupported event type name") } @@ -61,8 +54,8 @@ 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 != apiv1.EVTAll { + evs := xaapiv1.EVTAllList + if evName != xaapiv1.EVTAll { if _, ok := e.eventsMap[evName]; !ok { return fmt.Errorf("Unsupported event type name") } @@ -78,7 +71,7 @@ func (e *Events) UnRegister(evName, sessionID string) error { } // Emit Used to manually emit an event -func (e *Events) Emit(evName string, data interface{}) error { +func (e *Events) Emit(evName string, data interface{},fromSid string) error { var firstErr error if _, ok := e.eventsMap[evName]; !ok { @@ -95,17 +88,19 @@ func (e *Events) Emit(evName string, data interface{}) error { so := e.webServer.sessions.IOSocketGet(sid) if so == nil { if firstErr == nil { - firstErr = fmt.Errorf("IOSocketGet return nil") + firstErr = fmt.Errorf("IOSocketGet return nil (SID=%v)", sid) } continue } - msg := apiv1.EventMsg{ - Time: time.Now().String(), - Type: evName, - Data: data, + msg := xaapiv1.EventMsg{ + Time: time.Now().String(), + FromSessionID: fromSid, + Type: evName, + Data: data, } - if err := (*so).Emit(apiv1.EventTypePrefix+evName, msg); err != nil { - e.Log.Errorf("WS Emit %v error : %v", apiv1.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 }