diff options
Diffstat (limited to 'cpp/include/qpid/framing')
| -rw-r--r-- | cpp/include/qpid/framing/Array.h | 26 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/Buffer.h | 16 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/FieldTable.h | 6 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/FieldValue.h | 21 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/List.h | 25 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/ProtocolVersion.h | 12 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/SequenceNumber.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/SequenceSet.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/StructHelper.h | 2 | ||||
| -rw-r--r-- | cpp/include/qpid/framing/Uuid.h | 10 |
10 files changed, 69 insertions, 53 deletions
diff --git a/cpp/include/qpid/framing/Array.h b/cpp/include/qpid/framing/Array.h index d3bdd36aa6..1e97be3bb4 100644 --- a/cpp/include/qpid/framing/Array.h +++ b/cpp/include/qpid/framing/Array.h @@ -34,7 +34,7 @@ namespace framing { class Buffer; -class Array +class QPID_COMMON_CLASS_EXTERN Array { public: typedef boost::shared_ptr<FieldValue> ValuePtr; @@ -55,25 +55,25 @@ class Array //creates a longstr array QPID_COMMON_EXTERN Array(const std::vector<std::string>& in); - QPID_COMMON_EXTERN TypeCode getType() const { return type; } + QPID_COMMON_INLINE_EXTERN TypeCode getType() const { return type; } // std collection interface. - QPID_COMMON_EXTERN const_iterator begin() const { return values.begin(); } - QPID_COMMON_EXTERN const_iterator end() const { return values.end(); } - QPID_COMMON_EXTERN iterator begin() { return values.begin(); } - QPID_COMMON_EXTERN iterator end(){ return values.end(); } + QPID_COMMON_INLINE_EXTERN const_iterator begin() const { return values.begin(); } + QPID_COMMON_INLINE_EXTERN const_iterator end() const { return values.end(); } + QPID_COMMON_INLINE_EXTERN iterator begin() { return values.begin(); } + QPID_COMMON_INLINE_EXTERN iterator end(){ return values.end(); } - QPID_COMMON_EXTERN ValuePtr front() const { return values.front(); } - QPID_COMMON_EXTERN ValuePtr back() const { return values.back(); } - QPID_COMMON_EXTERN size_t size() const { return values.size(); } + QPID_COMMON_INLINE_EXTERN ValuePtr front() const { return values.front(); } + QPID_COMMON_INLINE_EXTERN ValuePtr back() const { return values.back(); } + QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } QPID_COMMON_EXTERN void insert(iterator i, ValuePtr value); - QPID_COMMON_EXTERN void erase(iterator i) { values.erase(i); } - QPID_COMMON_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } - QPID_COMMON_EXTERN void pop_back() { values.pop_back(); } + QPID_COMMON_INLINE_EXTERN void erase(iterator i) { values.erase(i); } + QPID_COMMON_INLINE_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } + QPID_COMMON_INLINE_EXTERN void pop_back() { values.pop_back(); } // Non-std interface - QPID_COMMON_EXTERN void add(ValuePtr value) { push_back(value); } + QPID_COMMON_INLINE_EXTERN void add(ValuePtr value) { push_back(value); } template <class T> void collect(std::vector<T>& out) const diff --git a/cpp/include/qpid/framing/Buffer.h b/cpp/include/qpid/framing/Buffer.h index 04583433c5..8b08e60762 100644 --- a/cpp/include/qpid/framing/Buffer.h +++ b/cpp/include/qpid/framing/Buffer.h @@ -29,14 +29,14 @@ namespace qpid { namespace framing { -struct OutOfBounds : qpid::Exception { +struct QPID_COMMON_CLASS_EXTERN OutOfBounds : qpid::Exception { OutOfBounds() : qpid::Exception(std::string("Out of Bounds")) {} }; class Content; class FieldTable; -class Buffer +class QPID_COMMON_CLASS_EXTERN Buffer { uint32_t size; char* data; @@ -72,12 +72,12 @@ class Buffer QPID_COMMON_EXTERN void restore(bool reRecord = false); QPID_COMMON_EXTERN void reset(); - QPID_COMMON_EXTERN uint32_t available() { return size - position; } - QPID_COMMON_EXTERN uint32_t getSize() { return size; } - QPID_COMMON_EXTERN uint32_t getPosition() { return position; } - QPID_COMMON_EXTERN void setPosition(uint32_t p) { position = p; } - QPID_COMMON_EXTERN Iterator getIterator() { return Iterator(*this); } - QPID_COMMON_EXTERN char* getPointer() { return data; } + 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); QPID_COMMON_EXTERN void putShort(uint16_t i); diff --git a/cpp/include/qpid/framing/FieldTable.h b/cpp/include/qpid/framing/FieldTable.h index fdb1a28b9d..bdcef6d7fd 100644 --- a/cpp/include/qpid/framing/FieldTable.h +++ b/cpp/include/qpid/framing/FieldTable.h @@ -56,7 +56,7 @@ class FieldTable typedef ValueMap::reference reference; typedef ValueMap::value_type value_type; - QPID_COMMON_EXTERN FieldTable() {}; + QPID_COMMON_INLINE_EXTERN FieldTable() {}; QPID_COMMON_EXTERN FieldTable(const FieldTable& ft); QPID_COMMON_EXTERN ~FieldTable(); QPID_COMMON_EXTERN FieldTable& operator=(const FieldTable& ft); @@ -65,9 +65,11 @@ class FieldTable QPID_COMMON_EXTERN void decode(Buffer& buffer); QPID_COMMON_EXTERN int count() const; + QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } + QPID_COMMON_INLINE_EXTERN bool empty() { return size() == 0; } QPID_COMMON_EXTERN void set(const std::string& name, const ValuePtr& value); QPID_COMMON_EXTERN ValuePtr get(const std::string& name) const; - QPID_COMMON_EXTERN bool isSet(const std::string& name) const { return get(name).get() != 0; } + QPID_COMMON_INLINE_EXTERN bool isSet(const std::string& name) const { return get(name).get() != 0; } QPID_COMMON_EXTERN void setString(const std::string& name, const std::string& value); QPID_COMMON_EXTERN void setInt(const std::string& name, const int value); diff --git a/cpp/include/qpid/framing/FieldValue.h b/cpp/include/qpid/framing/FieldValue.h index 19220e74d5..458de62fdf 100644 --- a/cpp/include/qpid/framing/FieldValue.h +++ b/cpp/include/qpid/framing/FieldValue.h @@ -41,14 +41,14 @@ namespace framing { * * \ingroup clientapi */ -class FieldValueException : public qpid::Exception {}; +class QPID_COMMON_CLASS_EXTERN FieldValueException : public qpid::Exception {}; /** * Exception thrown when we can't perform requested conversion * * \ingroup clientapi */ -struct InvalidConversionException : public FieldValueException { +struct QPID_COMMON_CLASS_EXTERN InvalidConversionException : public FieldValueException { InvalidConversionException() {} }; @@ -59,7 +59,7 @@ class List; * * \ingroup clientapi */ -class FieldValue { +class QPID_COMMON_CLASS_EXTERN FieldValue { public: /* * Abstract type for content of different types @@ -90,7 +90,7 @@ class FieldValue { void encode(Buffer& buffer); void decode(Buffer& buffer); QPID_COMMON_EXTERN bool operator==(const FieldValue&) const; - QPID_COMMON_EXTERN bool operator!=(const FieldValue& v) const { return !(*this == v); } + QPID_COMMON_INLINE_EXTERN bool operator!=(const FieldValue& v) const { return !(*this == v); } QPID_COMMON_EXTERN void print(std::ostream& out) const; @@ -98,6 +98,7 @@ class FieldValue { template <typename T> T get() const { throw InvalidConversionException(); } template <class T, int W> T getIntegerValue() const; + template <class T> T getIntegerValue() const; template <class T, int W> T getFloatingPointValue() const; template <int W> void getFixedWidthValue(unsigned char*) const; template <class T> bool get(T&) const; @@ -196,6 +197,18 @@ inline T FieldValue::getIntegerValue() const } } +template <class T> +inline T FieldValue::getIntegerValue() const +{ + FixedWidthValue<1>* const fwv = dynamic_cast< FixedWidthValue<1>* const>(data.get()); + if (fwv) { + uint8_t* octets = fwv->rawOctets(); + return octets[0]; + } else { + throw InvalidConversionException(); + } +} + template <class T, int W> inline T FieldValue::getFloatingPointValue() const { FixedWidthValue<W>* const fwv = dynamic_cast< FixedWidthValue<W>* const>(data.get()); diff --git a/cpp/include/qpid/framing/List.h b/cpp/include/qpid/framing/List.h index 0f17c7884c..681445947c 100644 --- a/cpp/include/qpid/framing/List.h +++ b/cpp/include/qpid/framing/List.h @@ -36,10 +36,11 @@ class FieldValue; /** * Representation of an AMQP 0-10 list */ -class List +class QPID_COMMON_CLASS_EXTERN List { public: typedef boost::shared_ptr<FieldValue> ValuePtr; + typedef ValuePtr value_type; typedef std::list<ValuePtr> Values; typedef Values::const_iterator const_iterator; typedef Values::iterator iterator; @@ -53,19 +54,19 @@ class List QPID_COMMON_EXTERN bool operator==(const List& other) const; // std collection interface. - QPID_COMMON_EXTERN const_iterator begin() const { return values.begin(); } - QPID_COMMON_EXTERN const_iterator end() const { return values.end(); } - QPID_COMMON_EXTERN iterator begin() { return values.begin(); } - QPID_COMMON_EXTERN iterator end(){ return values.end(); } + QPID_COMMON_INLINE_EXTERN const_iterator begin() const { return values.begin(); } + QPID_COMMON_INLINE_EXTERN const_iterator end() const { return values.end(); } + QPID_COMMON_INLINE_EXTERN iterator begin() { return values.begin(); } + QPID_COMMON_INLINE_EXTERN iterator end(){ return values.end(); } - QPID_COMMON_EXTERN ValuePtr front() const { return values.front(); } - QPID_COMMON_EXTERN ValuePtr back() const { return values.back(); } - QPID_COMMON_EXTERN size_t size() const { return values.size(); } + QPID_COMMON_INLINE_EXTERN ValuePtr front() const { return values.front(); } + QPID_COMMON_INLINE_EXTERN ValuePtr back() const { return values.back(); } + QPID_COMMON_INLINE_EXTERN size_t size() const { return values.size(); } - QPID_COMMON_EXTERN iterator insert(iterator i, ValuePtr value) { return values.insert(i, value); } - QPID_COMMON_EXTERN void erase(iterator i) { values.erase(i); } - QPID_COMMON_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } - QPID_COMMON_EXTERN void pop_back() { values.pop_back(); } + QPID_COMMON_INLINE_EXTERN iterator insert(iterator i, ValuePtr value) { return values.insert(i, value); } + QPID_COMMON_INLINE_EXTERN void erase(iterator i) { values.erase(i); } + QPID_COMMON_INLINE_EXTERN void push_back(ValuePtr value) { values.insert(end(), value); } + QPID_COMMON_INLINE_EXTERN void pop_back() { values.pop_back(); } private: Values values; diff --git a/cpp/include/qpid/framing/ProtocolVersion.h b/cpp/include/qpid/framing/ProtocolVersion.h index e7e75d75f6..30094c165d 100644 --- a/cpp/include/qpid/framing/ProtocolVersion.h +++ b/cpp/include/qpid/framing/ProtocolVersion.h @@ -29,7 +29,7 @@ namespace qpid namespace framing { -class ProtocolVersion +class QPID_COMMON_CLASS_EXTERN ProtocolVersion { private: uint8_t major_; @@ -39,16 +39,16 @@ public: explicit ProtocolVersion(uint8_t _major=0, uint8_t _minor=0) : major_(_major), minor_(_minor) {} - QPID_COMMON_EXTERN uint8_t getMajor() const { return major_; } - QPID_COMMON_EXTERN void setMajor(uint8_t major) { major_ = major; } - QPID_COMMON_EXTERN uint8_t getMinor() const { return minor_; } - QPID_COMMON_EXTERN void setMinor(uint8_t minor) { minor_ = minor; } + QPID_COMMON_INLINE_EXTERN uint8_t getMajor() const { return major_; } + QPID_COMMON_INLINE_EXTERN void setMajor(uint8_t major) { major_ = major; } + QPID_COMMON_INLINE_EXTERN uint8_t getMinor() const { return minor_; } + QPID_COMMON_INLINE_EXTERN void setMinor(uint8_t minor) { minor_ = minor; } QPID_COMMON_EXTERN const std::string toString() const; QPID_COMMON_EXTERN ProtocolVersion& operator=(ProtocolVersion p); QPID_COMMON_EXTERN bool operator==(ProtocolVersion p) const; - QPID_COMMON_EXTERN bool operator!=(ProtocolVersion p) const { return ! (*this == p); } + QPID_COMMON_INLINE_EXTERN bool operator!=(ProtocolVersion p) const { return ! (*this == p); } }; } // namespace framing diff --git a/cpp/include/qpid/framing/SequenceNumber.h b/cpp/include/qpid/framing/SequenceNumber.h index 1e53058df8..eed15a4b75 100644 --- a/cpp/include/qpid/framing/SequenceNumber.h +++ b/cpp/include/qpid/framing/SequenceNumber.h @@ -34,7 +34,7 @@ class Buffer; /** * 4-byte sequence number that 'wraps around'. */ -class SequenceNumber : public +class QPID_COMMON_CLASS_EXTERN SequenceNumber : public boost::equality_comparable< SequenceNumber, boost::less_than_comparable< SequenceNumber, boost::incrementable< diff --git a/cpp/include/qpid/framing/SequenceSet.h b/cpp/include/qpid/framing/SequenceSet.h index 39395e9ad7..0a78e418ba 100644 --- a/cpp/include/qpid/framing/SequenceSet.h +++ b/cpp/include/qpid/framing/SequenceSet.h @@ -29,7 +29,7 @@ namespace qpid { namespace framing { class Buffer; -class SequenceSet : public RangeSet<SequenceNumber> { +class QPID_COMMON_CLASS_EXTERN SequenceSet : public RangeSet<SequenceNumber> { public: SequenceSet() {} SequenceSet(const RangeSet<SequenceNumber>& r) diff --git a/cpp/include/qpid/framing/StructHelper.h b/cpp/include/qpid/framing/StructHelper.h index fc9a7909cc..21f9b91fa9 100644 --- a/cpp/include/qpid/framing/StructHelper.h +++ b/cpp/include/qpid/framing/StructHelper.h @@ -30,7 +30,7 @@ namespace qpid { namespace framing { -class StructHelper +class QPID_COMMON_CLASS_EXTERN StructHelper { public: diff --git a/cpp/include/qpid/framing/Uuid.h b/cpp/include/qpid/framing/Uuid.h index d0a8d02411..ccfd7e9534 100644 --- a/cpp/include/qpid/framing/Uuid.h +++ b/cpp/include/qpid/framing/Uuid.h @@ -52,22 +52,22 @@ struct Uuid : public boost::array<uint8_t, 16> { // boost::array gives us ==, < etc. /** Copy from 16 bytes of data. */ - void assign(const uint8_t* data); + QPID_COMMON_EXTERN void assign(const uint8_t* data); /** Set to a new unique identifier. */ QPID_COMMON_EXTERN void generate(); /** Set to all zeros. */ - void clear(); + QPID_COMMON_EXTERN void clear(); /** Test for null (all zeros). */ QPID_COMMON_EXTERN bool isNull() const; - operator bool() const { return !isNull(); } - bool operator!() const { return isNull(); } + QPID_COMMON_INLINE_EXTERN operator bool() const { return !isNull(); } + QPID_COMMON_INLINE_EXTERN bool operator!() const { return isNull(); } QPID_COMMON_EXTERN void encode(framing::Buffer& buf) const; QPID_COMMON_EXTERN void decode(framing::Buffer& buf); - QPID_COMMON_EXTERN uint32_t encodedSize() const + QPID_COMMON_INLINE_EXTERN uint32_t encodedSize() const { return static_cast<uint32_t>(size()); } /** String value in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ |
