Skip to content
Snippets Groups Projects
Commit 46eec81f authored by Josh Brooks's avatar Josh Brooks
Browse files

Remove GetServices from interface

parent b5c88b43
No related branches found
No related tags found
2 merge requests!510Release,!360Implement Notifications for bindings
...@@ -176,9 +176,6 @@ type Client interface { ...@@ -176,9 +176,6 @@ type Client interface {
// running. Multiple trackTriggers can be registered. // running. Multiple trackTriggers can be registered.
TrackServices(tracker message.ServicesTracker) TrackServices(tracker message.ServicesTracker)
// GetServices retrieves the message.ServiceList.
GetServices() message.ServiceList
/* === In inProcess ===================================================== */ /* === In inProcess ===================================================== */
/* It is possible to receive a message over cMix before the fingerprints or /* It is possible to receive a message over cMix before the fingerprints or
triggers are registered. As a result, when handling fails, messages are triggers are registered. As a result, when handling fails, messages are
......
...@@ -43,7 +43,6 @@ type Handler interface { ...@@ -43,7 +43,6 @@ type Handler interface {
DeleteService(clientID *id.ID, toDelete Service, response Processor) DeleteService(clientID *id.ID, toDelete Service, response Processor)
DeleteClientService(clientID *id.ID) DeleteClientService(clientID *id.ID)
TrackServices(triggerTracker ServicesTracker) TrackServices(triggerTracker ServicesTracker)
GetServices() ServiceList
} }
type handler struct { type handler struct {
......
...@@ -20,17 +20,13 @@ func (sm *ServicesManager) TrackServices(tracker ServicesTracker) { ...@@ -20,17 +20,13 @@ func (sm *ServicesManager) TrackServices(tracker ServicesTracker) {
sm.trackers = append(sm.trackers, tracker) sm.trackers = append(sm.trackers, tracker)
} }
// GetServices retrieves the ServiceList from the ServicesManager. // triggerServiceTracking triggers the tracking of services. Is it called when a
// This is effectively a serializing of the // service is added or removed.
// ServicesManager's internal tmap. func (sm *ServicesManager) triggerServiceTracking() {
func (sm *ServicesManager) GetServices() ServiceList {
sm.Mutex.Lock() sm.Mutex.Lock()
defer sm.Mutex.Unlock() if len(sm.trackers) == 0 {
return sm.getServices() return
} }
// getServices is the non-thread-safe version of GetServices.
func (sm *ServicesManager) getServices() ServiceList {
services := make(ServiceList) services := make(ServiceList)
for uid, tmap := range sm.tmap { for uid, tmap := range sm.tmap {
tList := make([]Service, 0, len(tmap)) tList := make([]Service, 0, len(tmap))
...@@ -39,17 +35,6 @@ func (sm *ServicesManager) getServices() ServiceList { ...@@ -39,17 +35,6 @@ func (sm *ServicesManager) getServices() ServiceList {
} }
services[uid] = tList services[uid] = tList
} }
return services
}
// triggerServiceTracking triggers the tracking of services. Is it called when a
// service is added or removed.
func (sm *ServicesManager) triggerServiceTracking() {
sm.Mutex.Lock()
if len(sm.trackers) == 0 {
return
}
services := sm.GetServices()
sm.Mutex.Unlock() sm.Mutex.Unlock()
for _, callback := range sm.trackers { for _, callback := range sm.trackers {
......
...@@ -13,7 +13,7 @@ import ( ...@@ -13,7 +13,7 @@ import (
func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) { func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) {
var sl ServiceList = make(map[id.ID][]Service) var sl ServiceList = make(map[id.ID][]Service)
numServices := 10 numServices := 3
testString := "test" testString := "test"
for i := 0; i < numServices; i++ { for i := 0; i < numServices; i++ {
uid := id.NewIdFromUInt(uint64(i), id.User, t) uid := id.NewIdFromUInt(uint64(i), id.User, t)
...@@ -24,6 +24,8 @@ func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) { ...@@ -24,6 +24,8 @@ func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) {
t.Errorf(err.Error()) t.Errorf(err.Error())
} }
t.Logf("%s", jsonResult)
sl = make(map[id.ID][]Service) sl = make(map[id.ID][]Service)
err = sl.UnmarshalJSON(jsonResult) err = sl.UnmarshalJSON(jsonResult)
if err != nil { if err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment