00001
00018 #ifndef _ACTIVEMQ_UTIL_PRIMITIVEMAP_H_
00019 #define _ACTIVEMQ_UTIL_PRIMITIVEMAP_H_
00020
00021 #include <string>
00022 #include <vector>
00023 #include <activemq/util/Config.h>
00024 #include <decaf/util/Config.h>
00025 #include <decaf/util/StlMap.h>
00026 #include <decaf/util/NoSuchElementException.h>
00027 #include <activemq/util/PrimitiveValueNode.h>
00028 #include <activemq/util/PrimitiveValueConverter.h>
00029
00030 namespace activemq {
00031 namespace util {
00032
00036 class AMQCPP_API PrimitiveMap : public decaf::util::StlMap<std::string, PrimitiveValueNode> {
00037 private:
00038
00039 PrimitiveValueConverter converter;
00040
00041 public:
00042
00046 PrimitiveMap();
00047
00048 virtual ~PrimitiveMap();
00049
00056 PrimitiveMap(const decaf::util::Map<std::string, PrimitiveValueNode>& source);
00057
00064 PrimitiveMap(const PrimitiveMap& source);
00065
00072 std::string toString() const;
00073
00078 virtual PrimitiveValueNode::PrimitiveType getValueType(const std::string& key) const;
00079
00091 virtual bool getBool(const std::string& key) const;
00092
00099 virtual void setBool(const std::string& key, bool value);
00100
00112 virtual unsigned char getByte(const std::string& key) const;
00113
00120 virtual void setByte(const std::string& key, unsigned char value);
00121
00133 virtual char getChar(const std::string& key) const;
00134
00141 virtual void setChar(const std::string& key, char value);
00142
00154 virtual short getShort(const std::string& key) const;
00155
00162 virtual void setShort(const std::string& key, short value);
00163
00175 virtual int getInt(const std::string& key) const;
00176
00183 virtual void setInt(const std::string& key, int value);
00184
00196 virtual long long getLong(const std::string& key) const;
00197
00204 virtual void setLong(const std::string& key, long long value);
00205
00217 virtual float getFloat(const std::string& key) const;
00218
00225 virtual void setFloat(const std::string& key, float value);
00226
00238 virtual double getDouble(const std::string& key) const;
00239
00246 virtual void setDouble(const std::string& key, double value);
00247
00259 virtual std::string getString(const std::string& key) const;
00260
00267 virtual void setString(const std::string& key, const std::string& value);
00268
00280 virtual std::vector<unsigned char> getByteArray(const std::string& key) const;
00281
00288 virtual void setByteArray(const std::string& key, const std::vector<unsigned char>& value);
00289
00290 };
00291
00292 }}
00293
00294 #endif