introduce StreamID type

This commit is contained in:
Marten Seemann
2016-04-16 23:51:01 +07:00
parent 3e59ede7a7
commit 66b52e915d
4 changed files with 11 additions and 6 deletions

View File

@@ -61,7 +61,7 @@ func handleStream(frame *frames.StreamFrame) []frames.Frame {
} }
dataStreamFrame := &frames.StreamFrame{ dataStreamFrame := &frames.StreamFrame{
StreamID: h2frame.Header().StreamID, StreamID: protocol.StreamID(h2frame.Header().StreamID),
Data: []byte("Hello World!"), Data: []byte("Hello World!"),
FinBit: true, FinBit: true,
} }

View File

@@ -4,13 +4,14 @@ import (
"bytes" "bytes"
"io/ioutil" "io/ioutil"
"github.com/lucas-clemente/quic-go/protocol"
"github.com/lucas-clemente/quic-go/utils" "github.com/lucas-clemente/quic-go/utils"
) )
// A StreamFrame of QUIC // A StreamFrame of QUIC
type StreamFrame struct { type StreamFrame struct {
FinBit bool FinBit bool
StreamID uint32 StreamID protocol.StreamID
Offset uint64 Offset uint64
Data []byte Data []byte
} }
@@ -36,7 +37,7 @@ func ParseStreamFrame(r *bytes.Reader) (*StreamFrame, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
frame.StreamID = uint32(sid) frame.StreamID = protocol.StreamID(sid)
frame.Offset, err = utils.ReadUintN(r, offsetLen) frame.Offset, err = utils.ReadUintN(r, offsetLen)
if err != nil { if err != nil {
@@ -79,7 +80,7 @@ func (f *StreamFrame) Write(b *bytes.Buffer) error {
} }
typeByte ^= 0x03 // TODO: Send shorter stream ID if possible typeByte ^= 0x03 // TODO: Send shorter stream ID if possible
b.WriteByte(typeByte) b.WriteByte(typeByte)
utils.WriteUint32(b, f.StreamID) utils.WriteUint32(b, uint32(f.StreamID))
if f.Offset != 0 { if f.Offset != 0 {
utils.WriteUint64(b, f.Offset) utils.WriteUint64(b, f.Offset)
} }

View File

@@ -3,6 +3,7 @@ package frames
import ( import (
"bytes" "bytes"
"github.com/lucas-clemente/quic-go/protocol"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
) )
@@ -15,7 +16,7 @@ var _ = Describe("StreamFrame", func() {
frame, err := ParseStreamFrame(b) frame, err := ParseStreamFrame(b)
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(frame.FinBit).To(BeFalse()) Expect(frame.FinBit).To(BeFalse())
Expect(frame.StreamID).To(Equal(uint32(1))) Expect(frame.StreamID).To(Equal(protocol.StreamID(1)))
Expect(frame.Offset).To(BeZero()) Expect(frame.Offset).To(BeZero())
Expect(frame.Data).To(Equal([]byte("foobar"))) Expect(frame.Data).To(Equal([]byte("foobar")))
}) })
@@ -25,7 +26,7 @@ var _ = Describe("StreamFrame", func() {
frame, err := ParseStreamFrame(b) frame, err := ParseStreamFrame(b)
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(frame.FinBit).To(BeFalse()) Expect(frame.FinBit).To(BeFalse())
Expect(frame.StreamID).To(Equal(uint32(1))) Expect(frame.StreamID).To(Equal(protocol.StreamID(1)))
Expect(frame.Offset).To(BeZero()) Expect(frame.Offset).To(BeZero())
Expect(frame.Data).To(Equal([]byte("foobar"))) Expect(frame.Data).To(Equal([]byte("foobar")))
}) })

View File

@@ -5,3 +5,6 @@ type PacketNumber uint64
// A ConnectionID in QUIC // A ConnectionID in QUIC
type ConnectionID uint64 type ConnectionID uint64
// A StreamID in QUIC
type StreamID uint32