(sumKey string)
| 68 | } |
| 69 | |
| 70 | func DecodeSumKey(sumKey string) (serverId int64, timeString string, version int32, err error) { |
| 71 | var b = []byte(sumKey) |
| 72 | var timeIndex = bytes.Index(b, []byte{'_'}) |
| 73 | if timeIndex < 0 { |
| 74 | return |
| 75 | } |
| 76 | |
| 77 | timeString = string(b[:timeIndex]) |
| 78 | b = b[timeIndex+1:] |
| 79 | |
| 80 | if len(b) < 12 { |
| 81 | err = errors.New("invalid sum key") |
| 82 | return |
| 83 | } |
| 84 | |
| 85 | version = int32(binary.BigEndian.Uint32(b[:4])) |
| 86 | serverId = int64(binary.BigEndian.Uint64(b[4:12])) |
| 87 | return |
| 88 | } |
| 89 | |
| 90 | func EncodeSumValue(count uint64, total uint64) []byte { |
| 91 | var result [16]byte |
no outgoing calls