activemq-cpp-3.3.0

src/main/activemq/util/PrimitiveValueConverter.h

Go to the documentation of this file.
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_ */