DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
dpdklibs
src
CyclicDataGenerator.cpp
Go to the documentation of this file.
1
#include "
dpdklibs/CyclicDataGenerator.hpp
"
2
3
#define DEFAULT_CYCLIC_PATTERN "abcdefghijklmnopqrstuvwxyz"
4
5
using namespace
dunedaq::dpdklibs::cyclicdatagenerator
;
6
7
CyclicDataGenerator::CyclicDataGenerator
(
size_t
offset
) : pattern(
DEFAULT_CYCLIC_PATTERN
), slice_len(strlen(
DEFAULT_CYCLIC_PATTERN
)) {
8
this->
current_slice_index
= offset %
slice_len
;
9
}
10
11
CyclicDataGenerator::CyclicDataGenerator
(
char
*pattern,
size_t
offset
) : pattern(pattern), slice_len(strlen(pattern)) {
12
this->
current_slice_index
= offset %
slice_len
;
13
}
14
15
char
CyclicDataGenerator::get_next
() {
16
size_t
i =
current_slice_index
;
17
18
if
(
current_slice_index
+ 1 ==
slice_len
) {
19
current_slice_index
= 0;
20
}
else
{
21
current_slice_index
++;
22
}
23
24
return
pattern
[i];
25
}
26
27
void
CyclicDataGenerator::get_next_n
(
char
*dst,
size_t
n) {
28
char
buffer[n];
29
30
for
(
size_t
i = 0; i < n; i++) {
31
buffer[i] =
get_next
();
32
}
33
34
strcpy(dst, buffer);
35
}
36
37
char
CyclicDataGenerator::get_prev
() {
38
size_t
i =
current_slice_index
;
39
40
if
(
current_slice_index
== 0) {
41
current_slice_index
=
slice_len
- 1;
42
}
else
{
43
current_slice_index
--;
44
}
45
46
return
pattern
[i];
47
}
48
49
void
CyclicDataGenerator::get_prev_n
(
char
*dst,
size_t
n) {
50
char
buffer[n];
51
52
for
(
size_t
i = 0; i < n; i++) {
53
buffer[i] =
get_prev
();
54
}
55
56
strcpy(dst, buffer);
57
}
58
59
CyclicDataGenerator::~CyclicDataGenerator
() {}
DEFAULT_CYCLIC_PATTERN
#define DEFAULT_CYCLIC_PATTERN
Definition
CyclicDataGenerator.cpp:3
CyclicDataGenerator.hpp
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::get_prev_n
void get_prev_n(char *dst, size_t n)
Definition
CyclicDataGenerator.cpp:49
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::pattern
const char * pattern
Definition
CyclicDataGenerator.hpp:24
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::~CyclicDataGenerator
~CyclicDataGenerator()
Definition
CyclicDataGenerator.cpp:59
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::get_next_n
void get_next_n(char *dst, size_t n)
Definition
CyclicDataGenerator.cpp:27
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::current_slice_index
size_t current_slice_index
Definition
CyclicDataGenerator.hpp:26
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::slice_len
const size_t slice_len
Definition
CyclicDataGenerator.hpp:25
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::get_prev
char get_prev()
Definition
CyclicDataGenerator.cpp:37
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::CyclicDataGenerator
CyclicDataGenerator(size_t offset=0)
Definition
CyclicDataGenerator.cpp:7
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::get_next
char get_next()
Definition
CyclicDataGenerator.cpp:15
offset
double offset
Definition
conversions-impl.hh:28
dunedaq::dpdklibs::cyclicdatagenerator
Definition
CyclicDataGenerator.hpp:9
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0