From 402d3433760f2b30a25d928457f367d503325f71 Mon Sep 17 00:00:00 2001 From: "Richard T. Carback III" <rick.carback@gmail.com> Date: Fri, 27 Aug 2021 16:41:51 +0000 Subject: [PATCH] Pass events api down to network manager --- api/client.go | 8 ++++---- api/event.go | 7 +++---- api/event_test.go | 16 ++++++++-------- interfaces/event.go | 5 +++++ network/internal/internal.go | 4 ++++ network/manager.go | 8 ++++++-- 6 files changed, 30 insertions(+), 18 deletions(-) diff --git a/api/client.go b/api/client.go index fb5da3a90..b1edca284 100644 --- a/api/client.go +++ b/api/client.go @@ -241,8 +241,8 @@ func Login(storageDir string, password []byte, parameters params.Network) (*Clie } // Initialize network and link it to context - c.network, err = network.NewManager(c.storage, c.switchboard, c.rng, c.comms, - parameters, def) + c.network, err = network.NewManager(c.storage, c.switchboard, c.rng, + c.events, c.comms, parameters, def) if err != nil { return nil, err } @@ -301,8 +301,8 @@ func LoginWithNewBaseNDF_UNSAFE(storageDir string, password []byte, } // Initialize network and link it to context - c.network, err = network.NewManager(c.storage, c.switchboard, c.rng, c.comms, - parameters, def) + c.network, err = network.NewManager(c.storage, c.switchboard, c.rng, + c.events, c.comms, parameters, def) if err != nil { return nil, err } diff --git a/api/event.go b/api/event.go index 33c647a35..86e75b14e 100644 --- a/api/event.go +++ b/api/event.go @@ -42,10 +42,9 @@ func newEventManager() *eventManager { } } -// ReportEvent reports an event from the client to api users, providing a +// Report reports an event from the client to api users, providing a // priority, category, eventType, and details -func (e *eventManager) ReportEvent(priority int, category, evtType, - details string) { +func (e *eventManager) Report(priority int, category, evtType, details string) { re := reportableEvent{ Priority: priority, Category: category, @@ -113,7 +112,7 @@ func (e *eventManager) reportEventsHandler(stop *stoppable.Single) { // ReportEvent reports an event from the client to api users, providing a // priority, category, eventType, and details func (c *Client) ReportEvent(priority int, category, evtType, details string) { - c.events.ReportEvent(priority, category, evtType, details) + c.events.Report(priority, category, evtType, details) } // RegisterEventCallback records the given function to receive diff --git a/api/event_test.go b/api/event_test.go index 1b85ec5d0..775d2a6e6 100644 --- a/api/event_test.go +++ b/api/event_test.go @@ -34,10 +34,10 @@ func TestEventReporting(t *testing.T) { } // Send a few events - evtMgr.ReportEvent(10, "Hi", "TypityType", "I'm an event") - evtMgr.ReportEvent(1, "Hi", "TypeII", "Type II errors are the worst") - evtMgr.ReportEvent(20, "Hi", "TypityType3", "eventy details") - evtMgr.ReportEvent(22, "Hi", "TypityType4", "I'm an event 2") + evtMgr.Report(10, "Hi", "TypityType", "I'm an event") + evtMgr.Report(1, "Hi", "TypeII", "Type II errors are the worst") + evtMgr.Report(20, "Hi", "TypityType3", "eventy details") + evtMgr.Report(22, "Hi", "TypityType4", "I'm an event 2") time.Sleep(100 * time.Millisecond) @@ -67,10 +67,10 @@ func TestEventReporting(t *testing.T) { // Delete callback evtMgr.UnregisterEventCallback("test") // Send more events - evtMgr.ReportEvent(10, "Hi", "TypityType", "I'm an event") - evtMgr.ReportEvent(1, "Hi", "TypeII", "Type II errors are the worst") - evtMgr.ReportEvent(20, "Hi", "TypityType3", "eventy details") - evtMgr.ReportEvent(22, "Hi", "TypityType4", "I'm an event 2") + evtMgr.Report(10, "Hi", "TypityType", "I'm an event") + evtMgr.Report(1, "Hi", "TypeII", "Type II errors are the worst") + evtMgr.Report(20, "Hi", "TypityType3", "eventy details") + evtMgr.Report(22, "Hi", "TypityType4", "I'm an event 2") time.Sleep(100 * time.Millisecond) diff --git a/interfaces/event.go b/interfaces/event.go index 0aba83b45..f08ff547e 100644 --- a/interfaces/event.go +++ b/interfaces/event.go @@ -9,3 +9,8 @@ package interfaces // EventCallbackFunction defines the callback functions for client event reports type EventCallbackFunction func(priority int, category, evtType, details string) + +// EventManager reporting api (used internally) +type EventManager interface { + Report(priority int, category, evtType, details string) +} diff --git a/network/internal/internal.go b/network/internal/internal.go index fc0d6aa42..8fe96d073 100644 --- a/network/internal/internal.go +++ b/network/internal/internal.go @@ -8,6 +8,7 @@ package internal import ( + "gitlab.com/elixxir/client/interfaces" "gitlab.com/elixxir/client/network/health" "gitlab.com/elixxir/client/storage" "gitlab.com/elixxir/client/switchboard" @@ -37,4 +38,7 @@ type Internal struct { //channels NodeRegistration chan network.NodeGateway + + // Event Reporting + Events interfaces.EventManager } diff --git a/network/manager.go b/network/manager.go index 5fcef26c3..cbf06f088 100644 --- a/network/manager.go +++ b/network/manager.go @@ -55,12 +55,16 @@ type manager struct { // Address space size addrSpace *ephemeral.AddressSpace + + // Event reporting api + events interfaces.EventManager } // NewManager builds a new reception manager object using inputted key fields func NewManager(session *storage.Session, switchboard *switchboard.Switchboard, - rng *fastRNG.StreamGenerator, comms *client.Comms, - params params.Network, ndf *ndf.NetworkDefinition) (interfaces.NetworkManager, error) { + rng *fastRNG.StreamGenerator, events interfaces.EventManager, + comms *client.Comms, params params.Network, + ndf *ndf.NetworkDefinition) (interfaces.NetworkManager, error) { //start network instance instance, err := network.NewInstance(comms.ProtoComms, ndf, nil, nil, network.None, params.FastPolling) -- GitLab