Browse Source

Fix: app/stats.Manager does not implement features/stats.Manager (#171)

Loyalsoldier 5 years ago
parent
commit
d7c99c901a
2 changed files with 18 additions and 0 deletions
  1. 12 0
      app/stats/stats.go
  2. 6 0
      features/stats/stats.go

+ 12 - 0
app/stats/stats.go

@@ -126,6 +126,18 @@ func (m *Manager) RegisterCounter(name string) (stats.Counter, error) {
 	return c, nil
 	return c, nil
 }
 }
 
 
+// UnregisterCounter implements stats.Manager.
+func (m *Manager) UnregisterCounter(name string) error {
+	m.access.Lock()
+	defer m.access.Unlock()
+	if _, found := m.counters[name]; !found {
+		return newError("Counter ", name, " was not found.")
+	}
+	newError("remove counter ", name).AtDebug().WriteToLog()
+	delete(m.counters, name)
+	return nil
+}
+
 // GetCounter implements stats.Manager.
 // GetCounter implements stats.Manager.
 func (m *Manager) GetCounter(name string) stats.Counter {
 func (m *Manager) GetCounter(name string) stats.Counter {
 	m.access.RLock()
 	m.access.RLock()

+ 6 - 0
features/stats/stats.go

@@ -38,6 +38,7 @@ type Manager interface {
 
 
 	// RegisterCounter registers a new counter to the manager. The identifier string must not be empty, and unique among other counters.
 	// RegisterCounter registers a new counter to the manager. The identifier string must not be empty, and unique among other counters.
 	RegisterCounter(string) (Counter, error)
 	RegisterCounter(string) (Counter, error)
+	UnregisterCounter(string) error
 	// GetCounter returns a counter by its identifier.
 	// GetCounter returns a counter by its identifier.
 	GetCounter(string) Counter
 	GetCounter(string) Counter
 
 
@@ -87,6 +88,11 @@ func (NoopManager) RegisterCounter(string) (Counter, error) {
 	return nil, newError("not implemented")
 	return nil, newError("not implemented")
 }
 }
 
 
+// UnregisterCounter implements Manager.
+func (NoopManager) UnregisterCounter(string) error {
+	return newError("not implemented")
+}
+
 // GetCounter implements Manager.
 // GetCounter implements Manager.
 func (NoopManager) GetCounter(string) Counter {
 func (NoopManager) GetCounter(string) Counter {
 	return nil
 	return nil