void process() { helper->clearAggregate(aggy); input = inputs.item(0); startInput(input); processed = THORDATALINK_STARTED; try { while (!abortSoon) { OwnedConstThorRow row(input->ungroupedNextRow()); if (!row) break; helper->process(aggy, row); processed++; } ActPrintLog("DISTRIBUTION: processed %"RCPF"d records", processed & THORDATALINK_COUNT_MASK); } catch(CATCHALL) { ActPrintLog("DISTRIBUTION: exception"); throw; } CMessageBuffer msg; helper->serialize(aggy, msg); container.queryJob().queryJobComm().send(msg, 0, mpTag); }
void process() { processed = 0; input = inputs.item(0); startInput(input); processed = THORDATALINK_STARTED; OwnedConstThorRow row = input->ungroupedNextRow(); CMessageBuffer mb; size32_t lenpos = mb.length(); // its 0 really mb.append((size32_t)0); if (row) { CMemoryRowSerializer msz(mb); ::queryRowSerializer(input)->serialize(msz,(const byte *)row.get()); size32_t sz = mb.length()-lenpos-sizeof(size32_t); mb.writeDirect(lenpos,sizeof(size32_t),&sz); processed++; } container.queryJob().queryJobComm().send(mb, 0, masterMpTag); }