func NewFragmentAssembler(delegate term.FragmentHandler, initialBufferLength int32) *FragmentAssembler {
	return &FragmentAssembler{
		delegate:              delegate,
		initialBufferLength:   initialBufferLength,
		builderBySessionIdMap: make(map[int32]*bytes.Buffer),
	}
}
NewFragmentAssembler constructs an adapter to reassemble message fragments and delegate on whole messages.
package aeron
import (
	"bytes"
	"github.com/lirm/aeron-go/aeron/atomic"
	"github.com/lirm/aeron-go/aeron/logbuffer"
	"github.com/lirm/aeron-go/aeron/logbuffer/term"
)
const (
	DefaultFragmentAssemblyBufferLength = int32(4096)
	beginFrag    uint8 = 0x80
	endFrag      uint8 = 0x40
	unfragmented uint8 = 0x80 | 0x40
)
type FragmentAssembler struct {
	delegate              term.FragmentHandler
	initialBufferLength   int32
	builderBySessionIdMap map[int32]*bytes.Buffer
}