/// /// \file cafeDataTypeHelper.h /// \author Jan Chrin, PSI /// \date Release: February 2015 /// \version CAFE 1.0.0 /// #ifndef CAFEDATATYPEHELPER_H #define CAFEDATATYPEHELP_H #include #include #include #include #include class CafeDataTypeHelper{ private: CAFE_DATATYPE_UNION cdu; CAFE_DATATYPE dataType; public: CafeDataTypeHelper(CAFE_DATATYPE_UNION _cdu, CAFE_DATATYPE _dataType){ cdu=_cdu; dataType=_dataType; }; ~CafeDataTypeHelper(){}; CAFEConvert renderDouble; CAFEConvert renderFloat; CAFEConvert renderShort; //CAFEConvert renderLong; CAFEConvert renderEnum; CAFEConvert renderUChar; CAFEConvert renderString; CAFEConvert renderChar; //CAFEConvert renderULong; CAFEConvert renderLongLong; CAFEConvert renderULongLong; CAFEConvert renderInt; CAFEConvert renderUInt; std::string getAsString(){ return (std::string) renderString.getString(dataType, cdu)[0]; }; dbr_string_t * getAsDbr_string_t(){ return (dbr_string_t *) (renderString.getString(dataType, cdu)[0]); }; double getAsDouble(){return (double) renderDouble.get(dataType, cdu)[0];}; float getAsFloat() {return (float) renderFloat.get (dataType, cdu)[0];}; short getAsShort() {return (short) renderShort.get(dataType, cdu)[0];}; dbr_enum_t getAsEnum(){return (dbr_enum_t) renderEnum.get(dataType, cdu)[0];}; unsigned short getAsUShort(){return (unsigned short) renderEnum.get(dataType, cdu)[0];}; int getAsInt() {return (int) renderInt.get(dataType, cdu)[0];}; unsigned int getAsUInt() {return (int) renderUInt.get(dataType, cdu)[0];}; char getAsChar() {return (char) renderChar.get(dataType, cdu)[0];}; unsigned char getAsUChar(){return (unsigned char) renderUChar.get(dataType, cdu)[0];}; long long getAsLongLong() {return (long long) renderLongLong.get(dataType, cdu)[0];}; unsigned int getAsULongLong() {return (unsigned long long) renderULongLong.get(dataType, cdu)[0];}; }; #endif