func (s *flowControl) setSendMax(n uint64) {
	if n > s.sendMax {
		s.sendMax = n
	}
}
setSendMax updates maximum number of bytes can send.
package transport
import "fmt"
type flowControl struct {
	recvTotal   uint64  
	recvMax     uint64  
	recvMaxNext uint64  
	sendTotal   uint64  
	sendMax     uint64  
	sendBlocked bool    
}
func (s *flowControl) init(maxRecv, maxSend uint64) {
	s.recvMax = maxRecv
	s.recvMaxNext = maxRecv
	s.sendMax = maxSend
}
func (s *flowControl) availRecv() uint64 {
	if s.recvMax > s.recvTotal {
		return s.recvMax - s.recvTotal
	}
	return 0
}
func (s *flowControl) addRecv(n uint64) {
	s.recvTotal += n
}
func (s *flowControl) setRecv(n uint64) {
	s.recvTotal = n
}
func (s *flowControl) addRecvMaxNext(n uint64) {
	s.recvMaxNext += n
}
func (s *flowControl) commitRecvMax() {
	s.recvMax = s.recvMaxNext
}
func (s *flowControl) shouldUpdateRecvMax() bool {
	return s.recvMaxNext > s.recvMax && s.recvMax >= s.recvTotal &&
		(s.recvMax-s.recvTotal) < s.recvMaxNext/2
}
func (s *flowControl) availSend() uint64 {
	if s.sendMax > s.sendTotal {
		return s.sendMax - s.sendTotal
	}
	return 0
}
func (s *flowControl) addSend(n int) {
	s.sendTotal += uint64(n)
}
func (s *flowControl) setSend(n uint64) {
	s.sendTotal = n
}