131 auto now = std::chrono::high_resolution_clock::now();
134 double seconds = std::chrono::duration_cast<std::chrono::microseconds>(
now -
m_t0).count() / 1000000.;
136 info.set_num_short_chunks_processed( stats.short_ctr.exchange(0) );
137 info.set_num_chunks_processed( stats.chunk_ctr.exchange(0) );
138 info.set_num_subchunks_processed(stats.subchunk_ctr.exchange(0));
139 info.set_num_blocks_processed(stats.block_ctr.exchange(0));
141 info.set_rate_blocks_processed(info.num_blocks_processed() / seconds / 1000. );
142 info.set_rate_chunks_processed(info.num_chunks_processed() / seconds / 1000. );
144 info.set_num_short_chunks_processed_with_error(stats.error_short_ctr.exchange(0));
145 info.set_num_chunks_processed_with_error(stats.error_chunk_ctr.exchange(0));
146 info.set_num_subchunks_processed_with_error(stats.error_subchunk_ctr.exchange(0));
147 info.set_num_blocks_processed_with_error(stats.error_block_ctr.exchange(0));
148 info.set_num_subchunk_crc_errors(stats.subchunk_crc_error_ctr.exchange(0));
149 info.set_num_subchunk_trunc_errors(stats.subchunk_trunc_error_ctr.exchange(0));
150 info.set_num_subchunk_errors(stats.subchunk_error_ctr.exchange(0));
154 <<
" Parser stats ->"
155 <<
" Blocks: " << info.num_blocks_processed() <<
" Block rate: " << info.rate_blocks_processed()
157 <<
" Chunks: " << info.num_chunks_processed() <<
" Chunk rate: " << info.rate_chunks_processed()
159 <<
" Shorts: " << info.num_short_chunks_processed() <<
" Subchunks:" << info.num_subchunks_processed()
160 <<
" Error Chunks: " << info.num_chunks_processed_with_error()
161 <<
" Error Shorts: " << info.num_short_chunks_processed_with_error()
162 <<
" Error Subchunks: " << info.num_subchunks_processed_with_error()
163 <<
" Error Block: " << info.num_blocks_processed_with_error();