unsigned int Source::PumpAll2(bool blocking) { // TODO: switch length type unsigned long i = UINT_MAX; RETURN_IF_NONZERO(Pump2(i, blocking)); unsigned int j = UINT_MAX; return PumpMessages2(j, blocking); }
size_t NonblockingSource::PumpMessages2(unsigned int &messageCount, bool blocking) { if (messageCount == 0) return 0; messageCount = 0; lword byteCount; do { byteCount = LWORD_MAX; RETURN_IF_NONZERO(Pump2(byteCount, blocking)); } while(byteCount == LWORD_MAX); if (!m_messageEndSent && SourceExhausted()) { RETURN_IF_NONZERO(AttachedTransformation()->Put2(NULL, 0, GetAutoSignalPropagation(), true)); m_messageEndSent = true; messageCount = 1; } return 0; }