Skip to content
Snippets Groups Projects
Commit 402d3433 authored by Richard T. Carback III's avatar Richard T. Carback III
Browse files

Pass events api down to network manager

parent 592a6805
No related branches found
No related tags found
3 merge requests!23Release,!13Hotfix/no host cooldown + return sende2e TS,!11Client Event Reporting API
......@@ -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
}
......
......@@ -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
......
......@@ -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)
......
......@@ -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)
}
......@@ -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
}
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment