Lines Matching refs:frame

14 func (frame *SynStreamFrame) write(f *Framer) error {
15 return f.writeSynStreamFrame(frame)
18 func (frame *SynReplyFrame) write(f *Framer) error {
19 return f.writeSynReplyFrame(frame)
22 func (frame *RstStreamFrame) write(f *Framer) (err error) {
23 if frame.StreamId == 0 {
26 frame.CFHeader.version = Version
27 frame.CFHeader.frameType = TypeRstStream
28 frame.CFHeader.Flags = 0
29 frame.CFHeader.length = 8
32 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
35 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
38 if frame.Status == 0 {
39 return &Error{InvalidControlFrame, frame.StreamId}
41 if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
47 func (frame *SettingsFrame) write(f *Framer) (err error) {
48 frame.CFHeader.version = Version
49 frame.CFHeader.frameType = TypeSettings
50 frame.CFHeader.length = uint32(len(frame.FlagIdValues)*8 + 4)
53 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
56 if err = binary.Write(f.w, binary.BigEndian, uint32(len(frame.FlagIdValues))); err != nil {
59 for _, flagIdValue := range frame.FlagIdValues {
71 func (frame *PingFrame) write(f *Framer) (err error) {
72 if frame.Id == 0 {
75 frame.CFHeader.version = Version
76 frame.CFHeader.frameType = TypePing
77 frame.CFHeader.Flags = 0
78 frame.CFHeader.length = 4
81 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
84 if err = binary.Write(f.w, binary.BigEndian, frame.Id); err != nil {
90 func (frame *GoAwayFrame) write(f *Framer) (err error) {
91 frame.CFHeader.version = Version
92 frame.CFHeader.frameType = TypeGoAway
93 frame.CFHeader.Flags = 0
94 frame.CFHeader.length = 8
97 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
100 if err = binary.Write(f.w, binary.BigEndian, frame.LastGoodStreamId); err != nil {
103 if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
109 func (frame *HeadersFrame) write(f *Framer) error {
110 return f.writeHeadersFrame(frame)
113 func (frame *WindowUpdateFrame) write(f *Framer) (err error) {
114 frame.CFHeader.version = Version
115 frame.CFHeader.frameType = TypeWindowUpdate
116 frame.CFHeader.Flags = 0
117 frame.CFHeader.length = 8
120 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
123 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
126 if err = binary.Write(f.w, binary.BigEndian, frame.DeltaWindowSize); err != nil {
132 func (frame *DataFrame) write(f *Framer) error {
133 return f.writeDataFrame(frame)
137 func (f *Framer) WriteFrame(frame Frame) error {
138 return frame.write(f)
184 func (f *Framer) writeSynStreamFrame(frame *SynStreamFrame) (err error) {
185 if frame.StreamId == 0 {
193 if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
201 frame.CFHeader.version = Version
202 frame.CFHeader.frameType = TypeSynStream
203 frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 10)
206 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
209 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
212 if err = binary.Write(f.w, binary.BigEndian, frame.AssociatedToStreamId); err != nil {
215 if err = binary.Write(f.w, binary.BigEndian, frame.Priority<<5); err != nil {
218 if err = binary.Write(f.w, binary.BigEndian, frame.Slot); err != nil {
228 func (f *Framer) writeSynReplyFrame(frame *SynReplyFrame) (err error) {
229 if frame.StreamId == 0 {
237 if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
245 frame.CFHeader.version = Version
246 frame.CFHeader.frameType = TypeSynReply
247 frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
250 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
253 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
263 func (f *Framer) writeHeadersFrame(frame *HeadersFrame) (err error) {
264 if frame.StreamId == 0 {
272 if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
280 frame.CFHeader.version = Version
281 frame.CFHeader.frameType = TypeHeaders
282 frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
285 if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
288 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
298 func (f *Framer) writeDataFrame(frame *DataFrame) (err error) {
299 if frame.StreamId == 0 {
302 if frame.StreamId&0x80000000 != 0 || len(frame.Data) > MaxDataLength {
303 return &Error{InvalidDataFrame, frame.StreamId}
307 if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
310 flagsAndLength := uint32(frame.Flags)<<24 | uint32(len(frame.Data))
314 if _, err = f.w.Write(frame.Data); err != nil {