view.go 543 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package api
  2. import (
  3. "github.com/ivpusic/neo"
  4. "sim3/tri"
  5. "time"
  6. )
  7. type Item struct {
  8. Timestamp int64
  9. Name string
  10. Type string
  11. Meta bool
  12. Signal tri.Trit
  13. }
  14. var LogChannel chan *Item = make(chan *Item, 1024)
  15. func Log(i *Item) {
  16. i.Timestamp = time.Now().Unix()
  17. LogChannel <- i
  18. }
  19. func Tri(ctx *neo.Ctx) {
  20. var il []*Item
  21. for ok := true; ok; {
  22. select {
  23. case i := <-LogChannel:
  24. il = append(il, i)
  25. default:
  26. ok = false
  27. }
  28. }
  29. if il != nil {
  30. ctx.Res.Json(il, 200)
  31. } else {
  32. ctx.Res.Text("[]", 200)
  33. }
  34. }