diff --git a/backend/cmd/db/main.go b/backend/cmd/db/main.go index 962057213..f6cd481a7 100644 --- a/backend/cmd/db/main.go +++ b/backend/cmd/db/main.go @@ -60,7 +60,7 @@ func main() { } // Handle heuristics and save to temporary queue in memory - heurFinder.HandleMessage(session, msg) + heurFinder.HandleMessage(sessionID, msg) // Process saved heuristics messages as usual messages above in the code heurFinder.IterateSessionReadyMessages(sessionID, func(msg messages.Message) { diff --git a/backend/internal/heuristics/heuristics.go b/backend/internal/heuristics/heuristics.go index 677574951..c55ad33b3 100644 --- a/backend/internal/heuristics/heuristics.go +++ b/backend/internal/heuristics/heuristics.go @@ -1,43 +1,26 @@ package heuristics import ( - . "openreplay/backend/pkg/db/types" . "openreplay/backend/pkg/messages" ) -type MessageHandler interface { - HandleMessage(Message) -} -type ReadyMessagesIterator interface { - IterateReadyMessages(func(Message)) -} - -type Handler interface { - MessageHandler - ReadyMessagesIterator -} - type mainHandler map[uint64]*sessHandler func NewHandler() mainHandler { return make(mainHandler) } -func (m mainHandler) getSessHandler(session *Session) *sessHandler { - if session == nil { - //AAAA - return nil - } - s := m[session.SessionID] +func (m mainHandler) getSessHandler(sessionID uint64) *sessHandler { + s := m[sessionID] if s == nil { - s = newSessHandler(session) - m[session.SessionID] = s + s = newSessHandler() + m[sessionID] = s } return s } -func (m mainHandler) HandleMessage(session *Session, msg Message) { - s := m.getSessHandler(session) +func (m mainHandler) HandleMessage(sessionID uint64, msg Message) { + s := m.getSessHandler(sessionID) s.HandleMessage(msg) } @@ -51,14 +34,3 @@ func (m mainHandler) IterateSessionReadyMessages(sessionID uint64, iter func(msg delete(m, sessionID) } } - -func (m mainHandler) IterateReadyMessages(iter func(sessionID uint64, msg Message)) { - for sessionID, s := range m { - s.IterateReadyMessages(func(msg Message) { - iter(sessionID, msg) - }) - if s.IsEnded() { - delete(m, sessionID) - } - } -} diff --git a/backend/internal/heuristics/inputEventBuilder.go b/backend/internal/heuristics/inputEventBuilder.go index ce1b710ca..624e15e47 100644 --- a/backend/internal/heuristics/inputEventBuilder.go +++ b/backend/internal/heuristics/inputEventBuilder.go @@ -1,4 +1,4 @@ -package builder +package heuristics import ( . "openreplay/backend/pkg/messages" diff --git a/backend/internal/heuristics/pageEventBuilder.go b/backend/internal/heuristics/pageEventBuilder.go index 2b0665894..96a1b287e 100644 --- a/backend/internal/heuristics/pageEventBuilder.go +++ b/backend/internal/heuristics/pageEventBuilder.go @@ -1,4 +1,4 @@ -package builder +package heuristics import ( . "openreplay/backend/pkg/messages" diff --git a/backend/internal/heuristics/session.go b/backend/internal/heuristics/session.go index 3946bf918..a49db948b 100644 --- a/backend/internal/heuristics/session.go +++ b/backend/internal/heuristics/session.go @@ -1,19 +1,21 @@ package heuristics import ( - . "openreplay/backend/pkg/db/types" . "openreplay/backend/pkg/messages" ) +type Handler interface { + HandleMessage(Message) + IterateReadyMessages(func(Message)) +} + type sessHandler struct { - session *Session handlers []Handler ended bool } -func newSessHandler(session *Session) *sessHandler { +func newSessHandler() *sessHandler { return &sessHandler{ - session: session, handlers: []Handler{ new(clickrage), new(performanceAggregator),