@@ -42,10 +42,6 @@ func Init() {
4242 })
4343}
4444
45- func Get (name string ) * Stream {
46- return streams [name ]
47- }
48-
4945var sanitize = regexp .MustCompile (`\s` )
5046
5147// Validate - not allow creating dynamic streams with spaces in the source
@@ -68,6 +64,7 @@ func New(name string, sources ...string) *Stream {
6864 streamsMu .Lock ()
6965 streams [name ] = stream
7066 streamsMu .Unlock ()
67+
7168 return stream
7269}
7370
@@ -124,7 +121,7 @@ func GetOrPatch(query url.Values) *Stream {
124121 }
125122
126123 // check if src is stream name
127- if stream , ok := streams [ source ]; ok {
124+ if stream := Get ( source ); stream != nil {
128125 return stream
129126 }
130127
@@ -139,21 +136,41 @@ func GetOrPatch(query url.Values) *Stream {
139136 return Patch (source , source )
140137}
141138
142- func GetAll () (names []string ) {
143- for name := range streams {
144- names = append (names , name )
145- }
146- return
139+ var log zerolog.Logger
140+
141+ // streams map
142+
143+ var streams = map [string ]* Stream {}
144+ var streamsMu sync.Mutex
145+
146+ func Get (name string ) * Stream {
147+ streamsMu .Lock ()
148+ defer streamsMu .Unlock ()
149+ return streams [name ]
147150}
148151
149- func Streams () map [string ]* Stream {
150- return streams
152+ func Delete (name string ) {
153+ streamsMu .Lock ()
154+ defer streamsMu .Unlock ()
155+ delete (streams , name )
151156}
152157
153- func Delete (id string ) {
154- delete (streams , id )
158+ func GetAllNames () []string {
159+ streamsMu .Lock ()
160+ names := make ([]string , 0 , len (streams ))
161+ for name := range streams {
162+ names = append (names , name )
163+ }
164+ streamsMu .Unlock ()
165+ return names
155166}
156167
157- var log zerolog.Logger
158- var streams = map [string ]* Stream {}
159- var streamsMu sync.Mutex
168+ func GetAllSources () map [string ][]string {
169+ streamsMu .Lock ()
170+ sources := make (map [string ][]string , len (streams ))
171+ for name , stream := range streams {
172+ sources [name ] = stream .Sources ()
173+ }
174+ streamsMu .Unlock ()
175+ return sources
176+ }
0 commit comments