PullSGArrayBlocking::pullAttributes
PullSGArrayBlocking::pullChunk
PullSGArrayBlocking::pullChunk: trying to consume chunk for attId=113
WriteChunkToArrayFunc: trying to consume chunk for attId=113
PullSGArrayBlocking::pullChunk: trying to consume chunk for attId=114
WriteChunkToArrayFunc: trying to consume chunk for attId=114
PullSGArrayBlocking::pullChunk: trying to consume chunk for attId=115
WriteChunkToArrayFunc: trying to consume chunk for attId=115
涉及到几个属性就pull几个,然后写到磁盘上去。
std::shared_ptr<ConstArrayIterator>
PullSGArrayBlocking::getConstIterator(AttributeID attId) const
{
const static char* funcName = "PullSGArrayBlocking::getConstIterator: ";
const size_t attrNum = _iterators.size(); // emptyBitmap included
// Make sure that multiple attributes are NOT pulled simultaneously using this interface.
// If the input to pullRedistribute() is a SINGLE_PASS array,
// only a SINGLE attribute is allowed to be pulled by this interface.
// To pull multiple attributes simultaneously, pullAttributes() must be used.
// If the input to pullRedistribute() is a SINGLE_PASS array,
// pullAttributes() must be used to pull ALL attributes only.
for (size_t a=0; a < attrNum; ++a) {
if (a!=attId && _iterators[a] &&
(isInputSinglePass() || !_iterators[a]->end())) {
ASSERT_EXCEPTION(false, string(funcName)+string("multiple attributes disallowed"));
}
}
return PullSGArray::getConstIterator(attId);
}