You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.4 KiB
102 lines
2.4 KiB
package diploma
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
type MetricType byte
|
|
type GroupBy byte
|
|
|
|
const (
|
|
Cumulative MetricType = 1
|
|
Instant MetricType = 2
|
|
MaxFracDigits byte = 7
|
|
|
|
GroupByHour GroupBy = 1
|
|
GroupByDay GroupBy = 2
|
|
GroupByMonth GroupBy = 3
|
|
|
|
AggregateMin byte = 1
|
|
AggregateMax byte = 2
|
|
AggregateAvg byte = 4
|
|
)
|
|
|
|
type TimestampCompressor interface {
|
|
CalcRequiredSpace(uint32) int
|
|
Append(uint32)
|
|
Size() int
|
|
DeleteLast()
|
|
//LastTimestamp() uint32
|
|
}
|
|
|
|
type ValueCompressor interface {
|
|
CalcRequiredSpace(float64) int
|
|
Append(float64)
|
|
Size() int
|
|
DeleteLast()
|
|
//LastValue() float64
|
|
}
|
|
|
|
type TimestampDecompressor interface {
|
|
NextValue() (uint32, bool)
|
|
}
|
|
|
|
type ValueDecompressor interface {
|
|
NextValue() (float64, bool)
|
|
}
|
|
|
|
type MeasureConsumer interface {
|
|
Feed(uint32, float64)
|
|
FeedNoSend(uint32, float64)
|
|
Close() error
|
|
}
|
|
|
|
type WorkerMeasureConsumer interface {
|
|
FeedNoSend(uint32, float64)
|
|
}
|
|
|
|
type AtreeMeasureConsumer interface {
|
|
Feed(uint32, float64)
|
|
}
|
|
|
|
type AbortCode int
|
|
|
|
const (
|
|
// Fatal errors
|
|
WrongPrevPageNo AbortCode = 1
|
|
WriteToAtreeFailed AbortCode = 2
|
|
MaxAtreeSizeExceeded AbortCode = 3
|
|
FailedWriteToTxLog AbortCode = 4
|
|
ReferenceCountBug AbortCode = 5
|
|
WrongResultCodeBug AbortCode = 6
|
|
RemoveREDOFileFailed AbortCode = 7
|
|
FailedAtreeRequest AbortCode = 8
|
|
UnknownTxLogRecordTypeBug AbortCode = 11
|
|
HasTimestampNoValueBug AbortCode = 12
|
|
NoMetricBug AbortCode = 13
|
|
NoLockEntryBug AbortCode = 14
|
|
NoXLockBug AbortCode = 15
|
|
MetricAddedBug AbortCode = 16
|
|
NoRLockBug AbortCode = 17
|
|
XLockBug AbortCode = 18
|
|
FailedFreeListSerialize AbortCode = 19
|
|
UnknownWorkerQueueItemBug AbortCode = 20
|
|
UnknownMetricWaitQueueItemBug AbortCode = 21
|
|
//
|
|
GetRecoveryRecipeFailed AbortCode = 26
|
|
LoadSnapshotFailed AbortCode = 27
|
|
ReplayChangesFailed AbortCode = 28
|
|
CreateChangesWriterFailed AbortCode = 29
|
|
RemoveRecipeFileFailed AbortCode = 30
|
|
DumpSnapshotFailed AbortCode = 31
|
|
SearchREDOFilesFailed AbortCode = 32
|
|
ReplayREDOFileFailed AbortCode = 33
|
|
DeletePrevChangesFileFailed AbortCode = 34
|
|
DeletePrevSnapshotFileFailed AbortCode = 35
|
|
)
|
|
|
|
func Abort(code AbortCode, err error) {
|
|
fmt.Println(err)
|
|
os.Exit(int(code))
|
|
}
|
|
|