void publish() { ndn::EncodingBuffer buffer; generate(buffer); const uint8_t* rawBuffer = buffer.buf(); const uint8_t* segmentBegin = rawBuffer; const uint8_t* end = rawBuffer + buffer.size(); Name segmentPrefix(m_prefix); segmentPrefix.appendVersion(); uint64_t segmentNo = 0; do { const uint8_t* segmentEnd = segmentBegin + getMaxSegmentSize(); if (segmentEnd > end) { segmentEnd = end; } Name segmentName(segmentPrefix); segmentName.appendSegment(segmentNo); shared_ptr<Data> data = make_shared<Data>(segmentName); data->setContent(segmentBegin, segmentEnd - segmentBegin); segmentBegin = segmentEnd; if (segmentBegin >= end) { data->setFinalBlockId(segmentName[-1]); } publishSegment(data); ++segmentNo; } while (segmentBegin < end); }
static void printMapCPP(const QList<T> &l, const QString &name) { ldbg << name; for(int i = 0; i < l.size(); i++) { const LineSegment &s = getSegment(l, i); ldbg << endl << "<< " << segmentPrefix(l) << "LineSegment(" << s.x1() << "," << s.y1() << "," << s.x2() << "," << s.y2() << ")"; } ldbg << ";" << endl; }