package handler

import (
	"sync"

	"github.com/bjdgyc/anylink/sessdata"
)

var plPool = sync.Pool{
	New: func() interface{} {
		pl := sessdata.Payload{
			Data: make([]byte, 0, BufferSize),
		}
		// fmt.Println("plPool-init", len(pl.Data), cap(pl.Data))
		return &pl
	},
}

func getPayload() *sessdata.Payload {
	pl := plPool.Get().(*sessdata.Payload)
	return pl
}

func putPayload(pl *sessdata.Payload) {
	pl.LType = 0
	pl.PType = 0
	pl.Data = pl.Data[:0]
	plPool.Put(pl)
}

var bytePool = sync.Pool{
	New: func() interface{} {
		b := make([]byte, 0, BufferSize)
		// fmt.Println("bytePool-init")
		return b
	},
}

func getByteZero() []byte {
	b := bytePool.Get().([]byte)
	return b
}

func getByteFull() []byte {
	b := bytePool.Get().([]byte)
	b = b[:BufferSize]
	return b
}
func putByte(b []byte) {
	b = b[:0]
	bytePool.Put(b)
}