From 5ada9108aec215c9f8b911b530a46be3dde81881 Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Thu, 7 Jul 2016 18:18:56 +0200 Subject: [PATCH] remove FlowController interface fixes #178, ref #83 --- flowcontrol/flow_control_manager.go | 6 +++--- flowcontrol/flow_controller.go | 5 ++--- flowcontrol/flow_controller_test.go | 8 ++++---- flowcontrol/interface.go | 14 -------------- 4 files changed, 9 insertions(+), 24 deletions(-) diff --git a/flowcontrol/flow_control_manager.go b/flowcontrol/flow_control_manager.go index 45ff9037..3d7601cc 100644 --- a/flowcontrol/flow_control_manager.go +++ b/flowcontrol/flow_control_manager.go @@ -32,7 +32,7 @@ func NewFlowControlManager(connectionParametersManager *handshake.ConnectionPara contributesToConnectionFlowControl: make(map[protocol.StreamID]bool), } // initialize connection level flow controller - fcm.streamFlowController[0] = NewFlowController(0, connectionParametersManager) + fcm.streamFlowController[0] = newFlowController(0, connectionParametersManager) fcm.contributesToConnectionFlowControl[0] = false return &fcm } @@ -46,7 +46,7 @@ func (f *flowControlManager) NewStream(streamID protocol.StreamID, contributesTo return } - f.streamFlowController[streamID] = NewFlowController(streamID, f.connectionParametersManager) + f.streamFlowController[streamID] = newFlowController(streamID, f.connectionParametersManager) f.contributesToConnectionFlowControl[streamID] = contributesToConnectionFlow } @@ -178,7 +178,7 @@ func (f *flowControlManager) StreamContributesToConnectionFlowControl(streamID p return contributes, nil } -func (f *flowControlManager) getFlowController(streamID protocol.StreamID) (FlowController, error) { +func (f *flowControlManager) getFlowController(streamID protocol.StreamID) (*flowController, error) { streamFlowController, ok := f.streamFlowController[streamID] if !ok { return nil, errMapAccess diff --git a/flowcontrol/flow_controller.go b/flowcontrol/flow_controller.go index 36169cc4..c036c21b 100644 --- a/flowcontrol/flow_controller.go +++ b/flowcontrol/flow_controller.go @@ -24,9 +24,8 @@ type flowController struct { mutex sync.RWMutex } -// NewFlowController gets a new flow controller -// TODO: make private -func NewFlowController(streamID protocol.StreamID, connectionParametersManager *handshake.ConnectionParametersManager) *flowController { +// newFlowController gets a new flow controller +func newFlowController(streamID protocol.StreamID, connectionParametersManager *handshake.ConnectionParametersManager) *flowController { fc := flowController{ streamID: streamID, connectionParametersManager: connectionParametersManager, diff --git a/flowcontrol/flow_controller_test.go b/flowcontrol/flow_controller_test.go index a3ffec47..7c54e3cc 100644 --- a/flowcontrol/flow_controller_test.go +++ b/flowcontrol/flow_controller_test.go @@ -35,24 +35,24 @@ var _ = Describe("Flow controller", func() { }) It("reads the stream send and receive windows when acting as stream-level flow controller", func() { - fc := NewFlowController(5, cpm) + fc := newFlowController(5, cpm) Expect(fc.streamID).To(Equal(protocol.StreamID(5))) Expect(fc.receiveFlowControlWindow).To(Equal(protocol.ByteCount(2000))) }) It("reads the stream send and receive windows when acting as stream-level flow controller", func() { - fc := NewFlowController(0, cpm) + fc := newFlowController(0, cpm) Expect(fc.streamID).To(Equal(protocol.StreamID(0))) Expect(fc.receiveFlowControlWindow).To(Equal(protocol.ByteCount(4000))) }) It("does not set the stream flow control windows for sending", func() { - fc := NewFlowController(5, cpm) + fc := newFlowController(5, cpm) Expect(fc.sendFlowControlWindow).To(BeZero()) }) It("does not set the connection flow control windows for sending", func() { - fc := NewFlowController(0, cpm) + fc := newFlowController(0, cpm) Expect(fc.sendFlowControlWindow).To(BeZero()) }) }) diff --git a/flowcontrol/interface.go b/flowcontrol/interface.go index 1745a096..22184bcf 100644 --- a/flowcontrol/interface.go +++ b/flowcontrol/interface.go @@ -2,20 +2,6 @@ package flowcontrol import "github.com/lucas-clemente/quic-go/protocol" -// A FlowController handles the flow control -type FlowController interface { - AddBytesSent(n protocol.ByteCount) - UpdateSendWindow(newOffset protocol.ByteCount) bool - SendWindowSize() protocol.ByteCount - SendWindowOffset() protocol.ByteCount - UpdateHighestReceived(byteOffset protocol.ByteCount) protocol.ByteCount - IncrementHighestReceived(increment protocol.ByteCount) - AddBytesRead(n protocol.ByteCount) - MaybeTriggerBlocked() bool - MaybeTriggerWindowUpdate() (bool, protocol.ByteCount) - CheckFlowControlViolation() bool -} - // A FlowControlManager manages the flow control type FlowControlManager interface { NewStream(streamID protocol.StreamID, contributesToConnectionFlow bool)