diff options
| author | Kim van der Riet <kpvdr@apache.org> | 2012-08-03 12:13:32 +0000 |
|---|---|---|
| committer | Kim van der Riet <kpvdr@apache.org> | 2012-08-03 12:13:32 +0000 |
| commit | d43d1912b376322e27fdcda551a73f9ff5487972 (patch) | |
| tree | ce493e10baa95f44be8beb5778ce51783463196d /cpp/include/qpid/framing | |
| parent | 04877fec0c6346edec67072d7f2d247740cf2af5 (diff) | |
| download | qpid-python-d43d1912b376322e27fdcda551a73f9ff5487972.tar.gz | |
QPID-3858: Updated branch - merged from trunk r.1368650
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1368910 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/include/qpid/framing')
| -rw-r--r-- | cpp/include/qpid/framing/Array.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/Buffer.h | 50 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/ProtocolVersion.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/SequenceNumber.h | 12 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/StructHelper.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/Uuid.h | 3 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/amqp_types.h | 2 |
7 files changed, 30 insertions, 43 deletions
diff --git a/cpp/include/qpid/framing/Array.h b/cpp/include/qpid/framing/Array.h index 4f82d4dbf0..6254f6271a 100644 --- a/cpp/include/qpid/framing/Array.h +++ b/cpp/include/qpid/framing/Array.h @@ -82,7 +82,7 @@ class QPID_COMMON_CLASS_EXTERN Array // For use in standard algorithms template <typename R, typename V> static R get(const V& v) { - return v->get<R>(); + return v->template get<R>(); } private: diff --git a/cpp/include/qpid/framing/Buffer.h b/cpp/include/qpid/framing/Buffer.h index 8b08e60762..2ccad3bd57 100644 --- a/cpp/include/qpid/framing/Buffer.h +++ b/cpp/include/qpid/framing/Buffer.h @@ -1,3 +1,6 @@ +#ifndef QPID_FRAMING_BUFFER_H +#define QPID_FRAMING_BUFFER_H + /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -18,13 +21,12 @@ * under the License. * */ -#include "qpid/framing/amqp_types.h" + #include "qpid/Exception.h" #include "qpid/CommonImportExport.h" -#include <boost/iterator/iterator_facade.hpp> +#include "qpid/sys/IntegerTypes.h" -#ifndef _Buffer_ -#define _Buffer_ +#include <string> namespace qpid { namespace framing { @@ -41,42 +43,18 @@ class QPID_COMMON_CLASS_EXTERN Buffer uint32_t size; char* data; uint32_t position; - uint32_t r_position; public: void checkAvailable(uint32_t count) { if (position + count > size) throw OutOfBounds(); } - /** Buffer input/output iterator. - * Supports using an amqp_0_10::Codec with a framing::Buffer. - */ - class Iterator : public boost::iterator_facade< - Iterator, char, boost::random_access_traversal_tag> - { - public: - Iterator(Buffer& b) : buffer(&b) {} - - private: - friend class boost::iterator_core_access; - char& dereference() const { return buffer->data[buffer->position]; } - void increment() { ++buffer->position; } - bool equal(const Iterator& x) const { return buffer == x.buffer; } - - Buffer* buffer; - }; - - friend class Iterator; - QPID_COMMON_EXTERN Buffer(char* data=0, uint32_t size=0); - QPID_COMMON_EXTERN void record(); - QPID_COMMON_EXTERN void restore(bool reRecord = false); QPID_COMMON_EXTERN void reset(); QPID_COMMON_INLINE_EXTERN uint32_t available() { return size - position; } QPID_COMMON_INLINE_EXTERN uint32_t getSize() { return size; } QPID_COMMON_INLINE_EXTERN uint32_t getPosition() { return position; } QPID_COMMON_INLINE_EXTERN void setPosition(uint32_t p) { position = p; } - QPID_COMMON_INLINE_EXTERN Iterator getIterator() { return Iterator(*this); } QPID_COMMON_INLINE_EXTERN char* getPointer() { return data; } QPID_COMMON_EXTERN void putOctet(uint8_t i); @@ -108,16 +86,16 @@ class QPID_COMMON_CLASS_EXTERN Buffer template <int n> QPID_COMMON_EXTERN void putUInt(uint64_t); - QPID_COMMON_EXTERN void putShortString(const string& s); - QPID_COMMON_EXTERN void putMediumString(const string& s); - QPID_COMMON_EXTERN void putLongString(const string& s); - QPID_COMMON_EXTERN void getShortString(string& s); - QPID_COMMON_EXTERN void getMediumString(string& s); - QPID_COMMON_EXTERN void getLongString(string& s); + QPID_COMMON_EXTERN void putShortString(const std::string& s); + QPID_COMMON_EXTERN void putMediumString(const std::string& s); + QPID_COMMON_EXTERN void putLongString(const std::string& s); + QPID_COMMON_EXTERN void getShortString(std::string& s); + QPID_COMMON_EXTERN void getMediumString(std::string& s); + QPID_COMMON_EXTERN void getLongString(std::string& s); QPID_COMMON_EXTERN void getBin128(uint8_t* b); - QPID_COMMON_EXTERN void putRawData(const string& s); - QPID_COMMON_EXTERN void getRawData(string& s, uint32_t size); + QPID_COMMON_EXTERN void putRawData(const std::string& s); + QPID_COMMON_EXTERN void getRawData(std::string& s, uint32_t size); QPID_COMMON_EXTERN void putRawData(const uint8_t* data, size_t size); QPID_COMMON_EXTERN void getRawData(uint8_t* data, size_t size); diff --git a/cpp/include/qpid/framing/ProtocolVersion.h b/cpp/include/qpid/framing/ProtocolVersion.h index 30094c165d..26d628e41c 100644 --- a/cpp/include/qpid/framing/ProtocolVersion.h +++ b/cpp/include/qpid/framing/ProtocolVersion.h @@ -24,6 +24,8 @@ #include "qpid/framing/amqp_types.h" #include "qpid/CommonImportExport.h" +#include <string> + namespace qpid { namespace framing diff --git a/cpp/include/qpid/framing/SequenceNumber.h b/cpp/include/qpid/framing/SequenceNumber.h index dd85d97a52..00fa2469c8 100644 --- a/cpp/include/qpid/framing/SequenceNumber.h +++ b/cpp/include/qpid/framing/SequenceNumber.h @@ -57,12 +57,18 @@ boost::equality_comparable< QPID_COMMON_EXTERN uint32_t encodedSize() const; template <class S> void serialize(S& s) { s(value); } - - friend inline int32_t operator-(const SequenceNumber& a, const SequenceNumber& b); }; inline int32_t operator-(const SequenceNumber& a, const SequenceNumber& b) { - return int32_t(a.value - b.value); + return int32_t(a.getValue() - b.getValue()); +} + +inline SequenceNumber operator+(const SequenceNumber& a, int32_t n) { + return SequenceNumber(a.getValue() + n); +} + +inline SequenceNumber operator-(const SequenceNumber& a, int32_t n) { + return SequenceNumber(a.getValue() - n); } struct Window diff --git a/cpp/include/qpid/framing/StructHelper.h b/cpp/include/qpid/framing/StructHelper.h index 21f9b91fa9..fe2fa64ce7 100644 --- a/cpp/include/qpid/framing/StructHelper.h +++ b/cpp/include/qpid/framing/StructHelper.h @@ -34,7 +34,7 @@ class QPID_COMMON_CLASS_EXTERN StructHelper { public: - template <class T> void encode(const T t, std::string& data) { + template <class T> void encode(const T& t, std::string& data) { uint32_t size = t.bodySize() + 2/*type*/; data.resize(size); Buffer wbuffer(const_cast<char*>(data.data()), size); diff --git a/cpp/include/qpid/framing/Uuid.h b/cpp/include/qpid/framing/Uuid.h index ccfd7e9534..e9e56ed7c9 100644 --- a/cpp/include/qpid/framing/Uuid.h +++ b/cpp/include/qpid/framing/Uuid.h @@ -48,6 +48,9 @@ struct Uuid : public boost::array<uint8_t, 16> { /** Copy from 16 bytes of data. */ QPID_COMMON_EXTERN Uuid(const uint8_t* data); + /** Parse format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ + QPID_COMMON_EXTERN Uuid(const std::string&); + // Default op= and copy ctor are fine. // boost::array gives us ==, < etc. diff --git a/cpp/include/qpid/framing/amqp_types.h b/cpp/include/qpid/framing/amqp_types.h index d9088b7a12..2072a83904 100644 --- a/cpp/include/qpid/framing/amqp_types.h +++ b/cpp/include/qpid/framing/amqp_types.h @@ -27,12 +27,10 @@ */ #include "qpid/sys/IntegerTypes.h" -#include <string> namespace qpid { namespace framing { -using std::string; typedef uint8_t FrameType; typedef uint16_t ChannelId; typedef uint32_t BatchOffset; |
