00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TNTDB_IFACE_IVALUE_H
00030 #define TNTDB_IFACE_IVALUE_H
00031
00032 #include <cxxtools/refcounted.h>
00033 #include <string>
00034 #include <stdint.h>
00035
00036 namespace tntdb
00037 {
00038 class Date;
00039 class Time;
00040 class Datetime;
00041 class Decimal;
00042 class Blob;
00043
00045 class IValue : public cxxtools::RefCounted
00046 {
00047 public:
00048 virtual bool isNull() const = 0;
00049 virtual bool getBool() const = 0;
00050 virtual int getInt() const = 0;
00051 virtual unsigned getUnsigned() const = 0;
00052 virtual int32_t getInt32() const = 0;
00053 virtual uint32_t getUnsigned32() const = 0;
00054 virtual int64_t getInt64() const = 0;
00055 virtual uint64_t getUnsigned64() const = 0;
00056 virtual Decimal getDecimal() const = 0;
00057 virtual float getFloat() const = 0;
00058 virtual double getDouble() const = 0;
00059 virtual char getChar() const = 0;
00060 virtual void getString(std::string& ret) const = 0;
00061 virtual void getBlob(Blob& ret) const = 0;
00062 virtual Date getDate() const = 0;
00063 virtual Time getTime() const = 0;
00064 virtual Datetime getDatetime() const = 0;
00065 };
00066 }
00067
00068 #endif // TNTDB_IFACE_IVALUE_H
00069