void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); if (helper->canFilter()) info.canReduceNumRows = true; calcMetaInfoSize(info,inputs.item(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.isSequential = true; info.canReduceNumRows = true; // not sure what selectNth is doing calcMetaInfoSize(info,inputs.item(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.canReduceNumRows = true; info.totalRowsMax = helper->getLimit(); calcMetaInfoSize(info,inputs.item(0)); }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) const override { initMetaInfo(info); info.canReduceNumRows = true; info.totalRowsMax = helper->getLimit(); calcMetaInfoSize(info, queryInput(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.fastThrough = true; info.canReduceNumRows = true; calcMetaInfoSize(info,inputs.item(0)); }
// IThorDataLink virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override { initMetaInfo(info); info.fastThrough = true; // ish if (helper->canFilter()) info.canReduceNumRows = true; calcMetaInfoSize(info, queryInput(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.canReduceNumRows = true; info.canBufferInput = false; info.totalRowsMax = rowLimit; calcMetaInfoSize(info,inputs.item(0)); }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.canBufferInput = true; if (helper->canFilter()) info.canReduceNumRows = true; calcMetaInfoSize(info, queryInput(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.isSequential = true; info.canReduceNumRows = true; info.canBufferInput = true; calcMetaInfoSize(info, queryInput(0)); }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override { initMetaInfo(info); info.canReduceNumRows = true; info.canBufferInput = false; info.totalRowsMax = rowLimit; calcMetaInfoSize(info, queryInput(0)); }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) const override { initMetaInfo(info); if (rolloverEnabled) { info.isSequential = true; info.unknownRowsOutput = true; // don't know how many rolled over } else info.fastThrough = true; calcMetaInfoSize(info, queryInput(0)); }
void CThorDataLink::calcMetaInfoSize(ThorDataLinkMetaInfo &info,IThorDataLink **link,unsigned ninputs) { if (!link||(ninputs<=1)) { calcMetaInfoSize(info,link&&(ninputs==1)?link[0]:NULL); return ; } if (!info.unknownRowsOutput) { __int64 min=0; __int64 max=0; for (unsigned i=0;i<ninputs;i++ ) { if (link[i]) { ThorDataLinkMetaInfo prev; link[i]->getMetaInfo(prev); if (min>=0) { if (prev.totalRowsMin>=0) min += prev.totalRowsMin; else min = -1; } if (max>=0) { if (prev.totalRowsMax>=0) max += prev.totalRowsMax; else max = -1; } } } if (info.totalRowsMin<=0) { if (!info.canReduceNumRows) info.totalRowsMin = min; else info.totalRowsMin = 0; } if (info.totalRowsMax<0) { if (!info.canIncreaseNumRows) { info.totalRowsMax = max; if (info.totalRowsMin>info.totalRowsMax) info.totalRowsMax = -1; } } } else if (info.totalRowsMin<0) info.totalRowsMin = 0; // a good bet }
void getPartsMetaInfo(ThorDataLinkMetaInfo &metaInfo, unsigned nparts, IPartDescriptor **partDescs, CDiskPartHandlerBase *partHandler) { ThorDataLinkMetaInfo *metaInfos = new ThorDataLinkMetaInfo[nparts]; struct ownedMetaInfos { ThorDataLinkMetaInfo *&metaInfos; ownedMetaInfos(ThorDataLinkMetaInfo *&_metaInfos) : metaInfos(_metaInfos) { } ~ownedMetaInfos() { delete [] metaInfos; } } omi(metaInfos); unsigned __int64 sizeTotal = 0; unsigned p=0; for (; p<nparts; p++) { initMetaInfo(metaInfos[p]); partHandler->getMetaInfo(metaInfos[p], partDescs[p]); sizeTotal += partDescs[p]->queryProperties().getPropInt64("@size"); } calcMetaInfoSize(metaInfo, metaInfos, nparts); if (!metaInfo.unknownRowsOutput && !metaInfo.canReduceNumRows && !metaInfo.canIncreaseNumRows) metaInfo.byteTotal = sizeTotal; }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.buffersInput = true; calcMetaInfoSize(info,inputs.item(0)); }
virtual void getMetaInfo(ThorDataLinkMetaInfo &info) override { initMetaInfo(info); info.fastThrough = false; calcMetaInfoSize(info, queryInput(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); calcMetaInfoSize(info,inputs.item(0)); }
void getMetaInfo(ThorDataLinkMetaInfo &info) { initMetaInfo(info); info.fastThrough = true; // ish calcMetaInfoSize(info,inputs.item(0)); }