diff --git a/cmix/interface.go b/cmix/interface.go index ef7afeccecf28ee239ee8adc5ea582b7c7e92bf5..a5db8b3cfe2089e94d03861769785ab99bd4390a 100644 --- a/cmix/interface.go +++ b/cmix/interface.go @@ -176,9 +176,6 @@ type Client interface { // running. Multiple trackTriggers can be registered. TrackServices(tracker message.ServicesTracker) - // GetServices retrieves the message.ServiceList. - GetServices() message.ServiceList - /* === In inProcess ===================================================== */ /* It is possible to receive a message over cMix before the fingerprints or triggers are registered. As a result, when handling fails, messages are diff --git a/cmix/message/handler.go b/cmix/message/handler.go index 510122ffb490f5d4d5912b9c9ffcb2694ab6a2f2..6a5baf55486860b3d14d5d2960acaa861dc18ba0 100644 --- a/cmix/message/handler.go +++ b/cmix/message/handler.go @@ -43,7 +43,6 @@ type Handler interface { DeleteService(clientID *id.ID, toDelete Service, response Processor) DeleteClientService(clientID *id.ID) TrackServices(triggerTracker ServicesTracker) - GetServices() ServiceList } type handler struct { diff --git a/cmix/message/serviceTracker.go b/cmix/message/serviceTracker.go index 972646e42744dd49277934bc52d323a7c2a890bc..777c510f5bf7ebe0f36e59d4272620ecd545fa03 100644 --- a/cmix/message/serviceTracker.go +++ b/cmix/message/serviceTracker.go @@ -20,17 +20,13 @@ func (sm *ServicesManager) TrackServices(tracker ServicesTracker) { sm.trackers = append(sm.trackers, tracker) } -// GetServices retrieves the ServiceList from the ServicesManager. -// This is effectively a serializing of the -// ServicesManager's internal tmap. -func (sm *ServicesManager) GetServices() ServiceList { +// triggerServiceTracking triggers the tracking of services. Is it called when a +// service is added or removed. +func (sm *ServicesManager) triggerServiceTracking() { sm.Mutex.Lock() - defer sm.Mutex.Unlock() - return sm.getServices() -} - -// getServices is the non-thread-safe version of GetServices. -func (sm *ServicesManager) getServices() ServiceList { + if len(sm.trackers) == 0 { + return + } services := make(ServiceList) for uid, tmap := range sm.tmap { tList := make([]Service, 0, len(tmap)) @@ -39,17 +35,6 @@ func (sm *ServicesManager) getServices() ServiceList { } 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() for _, callback := range sm.trackers { diff --git a/cmix/message/serviceTracker_test.go b/cmix/message/serviceTracker_test.go index c7b06b46a853bcc23e267830c9e2cda925385b3a..a1a487762c271bde32476a07652cfd4264b311bf 100644 --- a/cmix/message/serviceTracker_test.go +++ b/cmix/message/serviceTracker_test.go @@ -13,7 +13,7 @@ import ( func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) { var sl ServiceList = make(map[id.ID][]Service) - numServices := 10 + numServices := 3 testString := "test" for i := 0; i < numServices; i++ { uid := id.NewIdFromUInt(uint64(i), id.User, t) @@ -24,6 +24,8 @@ func TestServiceList_Marshal_UnmarshalJSON(t *testing.T) { t.Errorf(err.Error()) } + t.Logf("%s", jsonResult) + sl = make(map[id.ID][]Service) err = sl.UnmarshalJSON(jsonResult) if err != nil {