MCPcopy
hub / github.com/grpc/grpc-go / newFramer

Function newFramer

internal/transport/http_util.go:429–452  ·  view source on GitHub ↗
(conn io.ReadWriter, writeBufferSize, readBufferSize int, sharedWriteBuffer bool, maxHeaderListSize uint32, memPool mem.BufferPool)

Source from the content-addressed store, hash-verified

427}
428
429func newFramer(conn io.ReadWriter, writeBufferSize, readBufferSize int, sharedWriteBuffer bool, maxHeaderListSize uint32, memPool mem.BufferPool) *framer {
430 if writeBufferSize < 0 {
431 writeBufferSize = 0
432 }
433 r := bufferedReader(conn, readBufferSize)
434 var writePool *imem.SimpleBufferPool
435 if sharedWriteBuffer {
436 writePool = ioBufferPool(writeBufferSize)
437 }
438 w := newBufWriter(conn, writeBufferSize, writePool)
439 f := &framer{
440 writer: w,
441 fr: http2.NewFramer(w, r),
442 reader: r,
443 pool: memPool,
444 }
445 f.fr.SetMaxReadFrameSize(http2MaxFrameLen)
446 // Opt-in to Frame reuse API on framer to reduce garbage.
447 // Frames aren't safe to read from after a subsequent call to ReadFrame.
448 f.fr.SetReuseFrames()
449 f.fr.MaxHeaderListSize = maxHeaderListSize
450 f.fr.ReadMetaHeaders = hpack.NewDecoder(http2InitHeaderTableSize, nil)
451 return f
452}
453
454// writeData writes a DATA frame.
455//

Callers 4

NewServerTransportFunction · 0.85
NewHTTP2ClientFunction · 0.85

Calls 3

bufferedReaderFunction · 0.85
ioBufferPoolFunction · 0.85
newBufWriterFunction · 0.85