Fennel: /home/pub/open/dev/fennel/tuple/TupleProjectionAccessor.h Source File (original) (raw)
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