X-Git-Url: https://gerrit.fd.io/r/gitweb?p=govpp.git;a=blobdiff_plain;f=adapter%2Fstatsclient%2Fstat_segment_api.go;fp=adapter%2Fstatsclient%2Fstat_segment_api.go;h=fd7ef36c43e388341e61dadf094c3e910e6afc74;hp=2161e6e7ae82a7f527c08c1f6b989e73bbeff684;hb=874266e00029174d6ad512eeac678b0c99512cd7;hpb=945b7c7ae69c414ef851f85596be4edeb1d9290e diff --git a/adapter/statsclient/stat_segment_api.go b/adapter/statsclient/stat_segment_api.go index 2161e6e..fd7ef36 100644 --- a/adapter/statsclient/stat_segment_api.go +++ b/adapter/statsclient/stat_segment_api.go @@ -38,16 +38,24 @@ const ( maxVersion = 2 ) -const ( - statDirIllegal = 0 - statDirScalarIndex = 1 - statDirCounterVectorSimple = 2 - statDirCounterVectorCombined = 3 - statDirErrorIndex = 4 - statDirNameVector = 5 - statDirEmpty = 6 - statDirSymlink = 7 -) +var dirTypeMapping = map[dirType]adapter.StatType{ + 1: adapter.ScalarIndex, + 2: adapter.SimpleCounterVector, + 3: adapter.CombinedCounterVector, + 4: adapter.NameVector, + 5: adapter.Empty, + 6: adapter.Symlink, +} + +var dirTypeMappingLegacy = map[dirType]adapter.StatType{ + 1: adapter.ScalarIndex, + 2: adapter.SimpleCounterVector, + 3: adapter.CombinedCounterVector, + 4: adapter.ErrorIndex, + 5: adapter.NameVector, + 6: adapter.Empty, + 7: adapter.Symlink, +} type ( dirVector unsafe.Pointer @@ -92,10 +100,6 @@ type vecHeader struct { vectorData [0]uint8 } -func (t dirType) String() string { - return adapter.StatType(t).String() -} - func getVersion(data []byte) uint64 { type apiVersion struct { value uint64 @@ -113,6 +117,19 @@ func vectorLen(v dirVector) dirVector { return dirVector(&vec.length) } +func getStatType(dirTypeNum dirType, useLegacyMapping bool) (dirTyp adapter.StatType) { + var exists bool + if useLegacyMapping { + dirTyp, exists = dirTypeMappingLegacy[dirTypeNum] + } else { + dirTyp, exists = dirTypeMapping[dirTypeNum] + } + if exists { + return dirTyp + } + return adapter.Unknown +} + //go:nosplit func statSegPointer(v dirVector, offset uintptr) dirVector { return dirVector(uintptr(v) + offset)