Skip to content
Snippets Groups Projects

loopy unpacking and multi packing

Merged Sevda Esen requested to merge sevda-loopy-unpacking3 into master
2 files
+ 32
18
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -64,15 +64,20 @@ namespace DataPacking::Buffer {
const Gaudi::StringKey PackedObjectLocations{"PackedObjectLocations"};
auto* rels = m_rels.put( std::make_unique<RELATION>() );
const auto& s2i = m_annsvc->s2i( buffers.key(), PackedObjectLocations );
auto j = s2i.find( m_rels.fullKey().key() );
if ( j == s2i.end() ) {
throw GaudiException{"Could not find entry for requested output", __PRETTY_FUNCTION__, StatusCode::FAILURE};
++m_unknown;
return;
}
auto* rels = m_rels.put( std::make_unique<RELATION>() );
const auto* buffer = buffers.find( j->second );
if ( !buffer || !buffer->buffer().size() ) return;
if ( !buffer ) {
++m_absent;
return;
}
if (buffer->buffer().size()==0) return;
Buffer readBuffer{*buffer}; // TODO: avoid copying just because 'pos' gets updated -- allow a 'shallow' emphemeral
// version which allows reading
@@ -274,8 +279,9 @@ namespace DataPacking::Buffer {
DataObjectWriteHandle<RELATION> m_rels{this, "OutputName", ""};
mutable Gaudi::Accumulators::MsgCounter<MSG::ERROR> m_unknown{this, "Requested output is not known for the given input stream - not creating output"};
mutable Gaudi::Accumulators::MsgCounter<MSG::WARNING> m_absent{this, "Requested output is known, but not present in packed data - creating empty container"};
mutable Gaudi::Accumulators::StatCounter<> m_unpackedData{this, "# PackedData"};
mutable Gaudi::Accumulators::StatCounter<> m_missingLinks{this, "# Missing Link Locations"};
};
Loading