wp
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package transform
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
bin "gordenko.dev/dima/bin/little"
|
||||
@@ -101,6 +102,7 @@ type CumulativeMeasureWriter struct {
|
||||
}
|
||||
|
||||
func NewCumulativeMeasureWriter(dst io.Writer, since uint32) *CumulativeMeasureWriter {
|
||||
fmt.Println("NewCumulativeMeasureWriter")
|
||||
// 20 - это timestamp, value, total
|
||||
return &CumulativeMeasureWriter{
|
||||
arr: make([]byte, 20),
|
||||
@@ -126,11 +128,13 @@ func (s *CumulativeMeasureWriter) feed(timestamp uint32, value float64, isBuffer
|
||||
s.responder.AppendRecord(s.arr)
|
||||
}
|
||||
}
|
||||
fmt.Println("feed:", timestamp, value, isBuffer)
|
||||
s.endTimestamp = timestamp
|
||||
s.endValue = value
|
||||
}
|
||||
|
||||
func (s *CumulativeMeasureWriter) pack(total float64) {
|
||||
fmt.Println("PACK")
|
||||
bin.PutUint32(s.arr[0:], s.endTimestamp)
|
||||
bin.PutFloat64(s.arr[4:], s.endValue)
|
||||
bin.PutFloat64(s.arr[12:], total)
|
||||
@@ -141,6 +145,7 @@ func (s *CumulativeMeasureWriter) Close() error {
|
||||
// endTimestamp внутри заданного периода. Других показаний нет,
|
||||
// поэтому время добавляю, но накопленную сумму ставлю 0.
|
||||
s.pack(0)
|
||||
s.responder.BufferRecord(s.arr)
|
||||
// Если < since - ничего делать не нужно, ибо накопленная сумма уже добавлена
|
||||
}
|
||||
return s.responder.Flush()
|
||||
|
||||
Reference in New Issue
Block a user