LCOV - code coverage report
Current view: top level - dpdklibs/src - CyclicDataGenerator.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 35 0
Test Date: 2026-10-11 15:05:20 Functions: 0.0 % 7 0

            Line data    Source code
       1              : #include "dpdklibs/CyclicDataGenerator.hpp"
       2              : 
       3              : #define DEFAULT_CYCLIC_PATTERN "abcdefghijklmnopqrstuvwxyz"
       4              : 
       5              : using namespace dunedaq::dpdklibs::cyclicdatagenerator;
       6              : 
       7            0 : CyclicDataGenerator::CyclicDataGenerator(size_t offset)
       8            0 :   : pattern(DEFAULT_CYCLIC_PATTERN)
       9            0 :   , slice_len(strlen(DEFAULT_CYCLIC_PATTERN))
      10              : {
      11            0 :   this->current_slice_index = offset % slice_len;
      12            0 : }
      13              : 
      14            0 : CyclicDataGenerator::CyclicDataGenerator(char* pattern, size_t offset)
      15            0 :   : pattern(pattern)
      16            0 :   , slice_len(strlen(pattern))
      17              : {
      18            0 :   this->current_slice_index = offset % slice_len;
      19            0 : }
      20              : 
      21              : char
      22            0 : CyclicDataGenerator::get_next()
      23              : {
      24            0 :   size_t i = current_slice_index;
      25              : 
      26            0 :   if (current_slice_index + 1 == slice_len) {
      27            0 :     current_slice_index = 0;
      28              :   } else {
      29            0 :     current_slice_index++;
      30              :   }
      31              : 
      32            0 :   return pattern[i];
      33              : }
      34              : 
      35              : void
      36            0 : CyclicDataGenerator::get_next_n(char* dst, size_t n)
      37              : {
      38            0 :   char buffer[n];
      39              : 
      40            0 :   for (size_t i = 0; i < n; i++) {
      41            0 :     buffer[i] = get_next();
      42              :   }
      43              : 
      44            0 :   strcpy(dst, buffer);
      45            0 : }
      46              : 
      47              : char
      48            0 : CyclicDataGenerator::get_prev()
      49              : {
      50            0 :   size_t i = current_slice_index;
      51              : 
      52            0 :   if (current_slice_index == 0) {
      53            0 :     current_slice_index = slice_len - 1;
      54              :   } else {
      55            0 :     current_slice_index--;
      56              :   }
      57              : 
      58            0 :   return pattern[i];
      59              : }
      60              : 
      61              : void
      62            0 : CyclicDataGenerator::get_prev_n(char* dst, size_t n)
      63              : {
      64            0 :   char buffer[n];
      65              : 
      66            0 :   for (size_t i = 0; i < n; i++) {
      67            0 :     buffer[i] = get_prev();
      68              :   }
      69              : 
      70            0 :   strcpy(dst, buffer);
      71            0 : }
      72              : 
      73            0 : CyclicDataGenerator::~CyclicDataGenerator() {}
        

Generated by: LCOV version 2.0-1