package core import ( "github.com/google/uuid" "log" "sync" "time" ) type Tracking struct { TrackingMetadata Records []recordPair Rawdata []rawRecord mu sync.Mutex } type TrackingMetadata struct { UUID uuid.UUID TimeCreated time.Time collectors []CollectorType } func (s *Tracking) EnqueuePair(tcp sensorData, ser sensorData) { s.mu.Lock() defer s.mu.Unlock() rp := recordPair{ RecordTime: time.Now(), data: map[sourceId]sensorData{ tcp.source: tcp, ser.source: ser, }, } s.Records = append(s.Records, rp) log.Println("tracking Records: len->", len(s.Records)) } func (s *Tracking) EnqueueRaw(data sensorData) { s.mu.Lock() defer s.mu.Unlock() sr := rawRecord{ time.Now(), data, } s.Rawdata = append(s.Rawdata, sr) log.Println("raw data points: len->", len(s.Records)) } func emptyTracking() Tracking { return Tracking{ TrackingMetadata: TrackingMetadata{ UUID: uuid.New(), }, Records: []recordPair{}, Rawdata: []rawRecord{}, } } func (s *Tracking) isEmpty() bool { return len(s.Rawdata) + len(s.Records) == 0 }