You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by michael goulish <mg...@redhat.com> on 2015/07/31 18:56:03 UTC
Review Request 36992: PROTON-886 and PROTON-930 -- handle_max and AMQP
numeric default constants
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36992/
-----------------------------------------------------------
Review request for qpid, Kenneth Giusti and Ted Ross.
Repository: qpid-proton-git
Description
-------
PROTON-886 and PROTON-930 -- handle_max and AMQP numeric default constants.
Note:
{
I am skipping the java implementation for now,
because I would like to get the C version out of
my life. (And this diff is already quite large
enough, I think.)
I will write a separate JIRA for the java version
and make it refer to this one. I will work on it
as a background task.
}
This diff adds two pieces of functionality:
1. extract numeric default valuies from AMQP
xml files and store them as defined constants
in protocol.h (PROTON_930)
2. add code to enforce AMQP 1.0 spec mandated
behavior with respect to handle-max values
-- i.e. negotiated limits on number of links --
per session. (PROTON-886)
These two changes are combined into one checkin
because of some earlier feedback I got suggesting
that I not check in PROTON-930 until I had some
code that could actually use the constants that it
creates.
The code that is generated by the changes in
proton-c/src/protocol.h.py show up in the file
protocol.h. It is this:
--------- begin snippet -----------------------
/* Numeric default values */
#define AMQP_OPEN_MAX_FRAME_SIZE_DEFAULT 4294967295
#define AMQP_OPEN_CHANNEL_MAX_DEFAULT 65535
#define AMQP_BEGIN_HANDLE_MAX_DEFAULT 4294967295
#define AMQP_SOURCE_TIMEOUT_DEFAULT 0
#define AMQP_TARGET_TIMEOUT_DEFAULT 0
--------- end snippet -----------------------
Diffs
-----
proton-c/bindings/python/proton/__init__.py 46b9466
proton-c/include/proton/session.h 94d2869
proton-c/src/engine/engine-internal.h 727f50d
proton-c/src/engine/engine.c 9043e0b
proton-c/src/protocol.h.py bbc0dfe
proton-c/src/transport/transport.c 6abf862
tests/python/proton_tests/engine.py 7a1d539
Diff: https://reviews.apache.org/r/36992/diff/
Testing
-------
ctest -VV with Java tests running.
Thanks,
michael goulish
Re: Review Request 36992: PROTON-886 and PROTON-930 -- handle_max and
AMQP numeric default constants
Posted by michael goulish <mg...@redhat.com>.
> On July 31, 2015, 8:27 p.m., Kenneth Giusti wrote:
> > proton-c/src/engine/engine.c, line 2230
> > <https://reviews.apache.org/r/36992/diff/1/?file=1026182#file1026182line2230>
> >
> > use pn_min() in utils.h
Wow we ... have a min macro. I... That's.... OK! Absolutely.
> On July 31, 2015, 8:27 p.m., Kenneth Giusti wrote:
> > proton-c/src/protocol.h.py, line 39
> > <https://reviews.apache.org/r/36992/diff/1/?file=1026183#file1026183line39>
> >
> > Yay! another chance to make you a Python programmer!
> >
> > You don't need the standalone int conversion statement to test the type (it's not 'natural' python):
> >
> > int(default)
> >
> > Use '%d' as the format flag (instead of %s), and pass it the int(default) in the print() statement.
Bah. What's 'natural'? standalone makes the intent more clear. Now I'm putting a comment there. Next they'll be telling me how to use whitespace. Oh, wait...
- michael
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36992/#review93765
-----------------------------------------------------------
On Aug. 5, 2015, 9:52 a.m., michael goulish wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36992/
> -----------------------------------------------------------
>
> (Updated Aug. 5, 2015, 9:52 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Repository: qpid-proton-git
>
>
> Description
> -------
>
> PROTON-886 and PROTON-930 -- handle_max and AMQP numeric default constants.
>
> Note:
> {
> I am skipping the java implementation for now,
> because I would like to get the C version out of
> my life. (And this diff is already quite large
> enough, I think.)
>
> I will write a separate JIRA for the java version
> and make it refer to this one. I will work on it
> as a background task.
> }
>
> This diff adds two pieces of functionality:
>
> 1. extract numeric default valuies from AMQP
> xml files and store them as defined constants
> in protocol.h (PROTON_930)
>
> 2. add code to enforce AMQP 1.0 spec mandated
> behavior with respect to handle-max values
> -- i.e. negotiated limits on number of links --
> per session. (PROTON-886)
>
> These two changes are combined into one checkin
> because of some earlier feedback I got suggesting
> that I not check in PROTON-930 until I had some
> code that could actually use the constants that it
> creates.
>
> The code that is generated by the changes in
> proton-c/src/protocol.h.py show up in the file
> protocol.h. It is this:
>
> --------- begin snippet -----------------------
> /* Numeric default values */
> #define AMQP_OPEN_MAX_FRAME_SIZE_DEFAULT 4294967295
> #define AMQP_OPEN_CHANNEL_MAX_DEFAULT 65535
> #define AMQP_BEGIN_HANDLE_MAX_DEFAULT 4294967295
> #define AMQP_SOURCE_TIMEOUT_DEFAULT 0
> #define AMQP_TARGET_TIMEOUT_DEFAULT 0
> --------- end snippet -----------------------
>
>
> Diffs
> -----
>
> proton-c/bindings/python/proton/__init__.py 46b9466
> proton-c/include/proton/session.h 94d2869
> proton-c/src/engine/engine-internal.h 727f50d
> proton-c/src/engine/engine.c 9043e0b
> proton-c/src/protocol.h.py bbc0dfe
> proton-c/src/transport/transport.c 6abf862
> tests/python/proton_tests/engine.py 7a1d539
>
> Diff: https://reviews.apache.org/r/36992/diff/
>
>
> Testing
> -------
>
> ctest -VV with Java tests running.
>
>
> Thanks,
>
> michael goulish
>
>
Re: Review Request 36992: PROTON-886 and PROTON-930 -- handle_max and
AMQP numeric default constants
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36992/#review93765
-----------------------------------------------------------
proton-c/bindings/python/proton/__init__.py (line 2571)
<https://reviews.apache.org/r/36992/#comment148168>
You can make 'handle_max' a read only property simply by specifying:
@property
def handle_max(self):
return pn_session_get_handle_max(self._impl)
instead of defining a dummy set method _set_handle_max.
I'll make you into a Python expert in no time. Yes, that is a threat.
proton-c/include/proton/session.h (line 313)
<https://reviews.apache.org/r/36992/#comment148169>
Actually, it isn't finalized until the session has opened, i.e. pn_session_state(session) == PN_REMOTE_ACTIVE | PN_LOCAL_ACTIVE, which means the BEGIN was sent and a remote BEGIN was received.
proton-c/src/engine/engine-internal.h (line 116)
<https://reviews.apache.org/r/36992/#comment148178>
nuke this
proton-c/src/engine/engine.c (line 1004)
<https://reviews.apache.org/r/36992/#comment148175>
Not necessary - see below:
proton-c/src/engine/engine.c (line 2227)
<https://reviews.apache.org/r/36992/#comment148177>
To check if this session has already sent a BEGIN:
if (!(session->endpoint.state & PN_LOCAL_UNINIT)) {
.....
we shouldn't be adding yet more state flags to the session - it's confusing enough as it is. Given the bitmask check isn't as self-documenting (thanks, Rafi!), it's pretty much the way it's done all over the code.
proton-c/src/engine/engine.c (line 2230)
<https://reviews.apache.org/r/36992/#comment148181>
use pn_min() in utils.h
proton-c/src/protocol.h.py (line 39)
<https://reviews.apache.org/r/36992/#comment148172>
Yay! another chance to make you a Python programmer!
You don't need the standalone int conversion statement to test the type (it's not 'natural' python):
int(default)
Use '%d' as the format flag (instead of %s), and pass it the int(default) in the print() statement.
proton-c/src/transport/transport.c (line 1219)
<https://reviews.apache.org/r/36992/#comment148180>
use pn_min() in utils.h
proton-c/src/transport/transport.c (line 2007)
<https://reviews.apache.org/r/36992/#comment148179>
nuke me
- Kenneth Giusti
On July 31, 2015, 4:56 p.m., michael goulish wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36992/
> -----------------------------------------------------------
>
> (Updated July 31, 2015, 4:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Repository: qpid-proton-git
>
>
> Description
> -------
>
> PROTON-886 and PROTON-930 -- handle_max and AMQP numeric default constants.
>
> Note:
> {
> I am skipping the java implementation for now,
> because I would like to get the C version out of
> my life. (And this diff is already quite large
> enough, I think.)
>
> I will write a separate JIRA for the java version
> and make it refer to this one. I will work on it
> as a background task.
> }
>
> This diff adds two pieces of functionality:
>
> 1. extract numeric default valuies from AMQP
> xml files and store them as defined constants
> in protocol.h (PROTON_930)
>
> 2. add code to enforce AMQP 1.0 spec mandated
> behavior with respect to handle-max values
> -- i.e. negotiated limits on number of links --
> per session. (PROTON-886)
>
> These two changes are combined into one checkin
> because of some earlier feedback I got suggesting
> that I not check in PROTON-930 until I had some
> code that could actually use the constants that it
> creates.
>
> The code that is generated by the changes in
> proton-c/src/protocol.h.py show up in the file
> protocol.h. It is this:
>
> --------- begin snippet -----------------------
> /* Numeric default values */
> #define AMQP_OPEN_MAX_FRAME_SIZE_DEFAULT 4294967295
> #define AMQP_OPEN_CHANNEL_MAX_DEFAULT 65535
> #define AMQP_BEGIN_HANDLE_MAX_DEFAULT 4294967295
> #define AMQP_SOURCE_TIMEOUT_DEFAULT 0
> #define AMQP_TARGET_TIMEOUT_DEFAULT 0
> --------- end snippet -----------------------
>
>
> Diffs
> -----
>
> proton-c/bindings/python/proton/__init__.py 46b9466
> proton-c/include/proton/session.h 94d2869
> proton-c/src/engine/engine-internal.h 727f50d
> proton-c/src/engine/engine.c 9043e0b
> proton-c/src/protocol.h.py bbc0dfe
> proton-c/src/transport/transport.c 6abf862
> tests/python/proton_tests/engine.py 7a1d539
>
> Diff: https://reviews.apache.org/r/36992/diff/
>
>
> Testing
> -------
>
> ctest -VV with Java tests running.
>
>
> Thanks,
>
> michael goulish
>
>
Re: Review Request 36992: PROTON-886 and PROTON-930 -- handle_max and
AMQP numeric default constants
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36992/#review94317
-----------------------------------------------------------
Ship it!
Ship It!
- Kenneth Giusti
On Aug. 5, 2015, 9:52 a.m., michael goulish wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36992/
> -----------------------------------------------------------
>
> (Updated Aug. 5, 2015, 9:52 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Repository: qpid-proton-git
>
>
> Description
> -------
>
> PROTON-886 and PROTON-930 -- handle_max and AMQP numeric default constants.
>
> Note:
> {
> I am skipping the java implementation for now,
> because I would like to get the C version out of
> my life. (And this diff is already quite large
> enough, I think.)
>
> I will write a separate JIRA for the java version
> and make it refer to this one. I will work on it
> as a background task.
> }
>
> This diff adds two pieces of functionality:
>
> 1. extract numeric default valuies from AMQP
> xml files and store them as defined constants
> in protocol.h (PROTON_930)
>
> 2. add code to enforce AMQP 1.0 spec mandated
> behavior with respect to handle-max values
> -- i.e. negotiated limits on number of links --
> per session. (PROTON-886)
>
> These two changes are combined into one checkin
> because of some earlier feedback I got suggesting
> that I not check in PROTON-930 until I had some
> code that could actually use the constants that it
> creates.
>
> The code that is generated by the changes in
> proton-c/src/protocol.h.py show up in the file
> protocol.h. It is this:
>
> --------- begin snippet -----------------------
> /* Numeric default values */
> #define AMQP_OPEN_MAX_FRAME_SIZE_DEFAULT 4294967295
> #define AMQP_OPEN_CHANNEL_MAX_DEFAULT 65535
> #define AMQP_BEGIN_HANDLE_MAX_DEFAULT 4294967295
> #define AMQP_SOURCE_TIMEOUT_DEFAULT 0
> #define AMQP_TARGET_TIMEOUT_DEFAULT 0
> --------- end snippet -----------------------
>
>
> Diffs
> -----
>
> proton-c/bindings/python/proton/__init__.py 46b9466
> proton-c/include/proton/session.h 94d2869
> proton-c/src/engine/engine-internal.h 727f50d
> proton-c/src/engine/engine.c 9043e0b
> proton-c/src/protocol.h.py bbc0dfe
> proton-c/src/transport/transport.c 6abf862
> tests/python/proton_tests/engine.py 7a1d539
>
> Diff: https://reviews.apache.org/r/36992/diff/
>
>
> Testing
> -------
>
> ctest -VV with Java tests running.
>
>
> Thanks,
>
> michael goulish
>
>
Re: Review Request 36992: PROTON-886 and PROTON-930 -- handle_max and
AMQP numeric default constants
Posted by michael goulish <mg...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36992/
-----------------------------------------------------------
(Updated Aug. 5, 2015, 9:52 a.m.)
Review request for qpid, Kenneth Giusti and Ted Ross.
Changes
-------
Improvements from kgiusti's feedback.
Repository: qpid-proton-git
Description
-------
PROTON-886 and PROTON-930 -- handle_max and AMQP numeric default constants.
Note:
{
I am skipping the java implementation for now,
because I would like to get the C version out of
my life. (And this diff is already quite large
enough, I think.)
I will write a separate JIRA for the java version
and make it refer to this one. I will work on it
as a background task.
}
This diff adds two pieces of functionality:
1. extract numeric default valuies from AMQP
xml files and store them as defined constants
in protocol.h (PROTON_930)
2. add code to enforce AMQP 1.0 spec mandated
behavior with respect to handle-max values
-- i.e. negotiated limits on number of links --
per session. (PROTON-886)
These two changes are combined into one checkin
because of some earlier feedback I got suggesting
that I not check in PROTON-930 until I had some
code that could actually use the constants that it
creates.
The code that is generated by the changes in
proton-c/src/protocol.h.py show up in the file
protocol.h. It is this:
--------- begin snippet -----------------------
/* Numeric default values */
#define AMQP_OPEN_MAX_FRAME_SIZE_DEFAULT 4294967295
#define AMQP_OPEN_CHANNEL_MAX_DEFAULT 65535
#define AMQP_BEGIN_HANDLE_MAX_DEFAULT 4294967295
#define AMQP_SOURCE_TIMEOUT_DEFAULT 0
#define AMQP_TARGET_TIMEOUT_DEFAULT 0
--------- end snippet -----------------------
Diffs (updated)
-----
proton-c/bindings/python/proton/__init__.py 46b9466
proton-c/include/proton/session.h 94d2869
proton-c/src/engine/engine-internal.h 727f50d
proton-c/src/engine/engine.c 9043e0b
proton-c/src/protocol.h.py bbc0dfe
proton-c/src/transport/transport.c 6abf862
tests/python/proton_tests/engine.py 7a1d539
Diff: https://reviews.apache.org/r/36992/diff/
Testing
-------
ctest -VV with Java tests running.
Thanks,
michael goulish