diff options
Diffstat (limited to 'qpid/cpp/src/framing/FramingContent.h')
| -rw-r--r-- | qpid/cpp/src/framing/FramingContent.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/qpid/cpp/src/framing/FramingContent.h b/qpid/cpp/src/framing/FramingContent.h new file mode 100644 index 0000000000..876e90c905 --- /dev/null +++ b/qpid/cpp/src/framing/FramingContent.h @@ -0,0 +1,41 @@ +#ifndef _framing_FramingContent_h +#define _framing_FramingContent_h + +#include <ostream> + +namespace qpid { +namespace framing { + +enum discriminator_types { INLINE = 0, REFERENCE = 1 }; + +/** + * A representation of the AMQP 'content' data type (used for message + * bodies) which can hold inline data or a reference. + */ +class Content +{ + uint8_t discriminator; + string value; + + void validate(); + + public: + Content(); + Content(uint8_t _discriminator, const string& _value); + ~Content(); + + void encode(Buffer& buffer) const; + void decode(Buffer& buffer); + size_t size() const; + bool isInline() const { return discriminator == INLINE; } + bool isReference() const { return discriminator == REFERENCE; } + const string& getValue() const { return value; } + void setValue(const string& newValue) { value = newValue; } + + friend std::ostream& operator<<(std::ostream&, const Content&); +}; + +}} // namespace qpid::framing + + +#endif /*!_framing_FramingContent_h*/ |
