diff options
| author | Alan Conway <aconway@apache.org> | 2007-11-16 20:16:23 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-11-16 20:16:23 +0000 |
| commit | 493b528a6ba5961613d4ecea7b81f5b3638dc3d9 (patch) | |
| tree | 1a64a1498a5d50e0ed5c7bc4dec625ec8aa1e78d /cpp/src/qpid/framing/SequenceNumberSet.h | |
| parent | c31a7344ed65dc8201067b95f1a78d1c393e217b (diff) | |
| download | qpid-python-493b528a6ba5961613d4ecea7b81f5b3638dc3d9.tar.gz | |
Added qpid::InlineVector - std::vector with inline storage to avoid
heap allocation for small vectors.
Made SequenceNumberSet : public InlineVector<SequenceNumber, 2>
In 100k perftest reduces heap allocation in client by 40%, broker 9%.
.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@595808 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing/SequenceNumberSet.h')
| -rw-r--r-- | cpp/src/qpid/framing/SequenceNumberSet.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cpp/src/qpid/framing/SequenceNumberSet.h b/cpp/src/qpid/framing/SequenceNumberSet.h index 9091e7142e..666307f9d9 100644 --- a/cpp/src/qpid/framing/SequenceNumberSet.h +++ b/cpp/src/qpid/framing/SequenceNumberSet.h @@ -22,20 +22,21 @@ #define _framing_SequenceNumberSet_h #include <ostream> -#include <vector> #include "amqp_types.h" #include "Buffer.h" #include "SequenceNumber.h" #include "qpid/framing/reply_exceptions.h" +#include "qpid/InlineVector.h" namespace qpid { namespace framing { -class SequenceNumberSet : public std::vector<SequenceNumber> -{ +class SequenceNumberSet : public InlineVector<SequenceNumber, 2> +{ + typedef InlineVector<SequenceNumber, 2> Base; public: - typedef std::vector<SequenceNumber>::const_iterator const_iterator; - typedef std::vector<SequenceNumber>::iterator iterator; + typedef Base::const_iterator const_iterator; + typedef Base::iterator iterator; void encode(Buffer& buffer) const; void decode(Buffer& buffer); |
