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_TupleProjectionAccessor_Included
00025 #define Fennel_TupleProjectionAccessor_Included
00026
00027 #include "fennel/tuple/TupleData.h"
00028
00029 FENNEL_BEGIN_NAMESPACE
00030
00031 class TupleAccessor;
00032 class AttributeAccessor;
00033 class TupleProjection;
00034
00040 class FENNEL_TUPLE_EXPORT TupleProjectionAccessor
00041 {
00042 TupleAccessor const *pTupleAccessor;
00043 std::vector<AttributeAccessor const *> ppAttributeAccessors;
00044
00045 public:
00046 explicit TupleProjectionAccessor();
00047
00048 void bind(
00049 TupleAccessor const &tupleAccessor,
00050 TupleProjection const &tupleProjection);
00051
00052 virtual ~TupleProjectionAccessor();
00053
00054 void unmarshal(TupleData &tuple) const
00055 {
00056 unmarshal(tuple.begin());
00057 }
00058
00059 void unmarshal(TupleData::iterator tupleIter) const;
00060
00061 uint size() const
00062 {
00063 return ppAttributeAccessors.size();
00064 }
00065 };
00066
00067 FENNEL_END_NAMESPACE
00068
00069 #endif
00070
00071