You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2016/04/27 00:18:39 UTC
[4/4] qpid-proton git commit: PROTON-1182: [C++ binding] Tidy up and
fix link iterators
PROTON-1182: [C++ binding] Tidy up and fix link iterators
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/52338b8c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/52338b8c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/52338b8c
Branch: refs/heads/master
Commit: 52338b8c9b44e07464c28b47371b69cc40acdaaf
Parents: 5f5ae93
Author: Andrew Stitcher <as...@apache.org>
Authored: Tue Apr 26 15:08:34 2016 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Tue Apr 26 18:16:09 2016 -0400
----------------------------------------------------------------------
proton-c/bindings/cpp/include/proton/receiver.hpp | 12 +++++++++---
proton-c/bindings/cpp/include/proton/sender.hpp | 12 +++++++++---
proton-c/bindings/cpp/src/session.cpp | 5 +++--
3 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/52338b8c/proton-c/bindings/cpp/include/proton/receiver.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/receiver.hpp b/proton-c/bindings/cpp/include/proton/receiver.hpp
index be47481..d0eb6ec 100644
--- a/proton-c/bindings/cpp/include/proton/receiver.hpp
+++ b/proton-c/bindings/cpp/include/proton/receiver.hpp
@@ -63,16 +63,22 @@ PN_CPP_CLASS_EXTERN receiver : public internal::link {
};
class receiver_iterator : public internal::iter_base<receiver, receiver_iterator> {
- public:
///@cond INTERNAL
- explicit receiver_iterator(receiver r = 0, pn_session_t* s = 0) :
- internal::iter_base<receiver, receiver_iterator>(r), session_(s) {}
+ explicit receiver_iterator(receiver r, pn_session_t* s = 0) :
+ iter_base<receiver, receiver_iterator>(r), session_(s) {}
///@endcond
+
+ public:
+ explicit receiver_iterator() :
+ iter_base<receiver, receiver_iterator>(0), session_(0) {}
/// Advance
PN_CPP_EXTERN receiver_iterator operator++();
private:
pn_session_t* session_;
+
+ friend class connection;
+ friend class session;
};
/// A range of receivers.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/52338b8c/proton-c/bindings/cpp/include/proton/sender.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sender.hpp b/proton-c/bindings/cpp/include/proton/sender.hpp
index 87b9697..6f13abe 100644
--- a/proton-c/bindings/cpp/include/proton/sender.hpp
+++ b/proton-c/bindings/cpp/include/proton/sender.hpp
@@ -71,16 +71,22 @@ PN_CPP_CLASS_EXTERN sender : public internal::link
};
class sender_iterator : public internal::iter_base<sender, sender_iterator> {
- public:
///@cond INTERNAL
- explicit sender_iterator(sender snd = 0, pn_session_t* s = 0) :
- internal::iter_base<sender, sender_iterator>(snd), session_(s) {}
+ sender_iterator(sender snd, pn_session_t* s = 0) :
+ iter_base<sender, sender_iterator>(snd), session_(s) {}
///@endcond
+
+ public:
+ sender_iterator() :
+ iter_base<sender, sender_iterator>(0), session_(0) {}
/// Advance
PN_CPP_EXTERN sender_iterator operator++();
private:
pn_session_t* session_;
+
+ friend class connection;
+ friend class session;
};
/// A range of senders.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/52338b8c/proton-c/bindings/cpp/src/session.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/session.cpp b/proton-c/bindings/cpp/src/session.cpp
index 6e34ec6..42384dd 100644
--- a/proton-c/bindings/cpp/src/session.cpp
+++ b/proton-c/bindings/cpp/src/session.cpp
@@ -83,7 +83,7 @@ sender_range session::senders() const {
break;
lnk = pn_link_next(lnk, 0);
}
- return sender_range(sender_iterator(lnk));
+ return sender_range(sender_iterator(lnk, pn_object()));
}
receiver_range session::receivers() const {
@@ -91,8 +91,9 @@ receiver_range session::receivers() const {
while (lnk) {
if (pn_link_is_receiver(lnk) && pn_link_session(lnk) == pn_object())
break;
+ lnk = pn_link_next(lnk, 0);
}
- return receiver_range(receiver_iterator(lnk));
+ return receiver_range(receiver_iterator(lnk, pn_object()));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org