| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package doppel
-
- import "time"
-
- const (
- ScoutConnCollectedPreallocSize = 100
- )
-
- type ScoutConnResult struct {
- timestamp time.Time
- recordType byte
- payloadLen int
- }
-
- type ScoutConnCollected struct {
- data []ScoutConnResult
- writeIndex int // index at which client first wrote post-handshake data; -1 if not set
- }
-
- func (s *ScoutConnCollected) Add(record byte, payloadLen int) {
- s.data = append(s.data, ScoutConnResult{
- timestamp: time.Now(),
- recordType: record,
- payloadLen: payloadLen,
- })
- }
-
- // MarkWrite records the current data length as the handshake boundary.
- func (s *ScoutConnCollected) MarkWrite() {
- if s.writeIndex < 0 {
- s.writeIndex = len(s.data)
- }
- }
-
- func NewScoutConnCollected() *ScoutConnCollected {
- return &ScoutConnCollected{
- data: make([]ScoutConnResult, 0, ScoutConnCollectedPreallocSize),
- writeIndex: -1,
- }
- }
|