Implemented user server state aka route list

This commit is contained in:
Roberto Abdelkader Martínez Pérez
2019-10-05 12:22:38 +02:00
parent edb3f6fa1c
commit 62ec810e6d
2 changed files with 173 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
package user
import (
"sync"
"github.com/BBVA/kapow/internal/server/model"
)
type safeRouteList struct {
rs []model.Route
m sync.RWMutex
}
var Routes = New()
func New() safeRouteList {
return safeRouteList{}
}
func (srl *safeRouteList) Append(r model.Route) {
srl.m.Lock()
srl.rs = append(srl.rs, r)
srl.m.Unlock()
}
func (srl *safeRouteList) Snapshot() []model.Route {
srl.m.RLock()
defer srl.m.RUnlock()
if srl.rs == nil {
return nil
} else {
rs := make([]model.Route, len(srl.rs))
copy(rs, srl.rs)
return rs
}
}