Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C871718C29 for ; Tue, 20 Oct 2015 18:26:07 +0000 (UTC) Received: (qmail 66286 invoked by uid 500); 20 Oct 2015 18:26:07 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 66259 invoked by uid 500); 20 Oct 2015 18:26:07 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 66249 invoked by uid 99); 20 Oct 2015 18:26:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 Oct 2015 18:26:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 61E92DFC11; Tue, 20 Oct 2015 18:26:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: aconway@apache.org To: commits@qpid.apache.org Message-Id: <2a61e934dbec4442a39b9280a7b44589@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: qpid-proton git commit: NO-JIRA: c++ const correctness and other minor fixes. Date: Tue, 20 Oct 2015 18:26:07 +0000 (UTC) Repository: qpid-proton Updated Branches: refs/heads/master d72f161d1 -> cf221b457 NO-JIRA: c++ const correctness and other minor fixes. - Made inspector functions const - Removed link_prefix, generated generated link names are XXX + "@" + container.id() - Removed redundant terminus::has_* functions. - Removed redundant 'acking' class Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/cf221b45 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/cf221b45 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/cf221b45 Branch: refs/heads/master Commit: cf221b45793fd1d1e12a4f470483c5b4fc2ad39d Parents: d72f161 Author: Alan Conway Authored: Tue Oct 20 13:22:09 2015 -0400 Committer: Alan Conway Committed: Tue Oct 20 14:22:40 2015 -0400 ---------------------------------------------------------------------- examples/cpp/server_direct.cpp | 2 +- proton-c/bindings/cpp/include/proton/acking.hpp | 50 -------------------- .../cpp/include/proton/blocking_connection.hpp | 4 +- .../cpp/include/proton/blocking_sender.hpp | 2 +- .../bindings/cpp/include/proton/connection.hpp | 12 ++--- .../bindings/cpp/include/proton/container.hpp | 13 ++--- proton-c/bindings/cpp/include/proton/data.hpp | 2 +- .../bindings/cpp/include/proton/delivery.hpp | 12 ++--- .../bindings/cpp/include/proton/endpoint.hpp | 20 ++++---- proton-c/bindings/cpp/include/proton/event.hpp | 14 +++--- proton-c/bindings/cpp/include/proton/link.hpp | 41 +++++++--------- .../bindings/cpp/include/proton/message.hpp | 16 ++++--- .../bindings/cpp/include/proton/reactor.hpp | 2 +- .../cpp/include/proton/request_response.hpp | 2 +- .../bindings/cpp/include/proton/session.hpp | 14 +++--- .../bindings/cpp/include/proton/terminus.hpp | 10 ++-- .../bindings/cpp/include/proton/transport.hpp | 2 +- .../bindings/cpp/src/blocking_connection.cpp | 4 +- proton-c/bindings/cpp/src/blocking_sender.cpp | 2 +- proton-c/bindings/cpp/src/connection.cpp | 12 ++--- proton-c/bindings/cpp/src/container.cpp | 7 +-- proton-c/bindings/cpp/src/container_impl.cpp | 2 +- proton-c/bindings/cpp/src/container_impl.hpp | 1 - proton-c/bindings/cpp/src/data.cpp | 2 + proton-c/bindings/cpp/src/delivery.cpp | 13 ++--- proton-c/bindings/cpp/src/event.cpp | 14 +++--- proton-c/bindings/cpp/src/link.cpp | 31 ++++++------ proton-c/bindings/cpp/src/message.cpp | 4 +- proton-c/bindings/cpp/src/messaging_event.cpp | 12 ++--- proton-c/bindings/cpp/src/messaging_event.hpp | 12 ++--- proton-c/bindings/cpp/src/proton_event.cpp | 14 +++--- proton-c/bindings/cpp/src/proton_event.hpp | 16 +++---- proton-c/bindings/cpp/src/request_response.cpp | 2 +- proton-c/bindings/cpp/src/session.cpp | 6 +-- proton-c/bindings/cpp/src/terminus.cpp | 10 ++-- proton-c/bindings/cpp/src/transport.cpp | 2 +- 36 files changed, 165 insertions(+), 219 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/examples/cpp/server_direct.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/server_direct.cpp b/examples/cpp/server_direct.cpp index 2b6d8e2..76bb5ad 100644 --- a/examples/cpp/server_direct.cpp +++ b/examples/cpp/server_direct.cpp @@ -63,7 +63,7 @@ class server : public proton::messaging_handler { void on_link_opening(proton::event& e) { proton::link& link = e.link(); - if (link.sender() && link.has_remote_source() && link.remote_source().dynamic()) { + if (link.sender() && link.remote_source().dynamic()) { link.source().address(generate_address()); senders[link.source().address()] = link.sender()->ptr(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/acking.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/acking.hpp b/proton-c/bindings/cpp/include/proton/acking.hpp deleted file mode 100644 index 8a6d75b..0000000 --- a/proton-c/bindings/cpp/include/proton/acking.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef PROTON_CPP_ACKING_H -#define PROTON_CPP_ACKING_H - -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -#include "proton/export.hpp" -#include "proton/delivery.hpp" - -namespace proton { - - -/** acking provides simple functions to acknowledge, or settle, a delivery */ -class acking -{ - public: - /** accept a delivery */ - PN_CPP_EXTERN virtual void accept(delivery &d); - /** reject a delivery */ - PN_CPP_EXTERN virtual void reject(delivery &d); - /** release a delivery. Mark it delivery::MODIFIED if it has already been delivered, - * delivery::RELEASED otherwise. - */ - PN_CPP_EXTERN virtual void release(delivery &d, bool delivered=true); - /** settle a delivery with the given delivery::state */ - PN_CPP_EXTERN virtual void settle(delivery &d, delivery::state s = delivery::REJECTED); -}; - - -} - -#endif /*!PROTON_CPP_ACKING_H*/ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/blocking_connection.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/blocking_connection.hpp b/proton-c/bindings/cpp/include/proton/blocking_connection.hpp index f7787cb..87e9b2e 100644 --- a/proton-c/bindings/cpp/include/proton/blocking_connection.hpp +++ b/proton-c/bindings/cpp/include/proton/blocking_connection.hpp @@ -42,8 +42,8 @@ class blocking_connection PN_CPP_EXTERN blocking_connection(const proton::url &url, duration timeout = duration::FOREVER); PN_CPP_EXTERN ~blocking_connection(); PN_CPP_EXTERN void close(); - PN_CPP_EXTERN duration timeout(); - PN_CPP_EXTERN class connection& connection(); + PN_CPP_EXTERN duration timeout() const; + PN_CPP_EXTERN class connection& connection() const; private: blocking_connection(const blocking_connection&); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/blocking_sender.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/blocking_sender.hpp b/proton-c/bindings/cpp/include/proton/blocking_sender.hpp index 713ae6d..b7c2697 100644 --- a/proton-c/bindings/cpp/include/proton/blocking_sender.hpp +++ b/proton-c/bindings/cpp/include/proton/blocking_sender.hpp @@ -42,7 +42,7 @@ class blocking_sender : public blocking_link PN_CPP_EXTERN delivery& send(const message &msg); PN_CPP_EXTERN delivery& send(const message &msg, duration timeout); - PN_CPP_EXTERN class sender& sender(); + PN_CPP_EXTERN class sender& sender() const; }; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/connection.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/connection.hpp b/proton-c/bindings/cpp/include/proton/connection.hpp index c7ce447..efbd549 100644 --- a/proton-c/bindings/cpp/include/proton/connection.hpp +++ b/proton-c/bindings/cpp/include/proton/connection.hpp @@ -39,9 +39,9 @@ class connection : public counted_facade { public: ///@name getters @{ - PN_CPP_EXTERN class transport& transport(); - PN_CPP_EXTERN class container& container(); - PN_CPP_EXTERN std::string hostname(); + PN_CPP_EXTERN class transport& transport() const; + PN_CPP_EXTERN class container& container() const; + PN_CPP_EXTERN std::string host() const; ///@} /** Initiate local open, not complete till messaging_handler::on_connection_opened() @@ -67,13 +67,13 @@ class connection : public counted_facade PN_CPP_EXTERN receiver& open_receiver(const std::string &addr, bool dynamic=false, handler *h=0); /** Return links on this connection matching the state mask. */ - PN_CPP_EXTERN link_range find_links(endpoint::state mask); + PN_CPP_EXTERN link_range find_links(endpoint::state mask) const; /** Return sessions on this connection matching the state mask. */ - PN_CPP_EXTERN session_range find_sessions(endpoint::state mask); + PN_CPP_EXTERN session_range find_sessions(endpoint::state mask) const; /** Get the endpoint state */ - PN_CPP_EXTERN endpoint::state state(); + PN_CPP_EXTERN endpoint::state state() const; }; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/container.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp index ddb12e9..059416f 100644 --- a/proton-c/bindings/cpp/include/proton/container.hpp +++ b/proton-c/bindings/cpp/include/proton/container.hpp @@ -43,6 +43,9 @@ class container_impl; /** * Top level container for connections and other objects, runs the event loop. + * + * Note that by default, links belonging to the container have generated link-names + * of the form */ class container { @@ -71,16 +74,10 @@ class container PN_CPP_EXTERN receiver& open_receiver(const url &); /// Identifier for the container - PN_CPP_EXTERN std::string id(); - - /// Set the prefix to be used when generating link names. @see proton::session - PN_CPP_EXTERN void link_prefix(const std::string&); - - /// Get the prefix to be used when generating link names. @see proton::session - PN_CPP_EXTERN std::string link_prefix(); + PN_CPP_EXTERN std::string id() const; /// The reactor associated with this container. - PN_CPP_EXTERN class reactor& reactor(); + PN_CPP_EXTERN class reactor& reactor() const; // Schedule a timer task event in delay milliseconds. PN_CPP_EXTERN task& schedule(int delay, handler *h = 0); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/data.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/data.hpp b/proton-c/bindings/cpp/include/proton/data.hpp index 17e55fb..bbc49c2 100644 --- a/proton-c/bindings/cpp/include/proton/data.hpp +++ b/proton-c/bindings/cpp/include/proton/data.hpp @@ -59,7 +59,7 @@ class data : public facade > { PN_CPP_EXTERN class decoder& decoder(); /** Type of the current value*/ - PN_CPP_EXTERN type_id type() { return decoder().type(); } + PN_CPP_EXTERN type_id type() const; /** Get the current value, don't move the decoder pointer. */ template void get(T &t) { decoder() >> t; decoder().backup(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/delivery.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/delivery.hpp b/proton-c/bindings/cpp/include/proton/delivery.hpp index 1bd1dea..08389c9 100644 --- a/proton-c/bindings/cpp/include/proton/delivery.hpp +++ b/proton-c/bindings/cpp/include/proton/delivery.hpp @@ -43,7 +43,7 @@ class delivery : public counted_facade { }; // AMQP spec 3.4 delivery State /** Return true if the delivery has been settled. */ - PN_CPP_EXTERN bool settled(); + PN_CPP_EXTERN bool settled() const; /** Settle the delivery, informs the remote end. */ PN_CPP_EXTERN void settle(); @@ -72,7 +72,7 @@ class delivery : public counted_facade { * A delivery is considered readable if it is the current delivery on * an incoming link. */ - PN_CPP_EXTERN bool partial(); + PN_CPP_EXTERN bool partial() const; /** * Check if a delivery is writable. @@ -80,7 +80,7 @@ class delivery : public counted_facade { * A delivery is considered writable if it is the current delivery on * an outgoing link, and the link has positive credit. */ - PN_CPP_EXTERN bool writable(); + PN_CPP_EXTERN bool writable() const; /** * Check if a delivery is readable. @@ -88,7 +88,7 @@ class delivery : public counted_facade { * A delivery is considered readable if it is the current delivery on * an incoming link. */ - PN_CPP_EXTERN bool readable(); + PN_CPP_EXTERN bool readable() const; /** * Check if a delivery is updated. @@ -97,7 +97,7 @@ class delivery : public counted_facade { * new disposition for the delivery. Once a delivery becomes updated, * it will remain so until clear() is called. */ - PN_CPP_EXTERN bool updated(); + PN_CPP_EXTERN bool updated() const; /** * Clear the updated flag for a delivery. @@ -107,7 +107,7 @@ class delivery : public counted_facade { /** * Get the remote disposition state for a delivery. */ - PN_CPP_EXTERN state remote_state(); + PN_CPP_EXTERN state remote_state() const; }; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/endpoint.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/endpoint.hpp b/proton-c/bindings/cpp/include/proton/endpoint.hpp index 9fb5368..e31fce6 100644 --- a/proton-c/bindings/cpp/include/proton/endpoint.hpp +++ b/proton-c/bindings/cpp/include/proton/endpoint.hpp @@ -49,14 +49,14 @@ class endpoint typedef int state; /// endpoint state bit values @{ - PN_CPP_EXTERN static const int LOCAL_UNINIT; ///< Local endpoint is un-initialized - PN_CPP_EXTERN static const int REMOTE_UNINIT; ///< Remote endpoint is un-initialized - PN_CPP_EXTERN static const int LOCAL_ACTIVE; ///< Local endpoint is active - PN_CPP_EXTERN static const int REMOTE_ACTIVE; ///< Remote endpoint is active - PN_CPP_EXTERN static const int LOCAL_CLOSED; ///< Local endpoint has been closed - PN_CPP_EXTERN static const int REMOTE_CLOSED; ///< Remote endpoint has been closed - PN_CPP_EXTERN static const int LOCAL_MASK; ///< Mask including all LOCAL_ bits (UNINIT, ACTIVE, CLOSED) - PN_CPP_EXTERN static const int REMOTE_MASK; ///< Mask including all REMOTE_ bits (UNINIT, ACTIVE, CLOSED) + PN_CPP_EXTERN static const state LOCAL_UNINIT; ///< Local endpoint is un-initialized + PN_CPP_EXTERN static const state REMOTE_UNINIT; ///< Remote endpoint is un-initialized + PN_CPP_EXTERN static const state LOCAL_ACTIVE; ///< Local endpoint is active + PN_CPP_EXTERN static const state REMOTE_ACTIVE; ///< Remote endpoint is active + PN_CPP_EXTERN static const state LOCAL_CLOSED; ///< Local endpoint has been closed + PN_CPP_EXTERN static const state REMOTE_CLOSED; ///< Remote endpoint has been closed + PN_CPP_EXTERN static const state LOCAL_MASK; ///< Mask including all LOCAL_ bits (UNINIT, ACTIVE, CLOSED) + PN_CPP_EXTERN static const state REMOTE_MASK; ///< Mask including all REMOTE_ bits (UNINIT, ACTIVE, CLOSED) ///@} // TODO: condition, remote_condition, update_condition, get/handler @@ -112,11 +112,11 @@ class link_iterator : public iter_base { public: explicit link_iterator(link* p = 0, endpoint::state s = 0) : iter_base(p, s), session_(0) {} - explicit link_iterator(const link_iterator& i, session *ssn) : + explicit link_iterator(const link_iterator& i, const session *ssn) : iter_base(i.ptr_, i.state_), session_(ssn) {} private: PN_CPP_EXTERN void advance(); - session* session_; + const session* session_; friend class iter_base; }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/event.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/event.hpp b/proton-c/bindings/cpp/include/proton/event.hpp index 82f6cb6..65d8c7b 100644 --- a/proton-c/bindings/cpp/include/proton/event.hpp +++ b/proton-c/bindings/cpp/include/proton/event.hpp @@ -46,19 +46,19 @@ class event { virtual PN_CPP_EXTERN std::string name() const = 0; /// Get container. - virtual PN_CPP_EXTERN class container &container(); + virtual PN_CPP_EXTERN class container &container() const; /// Get connection. - virtual PN_CPP_EXTERN class connection &connection(); + virtual PN_CPP_EXTERN class connection &connection() const; /// Get sender @throws error if no sender. - virtual PN_CPP_EXTERN class sender& sender(); + virtual PN_CPP_EXTERN class sender& sender() const; /// Get receiver @throws error if no receiver. - virtual PN_CPP_EXTERN class receiver& receiver(); + virtual PN_CPP_EXTERN class receiver& receiver() const; /// Get link @throws error if no link. - virtual PN_CPP_EXTERN class link& link(); + virtual PN_CPP_EXTERN class link& link() const; /// Get delivey @throws error if no delivery. - virtual PN_CPP_EXTERN class delivery& delivery(); + virtual PN_CPP_EXTERN class delivery& delivery() const; /** Get message @throws error if no message. */ - virtual PN_CPP_EXTERN class message &message(); + virtual PN_CPP_EXTERN class message &message() const; protected: PN_CPP_EXTERN event(); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/link.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/link.hpp b/proton-c/bindings/cpp/include/proton/link.hpp index 4e502e1..b4b40e0 100644 --- a/proton-c/bindings/cpp/include/proton/link.hpp +++ b/proton-c/bindings/cpp/include/proton/link.hpp @@ -51,37 +51,32 @@ class link : public counted_facade /** Return sender if this link is a sender, 0 if not. */ PN_CPP_EXTERN class sender* sender(); + PN_CPP_EXTERN const class sender* sender() const; + /** Return receiver if this link is a receiver, 0 if not. */ PN_CPP_EXTERN class receiver* receiver(); + PN_CPP_EXTERN const class receiver* receiver() const; + /** Credit available on the link */ - PN_CPP_EXTERN int credit(); - - /** True if link has source */ - PN_CPP_EXTERN bool has_source(); - /** True if link has target */ - PN_CPP_EXTERN bool has_target(); - /** True if link has remote source */ - PN_CPP_EXTERN bool has_remote_source(); - /** True if link has remote target */ - PN_CPP_EXTERN bool has_remote_target(); - - /** Local source of the link. @throw error if !has_source() */ - PN_CPP_EXTERN terminus& source(); - /** Local target of the link. @throw error if !has_target() */ - PN_CPP_EXTERN terminus& target(); - /** Remote source of the link. @throw error if !has_remote_source() */ - PN_CPP_EXTERN terminus& remote_source(); - /** Remote target of the link. @throw error if !has_remote_target() */ - PN_CPP_EXTERN terminus& remote_target(); + PN_CPP_EXTERN int credit() const; + + /** Local source of the link. */ + PN_CPP_EXTERN terminus& source() const; + /** Local target of the link. */ + PN_CPP_EXTERN terminus& target() const; + /** Remote source of the link. */ + PN_CPP_EXTERN terminus& remote_source() const; + /** Remote target of the link. */ + PN_CPP_EXTERN terminus& remote_target() const; /** Link name */ - PN_CPP_EXTERN std::string name(); + PN_CPP_EXTERN std::string name() const; /** Connection that owns this link */ - PN_CPP_EXTERN class connection &connection(); + PN_CPP_EXTERN class connection &connection() const; /** Session that owns this link */ - PN_CPP_EXTERN class session &session(); + PN_CPP_EXTERN class session &session() const; /** Set a custom handler for this link. */ PN_CPP_EXTERN void handler(class handler &); @@ -90,7 +85,7 @@ class link : public counted_facade PN_CPP_EXTERN void detach_handler(); /** Get the endpoint state */ - PN_CPP_EXTERN endpoint::state state(); + PN_CPP_EXTERN endpoint::state state() const; }; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/message.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/message.hpp b/proton-c/bindings/cpp/include/proton/message.hpp index 92086d1..14eb9a8 100644 --- a/proton-c/bindings/cpp/include/proton/message.hpp +++ b/proton-c/bindings/cpp/include/proton/message.hpp @@ -56,11 +56,12 @@ class message ///@name Message properties ///@{ - /// Globally unique identifier, can be an a string, an unsigned long, a uuid or a binary value. + ///@ Set message identifier, can be a string, unsigned long, uuid or binary. PN_CPP_EXTERN void id(const data& id); - /// Globally unique identifier, can be an a string, an unsigned long, a uuid or a binary value. - PN_CPP_EXTERN const data& id() const; + ///@ Get message identifier PN_CPP_EXTERN data& id(); + ///@ Get message identifier reference, allows modification in-place. + PN_CPP_EXTERN const data& id() const; PN_CPP_EXTERN void user(const std::string &user); PN_CPP_EXTERN std::string user() const; @@ -74,10 +75,11 @@ class message PN_CPP_EXTERN void reply_to(const std::string &s); PN_CPP_EXTERN std::string reply_to() const; - /// Correlation identifier, can be an a string, an unsigned long, a uuid or a binary value. + /// Get correlation identifier, can be a string, unsigned long, uuid or binary. PN_CPP_EXTERN void correlation_id(const data&); - /// Correlation identifier, can be an a string, an unsigned long, a uuid or a binary value. + /// Get correlation identifier. PN_CPP_EXTERN const data& correlation_id() const; + /// Get correlation identifier reference, allows modification in-place. PN_CPP_EXTERN data& correlation_id(); PN_CPP_EXTERN void content_type(const std::string &s); @@ -86,8 +88,8 @@ class message PN_CPP_EXTERN void content_encoding(const std::string &s); PN_CPP_EXTERN std::string content_encoding() const; - PN_CPP_EXTERN void expiry(amqp_timestamp t); - PN_CPP_EXTERN amqp_timestamp expiry() const; + PN_CPP_EXTERN void expiry_time(amqp_timestamp t); + PN_CPP_EXTERN amqp_timestamp expiry_time() const; PN_CPP_EXTERN void creation_time(amqp_timestamp t); PN_CPP_EXTERN amqp_timestamp creation_time() const; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/reactor.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/reactor.hpp b/proton-c/bindings/cpp/include/proton/reactor.hpp index b9e9427..8508e20 100644 --- a/proton-c/bindings/cpp/include/proton/reactor.hpp +++ b/proton-c/bindings/cpp/include/proton/reactor.hpp @@ -56,7 +56,7 @@ class reactor : public facade { PN_CPP_EXTERN void stop(); /// Identifier for the container - PN_CPP_EXTERN std::string id(); + PN_CPP_EXTERN std::string id() const; /// Get timeout, process() will return if there is no activity within the timeout. PN_CPP_EXTERN duration timeout(); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/request_response.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/request_response.hpp b/proton-c/bindings/cpp/include/proton/request_response.hpp index 9bc4392..957c91a 100644 --- a/proton-c/bindings/cpp/include/proton/request_response.hpp +++ b/proton-c/bindings/cpp/include/proton/request_response.hpp @@ -48,7 +48,7 @@ class request_response */ PN_CPP_EXTERN message call(message &request); /** Return the dynamic address of our receiver. */ - PN_CPP_EXTERN std::string reply_to(); + PN_CPP_EXTERN std::string reply_to() const; private: blocking_connection &connection_; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/session.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/session.hpp b/proton-c/bindings/cpp/include/proton/session.hpp index b3dc446..0e6aa69 100644 --- a/proton-c/bindings/cpp/include/proton/session.hpp +++ b/proton-c/bindings/cpp/include/proton/session.hpp @@ -52,19 +52,19 @@ class session : public counted_facade PN_CPP_EXTERN void close(); /// Get connection - PN_CPP_EXTERN class connection &connection(); + PN_CPP_EXTERN class connection &connection() const; /** An un-opened receiver link, you can set link properties before calling open(). * - *@param name must be unique within a container, if empty a unique name is - * generated beginning with connection().container().link_prefix() + *@param name if specified must be unique, by default the container generates a name + * of the form: + "@" + container.id() */ PN_CPP_EXTERN receiver& create_receiver(const std::string& name=std::string()); /** An un-opened sender link, you can set link properties before calling open(). * - *@param name must be unique within a container, if empty a unique name is - * generated beginning with connection().container().link_prefix() + *@param name if specified must be unique, by default the container generates a name + * of the form: + "@" + container.id() */ PN_CPP_EXTERN sender& create_sender(const std::string& name=std::string()); @@ -75,10 +75,10 @@ class session : public counted_facade PN_CPP_EXTERN receiver& open_receiver(const std::string &addr, bool dynamic=false, handler *h=0); /** Get the endpoint state */ - PN_CPP_EXTERN endpoint::state state(); + PN_CPP_EXTERN endpoint::state state() const; /** Return the links on this session matching the state mask. */ - PN_CPP_EXTERN link_range find_links(endpoint::state mask); + PN_CPP_EXTERN link_range find_links(endpoint::state mask) const; }; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/terminus.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/terminus.hpp b/proton-c/bindings/cpp/include/proton/terminus.hpp index e058e84..86b56f7 100644 --- a/proton-c/bindings/cpp/include/proton/terminus.hpp +++ b/proton-c/bindings/cpp/include/proton/terminus.hpp @@ -59,15 +59,15 @@ class terminus : public counted_facade MOVE = PN_DIST_MODE_MOVE }; - PN_CPP_EXTERN type_t type(); + PN_CPP_EXTERN type_t type() const; PN_CPP_EXTERN void type(type_t); - PN_CPP_EXTERN expiry_policy_t expiry_policy(); + PN_CPP_EXTERN expiry_policy_t expiry_policy() const; PN_CPP_EXTERN void expiry_policy(expiry_policy_t); - PN_CPP_EXTERN distribution_mode_t distribution_mode(); + PN_CPP_EXTERN distribution_mode_t distribution_mode() const; PN_CPP_EXTERN void distribution_mode(distribution_mode_t); - PN_CPP_EXTERN std::string address(); + PN_CPP_EXTERN std::string address() const; PN_CPP_EXTERN void address(const std::string &); - PN_CPP_EXTERN bool dynamic(); + PN_CPP_EXTERN bool dynamic() const; PN_CPP_EXTERN void dynamic(bool); }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/include/proton/transport.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/transport.hpp b/proton-c/bindings/cpp/include/proton/transport.hpp index c909166..3d602b7 100644 --- a/proton-c/bindings/cpp/include/proton/transport.hpp +++ b/proton-c/bindings/cpp/include/proton/transport.hpp @@ -36,7 +36,7 @@ class connection; class transport : public counted_facade { public: - class connection* connection(); + class connection* connection() const; }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/blocking_connection.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/blocking_connection.cpp b/proton-c/bindings/cpp/src/blocking_connection.cpp index 6b0308c..d830872 100644 --- a/proton-c/bindings/cpp/src/blocking_connection.cpp +++ b/proton-c/bindings/cpp/src/blocking_connection.cpp @@ -32,8 +32,8 @@ blocking_connection::~blocking_connection() {} void blocking_connection::close() { impl_->close(); } -duration blocking_connection::timeout() { return impl_->container_->reactor().timeout(); } +duration blocking_connection::timeout() const { return impl_->container_->reactor().timeout(); } -connection& blocking_connection::connection() { return *impl_->connection_; } +connection& blocking_connection::connection() const { return *impl_->connection_; } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/blocking_sender.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/blocking_sender.cpp b/proton-c/bindings/cpp/src/blocking_sender.cpp index 1fca30b..43480d6 100644 --- a/proton-c/bindings/cpp/src/blocking_sender.cpp +++ b/proton-c/bindings/cpp/src/blocking_sender.cpp @@ -63,6 +63,6 @@ delivery& blocking_sender::send(const message &msg) { return send(msg, connection_.timeout()); } -sender& blocking_sender::sender() { return *link_->sender(); } +sender& blocking_sender::sender() const { return *link_->sender(); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/connection.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/connection.cpp b/proton-c/bindings/cpp/src/connection.cpp index 19657fd..1b35e03 100644 --- a/proton-c/bindings/cpp/src/connection.cpp +++ b/proton-c/bindings/cpp/src/connection.cpp @@ -37,7 +37,7 @@ namespace proton { -transport &connection::transport() { +transport &connection::transport() const { return *transport::cast(pn_connection_transport(pn_cast(this))); } @@ -45,19 +45,19 @@ void connection::open() { pn_connection_open(pn_cast(this)); } void connection::close() { pn_connection_close(pn_cast(this)); } -std::string connection::hostname() { +std::string connection::host() const { return std::string(pn_connection_get_hostname(pn_cast(this))); } -container& connection::container() { +container& connection::container() const { return container_context(pn_object_reactor(pn_cast(this))); } -link_range connection::find_links(endpoint::state mask) { +link_range connection::find_links(endpoint::state mask) const { return link_range(link_iterator(link::cast(pn_link_head(pn_cast(this), mask)))); } -session_range connection::find_sessions(endpoint::state mask) { +session_range connection::find_sessions(endpoint::state mask) const { return session_range( session_iterator(session::cast(pn_session_head(pn_cast(this), mask)))); } @@ -82,6 +82,6 @@ receiver& connection::open_receiver(const std::string &addr, bool dynamic, handl return default_session().open_receiver(addr, dynamic, h); } -endpoint::state connection::state() { return pn_connection_state(pn_cast(this)); } +endpoint::state connection::state() const { return pn_connection_state(pn_cast(this)); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/container.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/container.cpp b/proton-c/bindings/cpp/src/container.cpp index 9b681b9..13f12d9 100644 --- a/proton-c/bindings/cpp/src/container.cpp +++ b/proton-c/bindings/cpp/src/container.cpp @@ -49,9 +49,9 @@ container::~container() {} connection& container::connect(const url &host, handler *h) { return impl_->connect(host, h); } -reactor &container::reactor() { return *impl_->reactor_; } +reactor &container::reactor() const { return *impl_->reactor_; } -std::string container::id() { return impl_->id_; } +std::string container::id() const { return impl_->id_; } void container::run() { impl_->reactor_->run(); } @@ -67,9 +67,6 @@ acceptor& container::listen(const proton::url &url) { return impl_->listen(url); } -void container::link_prefix(const std::string& s) { impl_->prefix_ = s; } -std::string container::link_prefix() { return impl_->prefix_; } - task& container::schedule(int delay, handler *h) { return impl_->schedule(delay, h); } } // namespace proton http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/container_impl.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/container_impl.cpp b/proton-c/bindings/cpp/src/container_impl.cpp index cb32d75..fc97a3e 100644 --- a/proton-c/bindings/cpp/src/container_impl.cpp +++ b/proton-c/bindings/cpp/src/container_impl.cpp @@ -186,7 +186,7 @@ acceptor& container_impl::listen(const proton::url& url) { std::string container_impl::next_link_name() { std::ostringstream s; // TODO aconway 2015-09-01: atomic operation - s << prefix_ << std::hex << ++link_id_; + s << std::hex << ++link_id_ << "@" << id_; return s.str(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/container_impl.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/container_impl.hpp b/proton-c/bindings/cpp/src/container_impl.hpp index 76d30fb..ec356e2 100644 --- a/proton-c/bindings/cpp/src/container_impl.hpp +++ b/proton-c/bindings/cpp/src/container_impl.hpp @@ -68,7 +68,6 @@ class container_impl pn_unique_ptr flow_controller_; std::string id_; uint64_t link_id_; - std::string prefix_; friend class container; }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/data.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/data.cpp b/proton-c/bindings/cpp/src/data.cpp index ad82040..53b8c37 100644 --- a/proton-c/bindings/cpp/src/data.cpp +++ b/proton-c/bindings/cpp/src/data.cpp @@ -39,6 +39,8 @@ pn_unique_ptr data::create() { return pn_unique_ptr(cast(::pn_data(0 encoder& data::encoder() { return reinterpret_cast(*this); } decoder& data::decoder() { return reinterpret_cast(*this); } +type_id data::type() const { return reinterpret_cast(*this).type(); } + namespace { // Compare nodes, return -1 if ab http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/delivery.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/delivery.cpp b/proton-c/bindings/cpp/src/delivery.cpp index b292c70..d02904f 100644 --- a/proton-c/bindings/cpp/src/delivery.cpp +++ b/proton-c/bindings/cpp/src/delivery.cpp @@ -24,7 +24,7 @@ namespace proton { -bool delivery::settled() { return pn_delivery_settled(pn_cast(this)); } +bool delivery::settled() const { return pn_delivery_settled(pn_cast(this)); } void delivery::settle() { pn_delivery_settle(pn_cast(this)); } @@ -35,10 +35,11 @@ void delivery::settle(delivery::state state) { settle(); } -bool delivery::partial() { return pn_delivery_partial(pn_cast(this)); } -bool delivery::readable() { return pn_delivery_readable(pn_cast(this)); } -bool delivery::writable() { return pn_delivery_writable(pn_cast(this)); } -bool delivery::updated() { return pn_delivery_updated(pn_cast(this)); } +bool delivery::partial() const { return pn_delivery_partial(pn_cast(this)); } +bool delivery::readable() const { return pn_delivery_readable(pn_cast(this)); } +bool delivery::writable() const { return pn_delivery_writable(pn_cast(this)); } +bool delivery::updated() const { return pn_delivery_updated(pn_cast(this)); } + void delivery::clear() { pn_delivery_clear(pn_cast(this)); } -delivery::state delivery::remote_state() { return state(pn_delivery_remote_state(pn_cast(this))); } +delivery::state delivery::remote_state() const { return state(pn_delivery_remote_state(pn_cast(this))); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/event.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/event.cpp b/proton-c/bindings/cpp/src/event.cpp index 84927c4..d79df33 100644 --- a/proton-c/bindings/cpp/src/event.cpp +++ b/proton-c/bindings/cpp/src/event.cpp @@ -38,32 +38,32 @@ event::event() {} event::~event() {} -container &event::container() { +container &event::container() const { // Subclasses to override as appropriate throw error(MSG("No container context for event")); } -connection &event::connection() { +connection &event::connection() const { throw error(MSG("No connection context for event")); } -sender& event::sender() { +sender& event::sender() const { throw error(MSG("No sender context for event")); } -receiver& event::receiver() { +receiver& event::receiver() const { throw error(MSG("No receiver context for event")); } -link& event::link() { +link& event::link() const { throw error(MSG("No link context for event")); } -delivery& event::delivery() { +delivery& event::delivery() const { throw error(MSG("No link context for event")); } -class message &event::message() { +class message &event::message() const { throw error(MSG("No message associated with event")); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/link.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/link.cpp b/proton-c/bindings/cpp/src/link.cpp index 45c23aa..23345b5 100644 --- a/proton-c/bindings/cpp/src/link.cpp +++ b/proton-c/bindings/cpp/src/link.cpp @@ -47,27 +47,30 @@ receiver* link::receiver() { return pn_link_is_receiver(pn_cast(this)) ? reinterpret_cast(this) : 0; } -int link::credit() { - return pn_link_credit(pn_cast(this)); +const sender* link::sender() const { + return pn_link_is_sender(pn_cast(this)) ? reinterpret_cast(this) : 0; +} + +const receiver* link::receiver() const { + return pn_link_is_receiver(pn_cast(this)) ? reinterpret_cast(this) : 0; } -bool link::has_source() { return pn_link_source(pn_cast(this)); } -bool link::has_target() { return pn_link_target(pn_cast(this)); } -bool link::has_remote_source() { return pn_link_remote_source(pn_cast(this)); } -bool link::has_remote_target() { return pn_link_remote_target(pn_cast(this)); } +int link::credit() const { + return pn_link_credit(pn_cast(this)); +} -terminus& link::source() { return *terminus::cast(pn_link_source(pn_cast(this))); } -terminus& link::target() { return *terminus::cast(pn_link_target(pn_cast(this))); } -terminus& link::remote_source() { return *terminus::cast(pn_link_remote_source(pn_cast(this))); } -terminus& link::remote_target() { return *terminus::cast(pn_link_remote_target(pn_cast(this))); } +terminus& link::source() const { return *terminus::cast(pn_link_source(pn_cast(this))); } +terminus& link::target() const { return *terminus::cast(pn_link_target(pn_cast(this))); } +terminus& link::remote_source() const { return *terminus::cast(pn_link_remote_source(pn_cast(this))); } +terminus& link::remote_target() const { return *terminus::cast(pn_link_remote_target(pn_cast(this))); } -std::string link::name() { return std::string(pn_link_name(pn_cast(this)));} +std::string link::name() const { return std::string(pn_link_name(pn_cast(this)));} -class connection &link::connection() { +class connection &link::connection() const { return *connection::cast(pn_session_connection(pn_link_session(pn_cast(this)))); } -class session &link::session() { +class session &link::session() const { return *session::cast(pn_link_session(pn_cast(this))); } @@ -83,5 +86,5 @@ void link::detach_handler() { pn_record_set_handler(record, 0); } -endpoint::state link::state() { return pn_link_state(pn_cast(this)); } +endpoint::state link::state() const { return pn_link_state(pn_cast(this)); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/message.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/message.cpp b/proton-c/bindings/cpp/src/message.cpp index b056cd7..79c15b8 100644 --- a/proton-c/bindings/cpp/src/message.cpp +++ b/proton-c/bindings/cpp/src/message.cpp @@ -132,10 +132,10 @@ std::string message::content_encoding() const { return s ? std::string(s) : std::string(); } -void message::expiry(amqp_timestamp t) { +void message::expiry_time(amqp_timestamp t) { pn_message_set_expiry_time(message_, t.milliseconds); } -amqp_timestamp message::expiry() const { +amqp_timestamp message::expiry_time() const { return amqp_timestamp(pn_message_get_expiry_time(message_)); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/messaging_event.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/messaging_event.cpp b/proton-c/bindings/cpp/src/messaging_event.cpp index a9347d1..3e59b1c 100644 --- a/proton-c/bindings/cpp/src/messaging_event.cpp +++ b/proton-c/bindings/cpp/src/messaging_event.cpp @@ -55,7 +55,7 @@ messaging_event::~messaging_event() {} messaging_event::event_type messaging_event::type() const { return type_; } -connection &messaging_event::connection() { +connection &messaging_event::connection() const { if (type_ == messaging_event::PROTON) return proton_event::connection(); if (parent_event_) @@ -63,7 +63,7 @@ connection &messaging_event::connection() { throw error(MSG("No connection context for event")); } -sender& messaging_event::sender() { +sender& messaging_event::sender() const { if (type_ == messaging_event::PROTON) return proton_event::sender(); if (parent_event_) @@ -71,7 +71,7 @@ sender& messaging_event::sender() { throw error(MSG("No sender context for event")); } -receiver& messaging_event::receiver() { +receiver& messaging_event::receiver() const { if (type_ == messaging_event::PROTON) return proton_event::receiver(); if (parent_event_) @@ -79,7 +79,7 @@ receiver& messaging_event::receiver() { throw error(MSG("No receiver context for event")); } -link& messaging_event::link() { +link& messaging_event::link() const { if (type_ == messaging_event::PROTON) return proton_event::link(); if (parent_event_) @@ -87,7 +87,7 @@ link& messaging_event::link() { throw error(MSG("No link context for event")); } -delivery& messaging_event::delivery() { +delivery& messaging_event::delivery() const { if (type_ == messaging_event::PROTON) return proton_event::delivery(); if (parent_event_) @@ -95,7 +95,7 @@ delivery& messaging_event::delivery() { throw error(MSG("No delivery context for event")); } -message &messaging_event::message() { +message &messaging_event::message() const { if (type_ != messaging_event::MESSAGE || !parent_event_) throw error(MSG("event type does not provide message")); return *message_; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/messaging_event.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/messaging_event.hpp b/proton-c/bindings/cpp/src/messaging_event.hpp index 1f73477..84cf3f3 100644 --- a/proton-c/bindings/cpp/src/messaging_event.hpp +++ b/proton-c/bindings/cpp/src/messaging_event.hpp @@ -88,12 +88,12 @@ class messaging_event : public proton_event ~messaging_event(); virtual PN_CPP_EXTERN void dispatch(handler &h); - virtual PN_CPP_EXTERN class connection &connection(); - virtual PN_CPP_EXTERN class sender& sender(); - virtual PN_CPP_EXTERN class receiver& receiver(); - virtual PN_CPP_EXTERN class link& link(); - virtual PN_CPP_EXTERN class delivery& delivery(); - virtual PN_CPP_EXTERN class message& message(); + virtual PN_CPP_EXTERN class connection &connection() const; + virtual PN_CPP_EXTERN class sender& sender() const; + virtual PN_CPP_EXTERN class receiver& receiver() const; + virtual PN_CPP_EXTERN class link& link() const; + virtual PN_CPP_EXTERN class delivery& delivery() const; + virtual PN_CPP_EXTERN class message& message() const; PN_CPP_EXTERN event_type type() const; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/proton_event.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/proton_event.cpp b/proton-c/bindings/cpp/src/proton_event.cpp index 80e678e..649d908 100644 --- a/proton-c/bindings/cpp/src/proton_event.cpp +++ b/proton-c/bindings/cpp/src/proton_event.cpp @@ -46,34 +46,34 @@ int proton_event::type() const { return type_; } std::string proton_event::name() const { return pn_event_type_name(pn_event_type_t(type_)); } -pn_event_t *proton_event::pn_event() { return pn_event_; } +pn_event_t *proton_event::pn_event() const { return pn_event_; } -container &proton_event::container() { return container_; } +container &proton_event::container() const { return container_; } -connection &proton_event::connection() { +connection &proton_event::connection() const { pn_connection_t *conn = pn_event_connection(pn_event()); if (!conn) throw error(MSG("No connection context for this event")); return *connection::cast(conn); } -link& proton_event::link() { +link& proton_event::link() const { class link *lnk = link::cast(pn_event_link(pn_event())); if (!lnk) throw error(MSG("No link context for this event")); return *lnk; } -sender& proton_event::sender() { +sender& proton_event::sender() const { if (!link().sender()) throw error(MSG("No sender context for this event")); return *link().sender(); } -receiver& proton_event::receiver() { +receiver& proton_event::receiver() const { if (!link().receiver()) throw error(MSG("No receiver context for this event")); return *link().receiver(); } -delivery& proton_event::delivery() { +delivery& proton_event::delivery() const { class delivery *dlv = delivery::cast(pn_event_delivery(pn_event())); if (!dlv) throw error(MSG("No delivery context for this event")); return *dlv; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/proton_event.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/proton_event.hpp b/proton-c/bindings/cpp/src/proton_event.hpp index f71af55..66b8ed9 100644 --- a/proton-c/bindings/cpp/src/proton_event.hpp +++ b/proton-c/bindings/cpp/src/proton_event.hpp @@ -273,22 +273,22 @@ class proton_event : public event ///@} virtual PN_CPP_EXTERN void dispatch(handler &h); - virtual PN_CPP_EXTERN class container &container(); - virtual PN_CPP_EXTERN class connection &connection(); - virtual PN_CPP_EXTERN class sender& sender(); - virtual PN_CPP_EXTERN class receiver& receiver(); - virtual PN_CPP_EXTERN class link& link(); - virtual PN_CPP_EXTERN class delivery& delivery(); + virtual PN_CPP_EXTERN class container &container() const; + virtual PN_CPP_EXTERN class connection &connection() const; + virtual PN_CPP_EXTERN class sender& sender() const; + virtual PN_CPP_EXTERN class receiver& receiver() const; + virtual PN_CPP_EXTERN class link& link() const; + virtual PN_CPP_EXTERN class delivery& delivery() const; /** Get type of event */ PN_CPP_EXTERN event_type type() const; - PN_CPP_EXTERN pn_event_t* pn_event(); + PN_CPP_EXTERN pn_event_t* pn_event() const; protected: PN_CPP_EXTERN proton_event(pn_event_t *ce, proton_event::event_type t, class container &c); private: - pn_event_t *pn_event_; + mutable pn_event_t *pn_event_; event_type type_; class container &container_; }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/request_response.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/request_response.cpp b/proton-c/bindings/cpp/src/request_response.cpp index 9b8207c..38a701c 100644 --- a/proton-c/bindings/cpp/src/request_response.cpp +++ b/proton-c/bindings/cpp/src/request_response.cpp @@ -50,7 +50,7 @@ message request_response::call(message &request) { return response; } -std::string request_response::reply_to() { +std::string request_response::reply_to() const { return receiver_->receiver().remote_source().address(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/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 468e4b8..6d0d955 100644 --- a/proton-c/bindings/cpp/src/session.cpp +++ b/proton-c/bindings/cpp/src/session.cpp @@ -33,7 +33,7 @@ void session::open() { pn_session_open(pn_cast(this)); } -connection &session::connection() { +connection &session::connection() const { return *proton::connection::cast(pn_session_connection(pn_cast(this))); } @@ -74,9 +74,9 @@ receiver& session::open_receiver(const std::string &addr, bool dynamic, handler return rcv; } -endpoint::state session::state() { return pn_session_state(pn_cast(this)); } +endpoint::state session::state() const { return pn_session_state(pn_cast(this)); } -link_range session::find_links(endpoint::state mask) { +link_range session::find_links(endpoint::state mask) const { link_range r(connection().find_links(mask)); link_iterator i(r.begin(), this); if (i && this != &i->session()) http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/terminus.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/terminus.cpp b/proton-c/bindings/cpp/src/terminus.cpp index 6d17786..8948eb5 100644 --- a/proton-c/bindings/cpp/src/terminus.cpp +++ b/proton-c/bindings/cpp/src/terminus.cpp @@ -24,7 +24,7 @@ namespace proton { -terminus::type_t terminus::type() { +terminus::type_t terminus::type() const { return (type_t) pn_terminus_get_type(pn_cast(this)); } @@ -32,7 +32,7 @@ void terminus::type(type_t type) { pn_terminus_set_type(pn_cast(this), (pn_terminus_type_t) type); } -terminus::expiry_policy_t terminus::expiry_policy() { +terminus::expiry_policy_t terminus::expiry_policy() const { return (expiry_policy_t) pn_terminus_get_type(pn_cast(this)); } @@ -40,7 +40,7 @@ void terminus::expiry_policy(expiry_policy_t policy) { pn_terminus_set_expiry_policy(pn_cast(this), (pn_expiry_policy_t) policy); } -terminus::distribution_mode_t terminus::distribution_mode() { +terminus::distribution_mode_t terminus::distribution_mode() const { return (distribution_mode_t) pn_terminus_get_type(pn_cast(this)); } @@ -48,7 +48,7 @@ void terminus::distribution_mode(distribution_mode_t mode) { pn_terminus_set_distribution_mode(pn_cast(this), (pn_distribution_mode_t) mode); } -std::string terminus::address() { +std::string terminus::address() const { const char *addr = pn_terminus_get_address(pn_cast(this)); return addr ? std::string(addr) : std::string(); } @@ -57,7 +57,7 @@ void terminus::address(const std::string &addr) { pn_terminus_set_address(pn_cast(this), addr.c_str()); } -bool terminus::dynamic() { +bool terminus::dynamic() const { return (type_t) pn_terminus_is_dynamic(pn_cast(this)); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cf221b45/proton-c/bindings/cpp/src/transport.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/transport.cpp b/proton-c/bindings/cpp/src/transport.cpp index e128492..58114ae 100644 --- a/proton-c/bindings/cpp/src/transport.cpp +++ b/proton-c/bindings/cpp/src/transport.cpp @@ -24,7 +24,7 @@ namespace proton { -connection* transport::connection() { +connection* transport::connection() const { return connection::cast(pn_transport_connection(pn_cast(this))); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org