cafeDataTypeHelper.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CAFEDATATYPEHELPER_H
00009 #define CAFEDATATYPEHELPER_H
00010
00011 #include <cadef.h>
00012 #include <iostream>
00013 #include <string>
00014 #include <map>
00015 #include <cafeDataType.h>
00016
00017 class CafeDataTypeHelper{
00018 private:
00019 CAFE_DATATYPE_UNION cdu;
00020 CAFE_DATATYPE dataType;
00021
00022 public:
00023 CafeDataTypeHelper(CAFE_DATATYPE_UNION _cdu, CAFE_DATATYPE _dataType){
00024 cdu=_cdu;
00025 dataType=_dataType;
00026 };
00027
00028 ~CafeDataTypeHelper(){};
00029
00030 CAFEConvert<double> renderDouble;
00031 CAFEConvert<float> renderFloat;
00032 CAFEConvert<short> renderShort;
00033
00034 CAFEConvert<unsigned short> renderEnum;
00035 CAFEConvert<unsigned char> renderUChar;
00036 CAFEConvert<dbr_string_t> renderString;
00037
00038 CAFEConvert<char> renderChar;
00039
00040 CAFEConvert<long long> renderLongLong;
00041 CAFEConvert<unsigned long long> renderULongLong;
00042
00043 CAFEConvert<int> renderInt;
00044 CAFEConvert<unsigned int> renderUInt;
00045
00046 std::string getAsString(){
00047 return (std::string) renderString.getString(dataType, cdu)[0];
00048 };
00049 dbr_string_t * getAsDbr_string_t(){
00050 return (dbr_string_t *) (renderString.getString(dataType, cdu)[0]);
00051 };
00052 double getAsDouble(){return (double) renderDouble.get(dataType, cdu)[0];};
00053 float getAsFloat() {return (float) renderFloat.get (dataType, cdu)[0];};
00054 short getAsShort() {return (short) renderShort.get(dataType, cdu)[0];};
00055 dbr_enum_t getAsEnum(){return (dbr_enum_t) renderEnum.get(dataType, cdu)[0];};
00056 unsigned short getAsUShort(){return (unsigned short) renderEnum.get(dataType, cdu)[0];};
00057 int getAsInt() {return (int) renderInt.get(dataType, cdu)[0];};
00058 unsigned int getAsUInt() {return (int) renderUInt.get(dataType, cdu)[0];};
00059 char getAsChar() {return (char) renderChar.get(dataType, cdu)[0];};
00060 unsigned char getAsUChar(){return (unsigned char) renderUChar.get(dataType, cdu)[0];};
00061 long long getAsLongLong() {return (long long) renderLongLong.get(dataType, cdu)[0];};
00062 unsigned int getAsULongLong() {return (unsigned long long) renderULongLong.get(dataType, cdu)[0];};
00063 };
00064
00065 #endif