diff options
author | Andrew Stitcher <astitcher@apache.org> | 2012-03-05 23:56:03 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2012-03-05 23:56:03 +0000 |
commit | 9170085be2e95cb5a373dfb60a871f99a1118dce (patch) | |
tree | cadadf3466e42fd223ca42b420becb5ea8c561fd | |
parent | 9c8792e7e20fb73196326a31ca299d220e9a8078 (diff) | |
download | qpid-python-9170085be2e95cb5a373dfb60a871f99a1118dce.tar.gz |
QPID-3883: Using application headers in messages causes a very large slowdown
Don't return copy of header return const reference -
avoid unnecessary copying
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1297292 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/client/SessionImpl.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/framing/AMQFrame.h | 3 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/framing/MethodContent.h | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/framing/TransferContent.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/framing/TransferContent.h | 2 |
5 files changed, 5 insertions, 6 deletions
diff --git a/qpid/cpp/src/qpid/client/SessionImpl.cpp b/qpid/cpp/src/qpid/client/SessionImpl.cpp index 9ac5323a53..3f3ad617f4 100644 --- a/qpid/cpp/src/qpid/client/SessionImpl.cpp +++ b/qpid/cpp/src/qpid/client/SessionImpl.cpp @@ -324,7 +324,7 @@ struct MethodContentAdaptor : MethodContent MethodContentAdaptor(const FrameSet& f) : header(*f.getHeaders()), content(f.getContent()) {} - AMQHeaderBody getHeader() const + const AMQHeaderBody& getHeader() const { return header; } diff --git a/qpid/cpp/src/qpid/framing/AMQFrame.h b/qpid/cpp/src/qpid/framing/AMQFrame.h index 4f6faf4199..19675ce6ff 100644 --- a/qpid/cpp/src/qpid/framing/AMQFrame.h +++ b/qpid/cpp/src/qpid/framing/AMQFrame.h @@ -43,8 +43,7 @@ class QPID_COMMON_CLASS_EXTERN AMQFrame : public AMQDataBlock ChannelId getChannel() const { return channel; } void setChannel(ChannelId c) { channel = c; } - AMQBody* getBody() { return body.get(); } - const AMQBody* getBody() const { return body.get(); } + AMQBody* getBody() const { return body.get(); } AMQMethodBody* getMethod() { return getBody() ? getBody()->getMethod() : 0; } const AMQMethodBody* getMethod() const { return getBody() ? getBody()->getMethod() : 0; } diff --git a/qpid/cpp/src/qpid/framing/MethodContent.h b/qpid/cpp/src/qpid/framing/MethodContent.h index b290a0c140..58c9143cfa 100644 --- a/qpid/cpp/src/qpid/framing/MethodContent.h +++ b/qpid/cpp/src/qpid/framing/MethodContent.h @@ -32,7 +32,7 @@ class MethodContent public: virtual ~MethodContent() {} //TODO: rethink this interface - virtual AMQHeaderBody getHeader() const = 0; + virtual const AMQHeaderBody& getHeader() const = 0; virtual const std::string& getData() const = 0; }; diff --git a/qpid/cpp/src/qpid/framing/TransferContent.cpp b/qpid/cpp/src/qpid/framing/TransferContent.cpp index 837d7d346a..d997b24304 100644 --- a/qpid/cpp/src/qpid/framing/TransferContent.cpp +++ b/qpid/cpp/src/qpid/framing/TransferContent.cpp @@ -30,7 +30,7 @@ TransferContent::TransferContent(const std::string& data, const std::string& key } -AMQHeaderBody TransferContent::getHeader() const +const AMQHeaderBody& TransferContent::getHeader() const { return header; } diff --git a/qpid/cpp/src/qpid/framing/TransferContent.h b/qpid/cpp/src/qpid/framing/TransferContent.h index 9a698a1823..32663d7020 100644 --- a/qpid/cpp/src/qpid/framing/TransferContent.h +++ b/qpid/cpp/src/qpid/framing/TransferContent.h @@ -40,7 +40,7 @@ public: QPID_COMMON_EXTERN TransferContent(const std::string& data = std::string(), const std::string& key=std::string()); ///@internal - QPID_COMMON_EXTERN AMQHeaderBody getHeader() const; + QPID_COMMON_EXTERN const AMQHeaderBody& getHeader() const; QPID_COMMON_EXTERN void setData(const std::string&); QPID_COMMON_EXTERN const std::string& getData() const; |