diff --git a/api/client.go b/api/client.go index fb5da3a90ffb4270e6c6157eaf4a05fd21dd229d..b1edca2841c9c349c1443cd6e1f903530265963b 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 33c647a358fe26f08afaabeff3f5d883a2082b8d..86e75b14ef212033ca906858e265c713022ee709 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 1b85ec5d0565690836852c979e41fdc1b8c7e953..775d2a6e6609009be6082cb29bdd73dba0a880ee 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 0aba83b45cae650362d269e0b780c61c07a09238..f08ff547e637bf4b0fccde6d166d7e8cf21298d8 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 fc0d6aa429348b43469494b3136abc30c347e6da..8fe96d073d123e971f14f3a3985bb05c30c0ce10 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 5fcef26c34cac6d6193e840ccce5f87303d8446d..cbf06f0880e62e187da903df47011ea478c6b670 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)