00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef Fennel_LbmSegmentReader_Included
00023 #define Fennel_LbmSegmentReader_Included
00024
00025 #include "fennel/tuple/TupleData.h"
00026 #include "fennel/exec/ExecStreamDefs.h"
00027 #include "fennel/lucidera/bitmap/LbmSegmentReaderBase.h"
00028
00029 FENNEL_BEGIN_NAMESPACE
00030
00041 class FENNEL_LBM_EXPORT LbmSegmentReader
00042 : public LbmSegmentReaderBase
00043 {
00047 bool firstReadDone;
00048
00054 ExecStreamResult readSegment();
00055
00059 void initCommon();
00060
00061 public:
00070 void init(
00071 SharedExecStreamBufAccessor &pInAccessorInit,
00072 TupleData &bitmapSegTupleInit);
00073
00087 void init(
00088 SharedExecStreamBufAccessor &pInAccessorInit,
00089 TupleData &bitmapSegTupleInit,
00090 bool setBitmapInit,
00091 boost::dynamic_bitset<> *pBitmapInit);
00092
00101 void init(
00102 SharedLbmTupleReader &pTupleReaderInit,
00103 TupleData &bitmapSegTupleInit);
00104
00118 void init(
00119 SharedLbmTupleReader &pTupleReaderInit,
00120 TupleData &bitmapSegTupleInit,
00121 bool setBitmapInit,
00122 boost::dynamic_bitset<> *pBitmapInit);
00123
00132 ExecStreamResult advanceToRid(LcsRid rid);
00133
00143 ExecStreamResult advanceToByte(LbmByteNumber byteNum);
00144
00157 void readCurrentByteSegment(LcsRid &startRid, PBuffer &byteSeg, uint &len);
00158 };
00159
00160 FENNEL_END_NAMESPACE
00161
00162 #endif
00163
00164