Author: astitcher
Date: Mon Mar 5 23:56:03 2012
New Revision: 1297292
URL: http://svn.apache.org/viewvc?rev=1297292&view=rev
Log:
QPID-3883: Using application headers in messages causes a very large slowdown
Don't return copy of header return const reference -
avoid unnecessary copying
Modified:
qpid/trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp
qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h
qpid/trunk/qpid/cpp/src/qpid/framing/MethodContent.h
qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp
qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.h
Modified: qpid/trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp?rev=1297292&r1=1297291&r2=1297292&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp Mon Mar 5 23:56:03 2012
@@ -324,7 +324,7 @@ struct MethodContentAdaptor : MethodCont
MethodContentAdaptor(const FrameSet& f) : header(*f.getHeaders()),
content(f.getContent()) {}
- AMQHeaderBody getHeader() const
+ const AMQHeaderBody& getHeader() const
{
return header;
}
Modified: qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h?rev=1297292&r1=1297291&r2=1297292&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h Mon Mar 5 23:56:03 2012
@@ -43,8 +43,7 @@ class QPID_COMMON_CLASS_EXTERN AMQFrame
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; }
Modified: qpid/trunk/qpid/cpp/src/qpid/framing/MethodContent.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/MethodContent.h?rev=1297292&r1=1297291&r2=1297292&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/MethodContent.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/MethodContent.h Mon Mar 5 23:56:03
2012
@@ -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;
};
Modified: qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp?rev=1297292&r1=1297291&r2=1297292&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp Mon Mar 5
23:56:03 2012
@@ -30,7 +30,7 @@ TransferContent::TransferContent(const s
}
-AMQHeaderBody TransferContent::getHeader() const
+const AMQHeaderBody& TransferContent::getHeader() const
{
return header;
}
Modified: qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.h?rev=1297292&r1=1297291&r2=1297292&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/TransferContent.h Mon Mar 5 23:56:03
2012
@@ -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;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]