Skip to content

Commit

Permalink
Make result channels query contextual
Browse files Browse the repository at this point in the history
  • Loading branch information
spacez320 committed Jan 2, 2024
1 parent dc24c9d commit 4a54469
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
17 changes: 11 additions & 6 deletions internal/lib/results.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,11 @@ func AddResult(query, result string) {
store.Put(query, result, TokenizeResult(result)...)
}

// Retrieves a next result.
func GetResult(query string) storage.Result {
return <-storage.PutEvents[query]
}

// Creates a result with filtered values.
func FilterResult(result storage.Result, labels, filters []string) storage.Result {
var (
Expand Down Expand Up @@ -318,7 +323,7 @@ func Results(resultMode ResultMode, query string, labels, filters []string, inpu
switch resultMode {
case RESULT_MODE_RAW:
mode = DISPLAY_RAW
RawResults()
RawResults(query)
case RESULT_MODE_STREAM:
mode = DISPLAY_TVIEW
StreamResults(query)
Expand All @@ -341,10 +346,10 @@ func Results(resultMode ResultMode, query string, labels, filters []string, inpu
}

// Presents raw output.
func RawResults() {
func RawResults(query string) {
go func() {
for {
fmt.Println(<-storage.PutEvents)
fmt.Println(GetResult(query))
}
}()
}
Expand Down Expand Up @@ -398,7 +403,7 @@ func StreamResults(query string) {

// Print results.
for {
fmt.Fprintln(resultsView, (<-storage.PutEvents).Value)
fmt.Fprintln(resultsView, (GetResult(query)).Value)
}
},
)
Expand Down Expand Up @@ -475,7 +480,7 @@ func TableResults(query string, filters []string) {
for {
/* slog.Debug(fmt.Sprintf("Receiving value %v", <-storage.PutEvents)) */
// Retrieve specific next values.
values := FilterSlice((<-storage.PutEvents).Values, valueIndexes)
values := FilterSlice((GetResult(query)).Values, valueIndexes)
// Row to contain the result.
row := resultsView.InsertRow(i)

Expand Down Expand Up @@ -539,7 +544,7 @@ func GraphResults(query string, filters []string) {
display(
func() {
for {
value := (<-storage.PutEvents).Values[valueIndex]
value := (GetResult(query)).Values[valueIndex]

switch value.(type) {
case int64:
Expand Down
20 changes: 13 additions & 7 deletions pkg/storage/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,12 @@ type Storage map[string]*Results
//
///////////////////////////////////////////////////////////////////////////////////////////////////

// Channel for broadcasting Put calls.
var PutEvents = make(chan Result, 128)
const (
PUT_EVENT_CHANNEL_SIZE = 128 // Size of Put channels.
)

// Channels for broadcasting Put calls.
var PutEvents = make(map[string](chan Result))

///////////////////////////////////////////////////////////////////////////////////////////////////
//
Expand Down Expand Up @@ -98,17 +102,16 @@ func (r *Results) getValueIndex(filter string) int {
}

// Put a new compound result.
func (r *Results) put(value string, values ...interface{}) []interface{} {
func (r *Results) put(value string, values ...interface{}) Result {
next := Result{
Time: time.Now(),
Value: value,
Values: values,
}

(*r).Results = append((*r).Results, next)
PutEvents <- next

return values
return next
}

// Show all currently stored results.
Expand Down Expand Up @@ -155,13 +158,16 @@ func (s *Storage) NewResults(query string) {
if _, ok := (*s)[query]; !ok {
// This is a new query, initialize an empty results.
(*s)[query] = &Results{}
PutEvents[query] = make(chan Result, PUT_EVENT_CHANNEL_SIZE)
}
}

// Put a new compound result.
func (s *Storage) Put(query string, value string, values ...interface{}) []interface{} {
func (s *Storage) Put(query string, value string, values ...interface{}) Result {
s.NewResults(query)
return (*s)[query].put(value, values...)
result := (*s)[query].put(value, values...)
PutEvents[query] <- result
return result
}

// Assigns labels to a results series.
Expand Down

0 comments on commit 4a54469

Please sign in to comment.