You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2016/10/18 18:03:16 UTC
[2/2] qpid-proton git commit: PROTON-1309: go: set outgoing message
window via electron interface.
PROTON-1309: go: set outgoing message window via electron interface.
Added a session option and IncomingSession setter for outgoing window.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/3569e03b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/3569e03b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/3569e03b
Branch: refs/heads/master
Commit: 3569e03b28b0f82c5a4e1004be6684f628c15aa8
Parents: d91131a
Author: Alan Conway <ac...@redhat.com>
Authored: Tue Oct 18 14:00:35 2016 -0400
Committer: Alan Conway <ac...@redhat.com>
Committed: Tue Oct 18 14:01:52 2016 -0400
----------------------------------------------------------------------
.../go/src/qpid.apache.org/electron/session.go | 35 +++++++++++++-------
1 file changed, 23 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/3569e03b/proton-c/bindings/go/src/qpid.apache.org/electron/session.go
----------------------------------------------------------------------
diff --git a/proton-c/bindings/go/src/qpid.apache.org/electron/session.go b/proton-c/bindings/go/src/qpid.apache.org/electron/session.go
index 66a8995..6dae354 100644
--- a/proton-c/bindings/go/src/qpid.apache.org/electron/session.go
+++ b/proton-c/bindings/go/src/qpid.apache.org/electron/session.go
@@ -36,17 +36,24 @@ type Session interface {
type session struct {
endpoint
- pSession proton.Session
- connection *connection
- capacity uint
+ pSession proton.Session
+ connection *connection
+ incomingCapacity, outgoingWindow uint
}
// SessionOption can be passed when creating a Session
type SessionOption func(*session)
// IncomingCapacity returns a Session Option that sets the size (in bytes) of
-// the sessions incoming data buffer..
-func IncomingCapacity(cap uint) SessionOption { return func(s *session) { s.capacity = cap } }
+// the session's incoming data buffer.
+func IncomingCapacity(bytes uint) SessionOption {
+ return func(s *session) { s.incomingCapacity = bytes }
+}
+
+// OutgoingWindow returns a Session Option that sets the outgoing window size (in frames).
+func OutgoingWindow(frames uint) SessionOption {
+ return func(s *session) { s.outgoingWindow = frames }
+}
// in proton goroutine
func newSession(c *connection, es proton.Session, setting ...SessionOption) *session {
@@ -59,7 +66,8 @@ func newSession(c *connection, es proton.Session, setting ...SessionOption) *ses
set(s)
}
c.handler.sessions[s.pSession] = s
- s.pSession.SetIncomingCapacity(s.capacity)
+ s.pSession.SetIncomingCapacity(s.incomingCapacity)
+ s.pSession.SetOutgoingWindow(s.outgoingWindow)
s.pSession.Open()
return s
}
@@ -108,21 +116,24 @@ func (s *session) Receiver(setting ...LinkOption) (rcv Receiver, err error) {
// incoming request to open a session.
type IncomingSession struct {
incoming
- h *handler
- pSession proton.Session
- capacity uint
+ h *handler
+ pSession proton.Session
+ incomingCapacity, outgoingWindow uint
}
func newIncomingSession(h *handler, ps proton.Session) *IncomingSession {
return &IncomingSession{incoming: makeIncoming(ps), h: h, pSession: ps}
}
-// SetCapacity sets the session buffer capacity of an incoming session in bytes.
-func (in *IncomingSession) SetCapacity(bytes uint) { in.capacity = bytes }
+// SetIncomingCapacity sets the session buffer capacity of an incoming session in bytes.
+func (in *IncomingSession) SetIncomingCapacity(bytes uint) { in.incomingCapacity = bytes }
+
+// SetOutgoingWindow sets the session outgoing window of an incoming session in frames.
+func (in *IncomingSession) SetOutgoingWindow(frames uint) { in.outgoingWindow = frames }
// Accept an incoming session endpoint.
func (in *IncomingSession) Accept() Endpoint {
return in.accept(func() Endpoint {
- return newSession(in.h.connection, in.pSession, IncomingCapacity(in.capacity))
+ return newSession(in.h.connection, in.pSession, IncomingCapacity(in.incomingCapacity), OutgoingWindow(in.outgoingWindow))
})
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org