|
activemq-cpp-3.3.0
|
00001 00018 #ifndef _ACTIVEMQ_UTIL_PRIMITIVEVALUECONVERTER_H_ 00019 #define _ACTIVEMQ_UTIL_PRIMITIVEVALUECONVERTER_H_ 00020 00021 #include <activemq/util/Config.h> 00022 00023 #include <activemq/util/PrimitiveValueNode.h> 00024 #include <decaf/lang/exceptions/UnsupportedOperationException.h> 00025 #include <string> 00026 00027 namespace activemq { 00028 namespace util { 00029 00054 class AMQCPP_API PrimitiveValueConverter { 00055 public: 00056 00057 PrimitiveValueConverter() {} 00058 virtual ~PrimitiveValueConverter() {} 00059 00060 template< typename TO> 00061 TO convert( const PrimitiveValueNode& value ) const { 00062 00063 throw decaf::lang::exceptions::UnsupportedOperationException( 00064 __FILE__, __LINE__, "Invalid Conversion" ); 00065 } 00066 00067 }; 00068 00069 template<> 00070 bool PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00071 template<> 00072 unsigned char PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00073 template<> 00074 char PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00075 template<> 00076 short PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00077 template<> 00078 int PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00079 template<> 00080 long long PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00081 template<> 00082 float PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00083 template<> 00084 double PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00085 template<> 00086 std::string PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00087 template<> 00088 std::vector<unsigned char> PrimitiveValueConverter::convert( const PrimitiveValueNode& value ) const; 00089 00090 }} 00091 00092 #endif /* _ACTIVEMQ_UTIL_PRIMITIVEVALUECONVERTER_H_ */