00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef Fennel_StoredTypeDescriptor_Included
00025 #define Fennel_StoredTypeDescriptor_Included
00026
00027 FENNEL_BEGIN_NAMESPACE
00028
00029 class DataVisitor;
00030
00036 class FENNEL_TUPLE_EXPORT StoredTypeDescriptor
00037 {
00038 public:
00044 typedef uint Ordinal;
00045
00046 virtual ~StoredTypeDescriptor();
00047
00051 virtual Ordinal getOrdinal() const = 0;
00052
00057 virtual uint getBitCount() const = 0;
00058
00064 virtual uint getFixedByteCount() const = 0;
00065
00075 virtual uint getMinByteCount(uint cbMaxWidth) const = 0;
00076
00087 virtual uint getAlignmentByteCount(uint cbWidth) const = 0;
00088
00099 virtual void visitValue(
00100 DataVisitor &dataVisitor,
00101 void const *pData,
00102 TupleStorageByteLength cbData) const = 0;
00103
00118 virtual int compareValues(
00119 void const *pData1,
00120 TupleStorageByteLength cbData1,
00121 void const *pData2,
00122 TupleStorageByteLength cbData2) const = 0;
00123 };
00124
00125 FENNEL_END_NAMESPACE
00126
00127 #endif
00128
00129