void Producer::onInterest(const Interest& interest) { BOOST_ASSERT(m_store.size() > 0); if (m_isVerbose) std::cerr << "Interest: " << interest << std::endl; const Name& name = interest.getName(); shared_ptr<Data> data; // is this a discovery Interest or a sequence retrieval? if (name.size() == m_versionedPrefix.size() + 1 && m_versionedPrefix.isPrefixOf(name) && name[-1].isSegment()) { const auto segmentNo = static_cast<size_t>(interest.getName()[-1].toSegment()); // specific segment retrieval if (segmentNo < m_store.size()) { data = m_store[segmentNo]; } } else if (interest.matchesData(*m_store[0])) { // Interest has version and is looking for the first segment or has no version data = m_store[0]; } if (data != nullptr) { if (m_isVerbose) std::cerr << "Data: " << *data << std::endl; m_face.put(*data); } }