DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
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
)
8
:
pattern
(
DEFAULT_CYCLIC_PATTERN
)
9
,
slice_len
(strlen(
DEFAULT_CYCLIC_PATTERN
))
10
{
11
this->
current_slice_index
=
offset
%
slice_len
;
12
}
13
14
CyclicDataGenerator::CyclicDataGenerator
(
char
*
pattern
,
size_t
offset
)
15
:
pattern
(
pattern
)
16
,
slice_len
(strlen(
pattern
))
17
{
18
this->
current_slice_index
=
offset
%
slice_len
;
19
}
20
21
char
22
CyclicDataGenerator::get_next
()
23
{
24
size_t
i =
current_slice_index
;
25
26
if
(
current_slice_index
+ 1 ==
slice_len
) {
27
current_slice_index
= 0;
28
}
else
{
29
current_slice_index
++;
30
}
31
32
return
pattern
[i];
33
}
34
35
void
36
CyclicDataGenerator::get_next_n
(
char
* dst,
size_t
n)
37
{
38
char
buffer[n];
39
40
for
(
size_t
i = 0; i < n; i++) {
41
buffer[i] =
get_next
();
42
}
43
44
strcpy(dst, buffer);
45
}
46
47
char
48
CyclicDataGenerator::get_prev
()
49
{
50
size_t
i =
current_slice_index
;
51
52
if
(
current_slice_index
== 0) {
53
current_slice_index
=
slice_len
- 1;
54
}
else
{
55
current_slice_index
--;
56
}
57
58
return
pattern
[i];
59
}
60
61
void
62
CyclicDataGenerator::get_prev_n
(
char
* dst,
size_t
n)
63
{
64
char
buffer[n];
65
66
for
(
size_t
i = 0; i < n; i++) {
67
buffer[i] =
get_prev
();
68
}
69
70
strcpy(dst, buffer);
71
}
72
73
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:62
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::pattern
const char * pattern
Definition
CyclicDataGenerator.hpp:24
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::~CyclicDataGenerator
~CyclicDataGenerator()
Definition
CyclicDataGenerator.cpp:73
dunedaq::dpdklibs::cyclicdatagenerator::CyclicDataGenerator::get_next_n
void get_next_n(char *dst, size_t n)
Definition
CyclicDataGenerator.cpp:36
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:48
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:22
offset
double offset
Definition
conversions-impl.hh:28
dunedaq::dpdklibs::cyclicdatagenerator
Definition
CyclicDataGenerator.hpp:9
Generated on
for DUNE-DAQ by
1.18.0