Author: shuston Date: Mon Aug 31 22:43:29 2009 New Revision: 809772 URL: http://svn.apache.org/viewvc?rev=809772&view=rev Log: Changes to make messaging API build on Windows: Prepend VAR_ to Variant types enum to avoid name clashes, add 'reference' type for FieldTable ValueMap to satisfy STL, refer to structs as such, not as class (avoids compile warning)
Modified: qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h qpid/trunk/qpid/cpp/include/qpid/framing/List.h qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h qpid/trunk/qpid/cpp/include/qpid/messaging/Message.h qpid/trunk/qpid/cpp/include/qpid/messaging/Session.h qpid/trunk/qpid/cpp/include/qpid/messaging/Variant.h qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h qpid/trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp qpid/trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h qpid/trunk/qpid/cpp/src/qpid/messaging/Variant.cpp qpid/trunk/qpid/cpp/src/tests/Variant.cpp Modified: qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/framing/FieldTable.h Mon Aug 31 22:43:29 2009 @@ -52,6 +52,7 @@ typedef std::map<std::string, ValuePtr> ValueMap; typedef ValueMap::iterator iterator; typedef ValueMap::const_reference const_reference; + typedef ValueMap::reference reference; typedef ValueMap::value_type value_type; QPID_COMMON_EXTERN FieldTable() {}; @@ -108,7 +109,7 @@ ValueMap::iterator find(const std::string& s) { return values.find(s); } std::pair <ValueMap::iterator, bool> insert(const ValueMap::value_type&); - ValueMap::iterator insert(ValueMap::iterator, const ValueMap::value_type&); + QPID_COMMON_EXTERN ValueMap::iterator insert(ValueMap::iterator, const ValueMap::value_type&); void clear() { values.clear(); } // ### Hack Alert Modified: qpid/trunk/qpid/cpp/include/qpid/framing/List.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/framing/List.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/framing/List.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/framing/List.h Mon Aug 31 22:43:29 2009 @@ -44,6 +44,7 @@ typedef Values::const_iterator const_iterator; typedef Values::iterator iterator; typedef Values::const_reference const_reference; + typedef Values::reference reference; QPID_COMMON_EXTERN uint32_t encodedSize() const; QPID_COMMON_EXTERN void encode(Buffer& buffer) const; Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h Mon Aug 31 22:43:29 2009 @@ -41,7 +41,7 @@ class Connection : public qpid::client::Handle<ConnectionImpl> { public: - static Connection open(const std::string& url, const Variant::Map& options = Variant::Map()); + static QPID_CLIENT_EXTERN Connection open(const std::string& url, const Variant::Map& options = Variant::Map()); QPID_CLIENT_EXTERN Connection(ConnectionImpl* impl = 0); QPID_CLIENT_EXTERN Connection(const Connection&); Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Message.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Message.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/messaging/Message.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/messaging/Message.h Mon Aug 31 22:43:29 2009 @@ -33,9 +33,9 @@ namespace messaging { -class Address; +struct Address; class Codec; -class MessageImpl; +struct MessageImpl; /** * Representation of a message. @@ -81,7 +81,7 @@ private: MessageImpl* impl; - friend class MessageImplAccess; + friend struct MessageImplAccess; }; }} // namespace qpid::messaging Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Session.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Session.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/messaging/Session.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/messaging/Session.h Mon Aug 31 22:43:29 2009 @@ -35,8 +35,8 @@ namespace messaging { -class Address; -class Filter; +struct Address; +struct Filter; class Message; class MessageListener; class Sender; Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Variant.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Variant.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/include/qpid/messaging/Variant.h (original) +++ qpid/trunk/qpid/cpp/include/qpid/messaging/Variant.h Mon Aug 31 22:43:29 2009 @@ -44,21 +44,21 @@ }; enum VariantType { - VOID = 0, - BOOL, - UINT8, - UINT16, - UINT32, - UINT64, - INT8, - INT16, - INT32, - INT64, - FLOAT, - DOUBLE, - STRING, - MAP, - LIST + VAR_VOID = 0, + VAR_BOOL, + VAR_UINT8, + VAR_UINT16, + VAR_UINT32, + VAR_UINT64, + VAR_INT8, + VAR_INT16, + VAR_INT32, + VAR_INT64, + VAR_FLOAT, + VAR_DOUBLE, + VAR_STRING, + VAR_MAP, + VAR_LIST }; class VariantImpl; Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h Mon Aug 31 22:43:29 2009 @@ -31,8 +31,8 @@ } namespace messaging { -class Address; -class Filter; +struct Address; +struct Filter; } namespace client { Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp Mon Aug 31 22:43:29 2009 @@ -183,25 +183,25 @@ { boost::shared_ptr<FieldValue> out; switch (in.getType()) { - case VOID: out = boost::shared_ptr<FieldValue>(new VoidValue()); break; - case BOOL: out = boost::shared_ptr<FieldValue>(new BoolValue(in.asBool())); break; - case UINT8: out = boost::shared_ptr<FieldValue>(new Unsigned8Value(in.asUint8())); break; - case UINT16: out = boost::shared_ptr<FieldValue>(new Unsigned16Value(in.asUint16())); break; - case UINT32: out = boost::shared_ptr<FieldValue>(new Unsigned32Value(in.asUint32())); break; - case UINT64: out = boost::shared_ptr<FieldValue>(new Unsigned64Value(in.asUint64())); break; - case INT8: out = boost::shared_ptr<FieldValue>(new Integer8Value(in.asInt8())); break; - case INT16: out = boost::shared_ptr<FieldValue>(new Integer16Value(in.asInt16())); break; - case INT32: out = boost::shared_ptr<FieldValue>(new Integer32Value(in.asInt32())); break; - case INT64: out = boost::shared_ptr<FieldValue>(new Integer64Value(in.asInt64())); break; - case FLOAT: out = boost::shared_ptr<FieldValue>(new FloatValue(in.asFloat())); break; - case DOUBLE: out = boost::shared_ptr<FieldValue>(new DoubleValue(in.asDouble())); break; + case VAR_VOID: out = boost::shared_ptr<FieldValue>(new VoidValue()); break; + case VAR_BOOL: out = boost::shared_ptr<FieldValue>(new BoolValue(in.asBool())); break; + case VAR_UINT8: out = boost::shared_ptr<FieldValue>(new Unsigned8Value(in.asUint8())); break; + case VAR_UINT16: out = boost::shared_ptr<FieldValue>(new Unsigned16Value(in.asUint16())); break; + case VAR_UINT32: out = boost::shared_ptr<FieldValue>(new Unsigned32Value(in.asUint32())); break; + case VAR_UINT64: out = boost::shared_ptr<FieldValue>(new Unsigned64Value(in.asUint64())); break; + case VAR_INT8: out = boost::shared_ptr<FieldValue>(new Integer8Value(in.asInt8())); break; + case VAR_INT16: out = boost::shared_ptr<FieldValue>(new Integer16Value(in.asInt16())); break; + case VAR_INT32: out = boost::shared_ptr<FieldValue>(new Integer32Value(in.asInt32())); break; + case VAR_INT64: out = boost::shared_ptr<FieldValue>(new Integer64Value(in.asInt64())); break; + case VAR_FLOAT: out = boost::shared_ptr<FieldValue>(new FloatValue(in.asFloat())); break; + case VAR_DOUBLE: out = boost::shared_ptr<FieldValue>(new DoubleValue(in.asDouble())); break; //TODO: check encoding (and length?) when deciding what AMQP type to treat string as - case STRING: out = boost::shared_ptr<FieldValue>(new Str16Value(in.asString())); break; - case MAP: + case VAR_STRING: out = boost::shared_ptr<FieldValue>(new Str16Value(in.asString())); break; + case VAR_MAP: //out = boost::shared_ptr<FieldValue>(toFieldValueCollection<FieldTableValue>(in.asMap(), &toFieldTableEntry)); out = boost::shared_ptr<FieldValue>(toFieldTableValue(in.asMap())); break; - case LIST: + case VAR_LIST: //out = boost::shared_ptr<FieldValue>(toFieldValueCollection<ListValue>(in.asList(), &toFieldValue)); out = boost::shared_ptr<FieldValue>(toListValue(in.asList())); break; Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h Mon Aug 31 22:43:29 2009 @@ -32,8 +32,8 @@ namespace qpid { namespace messaging { -class Address; -class Filter; +struct Address; +struct Filter; class Message; class Receiver; class Sender; Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp Mon Aug 31 22:43:29 2009 @@ -28,8 +28,8 @@ const std::string EMPTY_STRING = ""; } -MessageImpl::MessageImpl(const std::string& c) : bytes(c), type(VOID), internalId(0) {} -MessageImpl::MessageImpl(const char* chars, size_t count) : bytes(chars, count), type(VOID), internalId(0) {} +MessageImpl::MessageImpl(const std::string& c) : bytes(c), type(VAR_VOID), internalId(0) {} +MessageImpl::MessageImpl(const char* chars, size_t count) : bytes(chars, count), type(VAR_VOID), internalId(0) {} void MessageImpl::setReplyTo(const Address& d) { replyTo = d; } const Address& MessageImpl::getReplyTo() const { return replyTo; } @@ -54,9 +54,9 @@ std::ostream& MessageImpl::print(std::ostream& out) const { - if (type == MAP) { + if (type == VAR_MAP) { return out << content.asMap(); - } else if (type == LIST) { + } else if (type == VAR_LIST) { return out << content.asList(); } else { return out << bytes; @@ -65,13 +65,13 @@ template <class T> MessageContent& MessageImpl::append(T& t) { - if (type == VOID) { + if (type == VAR_VOID) { //TODO: this is inefficient, probably want to hold on to the stream object std::stringstream s; s << bytes; s << t; bytes = s.str(); - } else if (type == LIST) { + } else if (type == VAR_LIST) { content.asList().push_back(Variant(t)); } else { throw InvalidConversion("<< operator only valid on strings and lists"); @@ -94,33 +94,33 @@ MessageContent& MessageImpl::operator<<(float v) { return append(v); } MessageContent& MessageImpl::operator=(const std::string& s) { - type = VOID; + type = VAR_VOID; bytes = s; return *this; } MessageContent& MessageImpl::operator=(const char* c) { - type = VOID; + type = VAR_VOID; bytes = c; return *this; } MessageContent& MessageImpl::operator=(const Variant::Map& m) { - type = MAP; + type = VAR_MAP; content = m; return *this; } MessageContent& MessageImpl::operator=(const Variant::List& l) { - type = LIST; + type = VAR_LIST; content = l; return *this; } void MessageImpl::encode(Codec& codec) { - if (content.getType() != VOID) { + if (content.getType() != VAR_VOID) { bytes = EMPTY_STRING; codec.encode(content, bytes); } @@ -129,15 +129,15 @@ void MessageImpl::decode(Codec& codec) { codec.decode(bytes, content); - if (content.getType() == MAP) type = MAP; - else if (content.getType() == LIST) type = LIST; - else type = VOID;//TODO: what if codec set some type other than map or list?? + if (content.getType() == VAR_MAP) type = VAR_MAP; + else if (content.getType() == VAR_LIST) type = VAR_LIST; + else type = VAR_VOID;//TODO: what if codec set some type other than map or list?? } void MessageImpl::setInternalId(qpid::framing::SequenceNumber i) { internalId = i; } qpid::framing::SequenceNumber MessageImpl::getInternalId() { return internalId; } -bool MessageImpl::isVoid() const { return type == VOID; } +bool MessageImpl::isVoid() const { return type == VAR_VOID; } const std::string& MessageImpl::asString() const { @@ -165,24 +165,24 @@ { if (isVoid()) { content = Variant::Map(); - type = MAP; + type = VAR_MAP; } return content.asMap(); } -bool MessageImpl::isMap() const { return type == MAP; } +bool MessageImpl::isMap() const { return type == VAR_MAP; } const Variant::List& MessageImpl::asList() const { return content.asList(); } Variant::List& MessageImpl::asList() { if (isVoid()) { - content = Variant::List(); - type = LIST; + content = Variant::List(); + type = VAR_LIST; } return content.asList(); } -bool MessageImpl::isList() const { return type == LIST; } +bool MessageImpl::isList() const { return type == VAR_LIST; } -void MessageImpl::clear() { bytes = EMPTY_STRING; content.reset(); type = VOID; } +void MessageImpl::clear() { bytes = EMPTY_STRING; content.reset(); type = VAR_VOID; } MessageImpl& MessageImplAccess::get(Message& msg) { Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h Mon Aug 31 22:43:29 2009 @@ -32,8 +32,8 @@ namespace messaging { -class Address; -class Filter; +struct Address; +struct Filter; class Message; class Sender; class Receiver; Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Variant.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Variant.cpp?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/messaging/Variant.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/messaging/Variant.cpp Mon Aug 31 22:43:29 2009 @@ -113,31 +113,31 @@ }; -VariantImpl::VariantImpl() : type(VOID) { value.i64 = 0; } -VariantImpl::VariantImpl(bool b) : type(BOOL) { value.b = b; } -VariantImpl::VariantImpl(uint8_t i) : type(UINT8) { value.ui8 = i; } -VariantImpl::VariantImpl(uint16_t i) : type(UINT16) { value.ui16 = i; } -VariantImpl::VariantImpl(uint32_t i) : type(UINT32) { value.ui32 = i; } -VariantImpl::VariantImpl(uint64_t i) : type(UINT64) { value.ui64 = i; } -VariantImpl::VariantImpl(int8_t i) : type(INT8) { value.i8 = i; } -VariantImpl::VariantImpl(int16_t i) : type(INT16) { value.i16 = i; } -VariantImpl::VariantImpl(int32_t i) : type(INT32) { value.i32 = i; } -VariantImpl::VariantImpl(int64_t i) : type(INT64) { value.i64 = i; } -VariantImpl::VariantImpl(float f) : type(FLOAT) { value.f = f; } -VariantImpl::VariantImpl(double d) : type(DOUBLE) { value.d = d; } -VariantImpl::VariantImpl(const std::string& s) : type(STRING) { value.v = new std::string(s); } -VariantImpl::VariantImpl(const Variant::Map& m) : type(MAP) { value.v = new Variant::Map(m); } -VariantImpl::VariantImpl(const Variant::List& l) : type(LIST) { value.v = new Variant::List(l); } +VariantImpl::VariantImpl() : type(VAR_VOID) { value.i64 = 0; } +VariantImpl::VariantImpl(bool b) : type(VAR_BOOL) { value.b = b; } +VariantImpl::VariantImpl(uint8_t i) : type(VAR_UINT8) { value.ui8 = i; } +VariantImpl::VariantImpl(uint16_t i) : type(VAR_UINT16) { value.ui16 = i; } +VariantImpl::VariantImpl(uint32_t i) : type(VAR_UINT32) { value.ui32 = i; } +VariantImpl::VariantImpl(uint64_t i) : type(VAR_UINT64) { value.ui64 = i; } +VariantImpl::VariantImpl(int8_t i) : type(VAR_INT8) { value.i8 = i; } +VariantImpl::VariantImpl(int16_t i) : type(VAR_INT16) { value.i16 = i; } +VariantImpl::VariantImpl(int32_t i) : type(VAR_INT32) { value.i32 = i; } +VariantImpl::VariantImpl(int64_t i) : type(VAR_INT64) { value.i64 = i; } +VariantImpl::VariantImpl(float f) : type(VAR_FLOAT) { value.f = f; } +VariantImpl::VariantImpl(double d) : type(VAR_DOUBLE) { value.d = d; } +VariantImpl::VariantImpl(const std::string& s) : type(VAR_STRING) { value.v = new std::string(s); } +VariantImpl::VariantImpl(const Variant::Map& m) : type(VAR_MAP) { value.v = new Variant::Map(m); } +VariantImpl::VariantImpl(const Variant::List& l) : type(VAR_LIST) { value.v = new Variant::List(l); } VariantImpl::~VariantImpl() { switch (type) { - case STRING: + case VAR_STRING: delete reinterpret_cast<std::string*>(value.v); break; - case MAP: + case VAR_MAP: delete reinterpret_cast<Variant::Map*>(value.v); break; - case LIST: + case VAR_LIST: delete reinterpret_cast<Variant::List*>(value.v); break; default: @@ -175,169 +175,169 @@ bool VariantImpl::asBool() const { switch(type) { - case VOID: return false; - case BOOL: return value.b; - case UINT8: return value.ui8; - case UINT16: return value.ui16; - case UINT32: return value.ui32; - case UINT64: return value.ui64; - case INT8: return value.i8; - case INT16: return value.i16; - case INT32: return value.i32; - case INT64: return value.i64; - case STRING: return toBool(*reinterpret_cast<std::string*>(value.v)); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(BOOL))); + case VAR_VOID: return false; + case VAR_BOOL: return value.b; + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; + case VAR_UINT32: return value.ui32; + case VAR_UINT64: return value.ui64; + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_INT64: return value.i64; + case VAR_STRING: return toBool(*reinterpret_cast<std::string*>(value.v)); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_BOOL))); } } uint8_t VariantImpl::asUint8() const { switch(type) { - case UINT8: return value.ui8; - case STRING: return convertFromString<uint8_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(UINT8))); + case VAR_UINT8: return value.ui8; + case VAR_STRING: return convertFromString<uint8_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT8))); } } uint16_t VariantImpl::asUint16() const { switch(type) { - case UINT8: return value.ui8; - case UINT16: return value.ui16; - case STRING: return convertFromString<uint16_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(UINT16))); + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; + case VAR_STRING: return convertFromString<uint16_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT16))); } } uint32_t VariantImpl::asUint32() const { switch(type) { - case UINT8: return value.ui8; - case UINT16: return value.ui16; - case UINT32: return value.ui32; - case STRING: return convertFromString<uint32_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(UINT32))); + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; + case VAR_UINT32: return value.ui32; + case VAR_STRING: return convertFromString<uint32_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT32))); } } uint64_t VariantImpl::asUint64() const { switch(type) { - case UINT8: return value.ui8; - case UINT16: return value.ui16; - case UINT32: return value.ui32; - case UINT64: return value.ui64; - case STRING: return convertFromString<uint64_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(UINT64))); + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; + case VAR_UINT32: return value.ui32; + case VAR_UINT64: return value.ui64; + case VAR_STRING: return convertFromString<uint64_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64))); } } int8_t VariantImpl::asInt8() const { switch(type) { - case INT8: return value.i8; - case STRING: return convertFromString<int8_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(INT8))); + case VAR_INT8: return value.i8; + case VAR_STRING: return convertFromString<int8_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT8))); } } int16_t VariantImpl::asInt16() const { switch(type) { - case INT8: return value.i8; - case INT16: return value.i16; - case STRING: return convertFromString<int16_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(INT16))); + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; + case VAR_STRING: return convertFromString<int16_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT16))); } } int32_t VariantImpl::asInt32() const { switch(type) { - case INT8: return value.i8; - case INT16: return value.i16; - case INT32: return value.i32; - case STRING: return convertFromString<int32_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(INT32))); + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_STRING: return convertFromString<int32_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT32))); } } int64_t VariantImpl::asInt64() const { switch(type) { - case INT8: return value.i8; - case INT16: return value.i16; - case INT32: return value.i32; - case INT64: return value.i64; - case STRING: return convertFromString<int64_t>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(INT64))); + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_INT64: return value.i64; + case VAR_STRING: return convertFromString<int64_t>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT64))); } } float VariantImpl::asFloat() const { switch(type) { - case FLOAT: return value.f; - case STRING: return convertFromString<float>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(FLOAT))); + case VAR_FLOAT: return value.f; + case VAR_STRING: return convertFromString<float>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_FLOAT))); } } double VariantImpl::asDouble() const { switch(type) { - case FLOAT: return value.f; - case DOUBLE: return value.d; - case STRING: return convertFromString<double>(); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(DOUBLE))); + case VAR_FLOAT: return value.f; + case VAR_DOUBLE: return value.d; + case VAR_STRING: return convertFromString<double>(); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_DOUBLE))); } } std::string VariantImpl::asString() const { switch(type) { - case VOID: return EMPTY; - case BOOL: return value.b ? TRUE : FALSE; - case UINT8: return boost::lexical_cast<std::string>((int) value.ui8); - case UINT16: return boost::lexical_cast<std::string>(value.ui16); - case UINT32: return boost::lexical_cast<std::string>(value.ui32); - case UINT64: return boost::lexical_cast<std::string>(value.ui64); - case INT8: return boost::lexical_cast<std::string>((int) value.i8); - case INT16: return boost::lexical_cast<std::string>(value.i16); - case INT32: return boost::lexical_cast<std::string>(value.i32); - case INT64: return boost::lexical_cast<std::string>(value.i64); - case DOUBLE: return boost::lexical_cast<std::string>(value.d); - case FLOAT: return boost::lexical_cast<std::string>(value.f); - case STRING: return *reinterpret_cast<std::string*>(value.v); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(STRING))); + case VAR_VOID: return EMPTY; + case VAR_BOOL: return value.b ? TRUE : FALSE; + case VAR_UINT8: return boost::lexical_cast<std::string>((int) value.ui8); + case VAR_UINT16: return boost::lexical_cast<std::string>(value.ui16); + case VAR_UINT32: return boost::lexical_cast<std::string>(value.ui32); + case VAR_UINT64: return boost::lexical_cast<std::string>(value.ui64); + case VAR_INT8: return boost::lexical_cast<std::string>((int) value.i8); + case VAR_INT16: return boost::lexical_cast<std::string>(value.i16); + case VAR_INT32: return boost::lexical_cast<std::string>(value.i32); + case VAR_INT64: return boost::lexical_cast<std::string>(value.i64); + case VAR_DOUBLE: return boost::lexical_cast<std::string>(value.d); + case VAR_FLOAT: return boost::lexical_cast<std::string>(value.f); + case VAR_STRING: return *reinterpret_cast<std::string*>(value.v); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_STRING))); } } const Variant::Map& VariantImpl::asMap() const { switch(type) { - case MAP: return *reinterpret_cast<Variant::Map*>(value.v); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(MAP))); + case VAR_MAP: return *reinterpret_cast<Variant::Map*>(value.v); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_MAP))); } } Variant::Map& VariantImpl::asMap() { switch(type) { - case MAP: return *reinterpret_cast<Variant::Map*>(value.v); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(MAP))); + case VAR_MAP: return *reinterpret_cast<Variant::Map*>(value.v); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_MAP))); } } const Variant::List& VariantImpl::asList() const { switch(type) { - case LIST: return *reinterpret_cast<Variant::List*>(value.v); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(LIST))); + case VAR_LIST: return *reinterpret_cast<Variant::List*>(value.v); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_LIST))); } } Variant::List& VariantImpl::asList() { switch(type) { - case LIST: return *reinterpret_cast<Variant::List*>(value.v); - default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(LIST))); + case VAR_LIST: return *reinterpret_cast<Variant::List*>(value.v); + default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_LIST))); } } std::string& VariantImpl::getString() { switch(type) { - case STRING: return *reinterpret_cast<std::string*>(value.v); + case VAR_STRING: return *reinterpret_cast<std::string*>(value.v); default: throw InvalidConversion(QPID_MSG("Variant is not a string; use asString() if conversion is required.")); } } @@ -345,7 +345,7 @@ const std::string& VariantImpl::getString() const { switch(type) { - case STRING: return *reinterpret_cast<std::string*>(value.v); + case VAR_STRING: return *reinterpret_cast<std::string*>(value.v); default: throw InvalidConversion(QPID_MSG("Variant is not a string; use asString() if conversion is required.")); } } @@ -356,21 +356,21 @@ std::string VariantImpl::getTypeName(VariantType type) const { switch (type) { - case VOID: return "void"; - case BOOL: return "bool"; - case UINT8: return "uint8"; - case UINT16: return "uint16"; - case UINT32: return "uint32"; - case UINT64: return "uint64"; - case INT8: return "int8"; - case INT16: return "int16"; - case INT32: return "int32"; - case INT64: return "int64"; - case FLOAT: return "float"; - case DOUBLE: return "double"; - case STRING: return "string"; - case MAP: return "map"; - case LIST: return "list"; + case VAR_VOID: return "void"; + case VAR_BOOL: return "bool"; + case VAR_UINT8: return "uint8"; + case VAR_UINT16: return "uint16"; + case VAR_UINT32: return "uint32"; + case VAR_UINT64: return "uint64"; + case VAR_INT8: return "int8"; + case VAR_INT16: return "int16"; + case VAR_INT32: return "int32"; + case VAR_INT64: return "int64"; + case VAR_FLOAT: return "float"; + case VAR_DOUBLE: return "double"; + case VAR_STRING: return "string"; + case VAR_MAP: return "map"; + case VAR_LIST: return "list"; } return "<unknown>";//should never happen } @@ -378,20 +378,20 @@ VariantImpl* VariantImpl::create(const Variant& v) { switch (v.getType()) { - case BOOL: return new VariantImpl(v.asBool()); - case UINT8: return new VariantImpl(v.asUint8()); - case UINT16: return new VariantImpl(v.asUint16()); - case UINT32: return new VariantImpl(v.asUint32()); - case UINT64: return new VariantImpl(v.asUint64()); - case INT8: return new VariantImpl(v.asInt8()); - case INT16: return new VariantImpl(v.asInt16()); - case INT32: return new VariantImpl(v.asInt32()); - case INT64: return new VariantImpl(v.asInt64()); - case FLOAT: return new VariantImpl(v.asFloat()); - case DOUBLE: return new VariantImpl(v.asDouble()); - case STRING: return new VariantImpl(v.asString()); - case MAP: return new VariantImpl(v.asMap()); - case LIST: return new VariantImpl(v.asList()); + case VAR_BOOL: return new VariantImpl(v.asBool()); + case VAR_UINT8: return new VariantImpl(v.asUint8()); + case VAR_UINT16: return new VariantImpl(v.asUint16()); + case VAR_UINT32: return new VariantImpl(v.asUint32()); + case VAR_UINT64: return new VariantImpl(v.asUint64()); + case VAR_INT8: return new VariantImpl(v.asInt8()); + case VAR_INT16: return new VariantImpl(v.asInt16()); + case VAR_INT32: return new VariantImpl(v.asInt32()); + case VAR_INT64: return new VariantImpl(v.asInt64()); + case VAR_FLOAT: return new VariantImpl(v.asFloat()); + case VAR_DOUBLE: return new VariantImpl(v.asDouble()); + case VAR_STRING: return new VariantImpl(v.asString()); + case VAR_MAP: return new VariantImpl(v.asMap()); + case VAR_LIST: return new VariantImpl(v.asList()); default: return new VariantImpl(); } } @@ -584,13 +584,13 @@ std::ostream& operator<<(std::ostream& out, const Variant& value) { switch (value.getType()) { - case MAP: + case VAR_MAP: out << "{" << value.asMap() << "}"; break; - case LIST: + case VAR_LIST: out << "[" << value.asList() << "]"; break; - case VOID: + case VAR_VOID: out << "<void>"; break; default: Modified: qpid/trunk/qpid/cpp/src/tests/Variant.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Variant.cpp?rev=809772&r1=809771&r2=809772&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/Variant.cpp (original) +++ qpid/trunk/qpid/cpp/src/tests/Variant.cpp Mon Aug 31 22:43:29 2009 @@ -87,14 +87,14 @@ { Variant value("abc"); Variant other = value; - BOOST_CHECK_EQUAL(STRING, value.getType()); + BOOST_CHECK_EQUAL(VAR_STRING, value.getType()); BOOST_CHECK_EQUAL(other.getType(), value.getType()); BOOST_CHECK_EQUAL(other.asString(), value.asString()); const uint32_t i(1000); value = i; - BOOST_CHECK_EQUAL(UINT32, value.getType()); - BOOST_CHECK_EQUAL(STRING, other.getType()); + BOOST_CHECK_EQUAL(VAR_UINT32, value.getType()); + BOOST_CHECK_EQUAL(VAR_STRING, other.getType()); } QPID_AUTO_TEST_CASE(testList) @@ -111,17 +111,17 @@ Variant::List::const_iterator i = value.asList().begin(); BOOST_CHECK(i != value.asList().end()); - BOOST_CHECK_EQUAL(STRING, i->getType()); + BOOST_CHECK_EQUAL(VAR_STRING, i->getType()); BOOST_CHECK_EQUAL(s, i->asString()); i++; BOOST_CHECK(i != value.asList().end()); - BOOST_CHECK_EQUAL(FLOAT, i->getType()); + BOOST_CHECK_EQUAL(VAR_FLOAT, i->getType()); BOOST_CHECK_EQUAL(f, i->asFloat()); i++; BOOST_CHECK(i != value.asList().end()); - BOOST_CHECK_EQUAL(INT16, i->getType()); + BOOST_CHECK_EQUAL(VAR_INT16, i->getType()); BOOST_CHECK_EQUAL(x, i->asInt16()); i++; @@ -140,17 +140,17 @@ value.asMap()["my-key"] = x; BOOST_CHECK_EQUAL(3u, value.asMap().size()); - BOOST_CHECK_EQUAL(STRING, value.asMap()["colour"].getType()); + BOOST_CHECK_EQUAL(VAR_STRING, value.asMap()["colour"].getType()); BOOST_CHECK_EQUAL(red, value.asMap()["colour"].asString()); - BOOST_CHECK_EQUAL(FLOAT, value.asMap()["pi"].getType()); + BOOST_CHECK_EQUAL(VAR_FLOAT, value.asMap()["pi"].getType()); BOOST_CHECK_EQUAL(pi, value.asMap()["pi"].asFloat()); - BOOST_CHECK_EQUAL(INT16, value.asMap()["my-key"].getType()); + BOOST_CHECK_EQUAL(VAR_INT16, value.asMap()["my-key"].getType()); BOOST_CHECK_EQUAL(x, value.asMap()["my-key"].asInt16()); value.asMap()["my-key"] = "now it's a string"; - BOOST_CHECK_EQUAL(STRING, value.asMap()["my-key"].getType()); + BOOST_CHECK_EQUAL(VAR_STRING, value.asMap()["my-key"].getType()); BOOST_CHECK_EQUAL(std::string("now it's a string"), value.asMap()["my-key"].asString()); } --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org