LCOV - code coverage report
Current view: top level - dpdklibs/src - CyclicDataGenerator.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 31 0
Test Date: 2025-12-21 13:07:08 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) : pattern(DEFAULT_CYCLIC_PATTERN), slice_len(strlen(DEFAULT_CYCLIC_PATTERN)) {
       8            0 :     this->current_slice_index = offset % slice_len;
       9            0 : }
      10              : 
      11            0 : CyclicDataGenerator::CyclicDataGenerator(char *pattern, size_t offset) : pattern(pattern), slice_len(strlen(pattern)) {
      12            0 :     this->current_slice_index = offset % slice_len;
      13            0 : }
      14              : 
      15            0 : char CyclicDataGenerator::get_next() {
      16            0 :     size_t i = current_slice_index;
      17              : 
      18            0 :     if (current_slice_index + 1 == slice_len) {
      19            0 :         current_slice_index = 0;
      20              :     } else {
      21            0 :         current_slice_index++;
      22              :     }
      23              : 
      24            0 :     return pattern[i];
      25              : }
      26              : 
      27            0 : void CyclicDataGenerator::get_next_n(char *dst, size_t n) {
      28            0 :     char buffer[n];
      29              : 
      30            0 :     for (size_t i = 0; i < n; i++) { 
      31            0 :         buffer[i] = get_next();
      32              :     }
      33              : 
      34            0 :     strcpy(dst, buffer);
      35            0 : }
      36              : 
      37            0 : char CyclicDataGenerator::get_prev() {
      38            0 :     size_t i = current_slice_index;
      39              : 
      40            0 :     if (current_slice_index == 0) {
      41            0 :         current_slice_index = slice_len - 1;
      42              :     } else {
      43            0 :         current_slice_index--;
      44              :     }
      45              : 
      46            0 :     return pattern[i];
      47              : }
      48              : 
      49            0 : void CyclicDataGenerator::get_prev_n(char *dst, size_t n) {
      50            0 :     char buffer[n];
      51              : 
      52            0 :     for (size_t i = 0; i < n; i++) {
      53            0 :         buffer[i] = get_prev();
      54              :     }
      55              : 
      56            0 :     strcpy(dst, buffer);
      57            0 : }
      58              : 
      59            0 : CyclicDataGenerator::~CyclicDataGenerator() {}
        

Generated by: LCOV version 2.0-1