| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package modelse
- import "strconv"
- const (
- HASH_SIZE_8 = 8
- HASH_SIZE_16 = 16
- HASH_SIZE_128 = 128
- )
- // apm_span_context
- type ApmSpanContextT struct {
- type_from [1]byte
- sample [1]byte
- host_id [8]byte
- app_id [8]byte
- instance_id [8]byte
- trace_id [16]byte
- assumed_app_id [8]byte
- span_id [8]byte
- }
- type HashByte [HASH_SIZE_8]byte
- type HashByte16 [HASH_SIZE_16]byte
- type HashByte128 [HASH_SIZE_128]byte
- type INT_HASH_ID struct {
- IntVal int64
- HashtVal HashByte
- }
- type ID_STRING string
- func (id ID_STRING) ToString() string {
- return string(id)
- }
- func (id ID_STRING) ToInt64() (int64, error) {
- intID, err := strconv.ParseInt(id.ToString(), 10, 64)
- if err != nil {
- return 0, err
- }
- return intID, nil
- }
- func (id ID_STRING) ToHashByte() HashByte {
- var charArray HashByte
- hexStringToBPFBytes(id.ToString(), &charArray)
- return charArray
- }
- func hexStringToBPFBytes(str string, out *HashByte) {
- for i := 0; i < len(str)/2; i++ {
- ch0 := str[2*i]
- ch1 := str[2*i+1]
- nib0 := (ch0 & 0x0F) + (ch0 >> 6) | ((ch0 >> 3) & 0x08)
- nib1 := (ch1 & 0x0F) + (ch1 >> 6) | ((ch1 >> 3) & 0x08)
- (*out)[i] = (nib0 << 4) | nib1
- }
- }
|