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]

Reply via email to