DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
oks
src
oks_utils.hpp
Go to the documentation of this file.
1
// DUNE DAQ modification notice:
2
// This file has been modified from the original ATLAS oks source for the DUNE DAQ project.
3
// Fork baseline commit: oks-08-03-04 (2022-04-14).
4
// Renamed since fork: yes (from src/oks_utils.h to src/oks_utils.hpp).
5
6
#ifndef OKS_KERNEL_UTILS_H
7
#define OKS_KERNEL_UTILS_H
8
9
#include "
oks/exceptions.hpp
"
10
11
#include <boost/date_time/posix_time/posix_time_types.hpp>
12
#include <boost/date_time/gregorian/gregorian_types.hpp>
13
14
#include <map>
15
#include <string>
16
17
namespace
dunedaq
{
18
namespace
oks
{
19
20
class
OksClass
;
21
class
OksObject
;
22
class
OksXmlInputStream
;
23
class
OksFile
;
24
struct
OksAliasTable
;
25
class
OksKernel
;
26
27
// read date and time strings from OKS files (oks::Date, oks::Time or Boost ISO strings)
28
29
boost::posix_time::ptime
str2time
(
const
char
* value,
size_t
len,
const
char
* file_name =
nullptr
);
30
boost::gregorian::date
str2date
(
const
char
* value,
size_t
len);
31
32
33
// the structure for efficient search of objects to be re-read or to be deleted during reload
34
35
struct
ReloadObjects
{
36
37
38
template
<
typename
T>
39
using
map_str_t
= std::map<std::string, T>;
40
41
std::map< const OksClass *, map_str_t<OksObject *> * >
data
;
42
std::vector<OksObject *>
created
;
43
44
~ReloadObjects
();
45
void
put
(
OksObject
*
obj
);
46
OksObject
*
pop
(
const
OksClass
* c,
const
std::string&
id
);
47
};
48
49
50
// the structure to pass common parameters to various read() methods of OksData and OksObject class
51
52
struct
ReadFileParams
{
53
OksFile
*
f
;
54
OksXmlInputStream
&
s
;
55
OksAliasTable
*
alias_table
;
56
OksKernel
*
oks_kernel
;
57
char
format
;
58
ReloadObjects
*
reload_objects
;
59
const
char
*
object_tag
;
60
size_t
object_tag_len
;
61
OksObject
*
owner
;
62
std::string
tmp
;
63
64
ReadFileParams
(
OksFile
* f_,
OksXmlInputStream
& s_,
OksAliasTable
* t_,
OksKernel
* k_,
char
m_,
ReloadObjects
* l_) :
65
f
(f_),
s
(s_),
alias_table
(t_),
oks_kernel
(k_),
format
(m_),
reload_objects
(l_) {
init
(); }
66
67
void
init
();
68
};
69
70
71
// 17-SEP-2009: for compatibility with previous OKS versions
72
// FIXME: remove later ...
73
74
class
Date
{
75
76
public
:
77
78
Date
(
const
char
* s) {
set
(s);}
// dd/mm/[yy]yy
79
80
virtual
~Date
() { ; }
81
82
void
set
(
const
char
*);
83
84
long
year
()
const
{
return
p_tm
.tm_year;}
85
unsigned
short
month
()
const
{
return
p_tm
.tm_mon;}
86
unsigned
short
day
()
const
{
return
p_tm
.tm_mday;}
87
88
virtual
std::string
str
()
const
;
89
90
91
protected
:
92
93
struct
tm
p_tm
;
94
95
};
96
97
std::ostream&
operator<<
(std::ostream&,
const
Date
&);
98
99
100
class
Time
:
public
Date
{
101
102
public
:
103
104
Time
(
const
char
* s) :
Date
(s) {
/*set(s);*/
}
// dd/mm/[yy]yy hh:mm[:ss]
105
106
virtual
~Time
() { ; }
107
108
unsigned
short
hour
()
const
{
return
p_tm
.tm_hour;}
109
unsigned
short
min
()
const
{
return
p_tm
.tm_min;}
110
unsigned
short
sec
()
const
{
return
p_tm
.tm_sec;}
111
112
virtual
std::string
str
()
const
;
113
};
114
115
std::ostream&
operator<<
(std::ostream&,
const
Time&);
116
117
118
}
// namespace oks
119
}
// namespace dunedaq
120
121
#endif
dunedaq::oks::Date
Definition
oks_utils.hpp:74
dunedaq::oks::Date::day
unsigned short day() const
Definition
oks_utils.hpp:86
dunedaq::oks::Date::p_tm
struct tm p_tm
Definition
oks_utils.hpp:93
dunedaq::oks::Date::~Date
virtual ~Date()
Definition
oks_utils.hpp:80
dunedaq::oks::Date::str
virtual std::string str() const
Definition
time.cpp:141
dunedaq::oks::Date::year
long year() const
Definition
oks_utils.hpp:84
dunedaq::oks::Date::Date
Date(const char *s)
Definition
oks_utils.hpp:78
dunedaq::oks::Date::month
unsigned short month() const
Definition
oks_utils.hpp:85
dunedaq::oks::OksClass
The OKS class.
Definition
class.hpp:205
dunedaq::oks::OksFile
Provides interface to the OKS XML schema and data files.
Definition
file.hpp:345
dunedaq::oks::OksKernel
Provides interface to the OKS kernel.
Definition
kernel.hpp:582
dunedaq::oks::OksObject
OksObject describes instance of OksClass.
Definition
object.hpp:841
dunedaq::oks::OksXmlInputStream
Definition
xml.hpp:364
dunedaq::oks::Time::str
virtual std::string str() const
Definition
time.cpp:152
dunedaq::oks::Time::Time
Time(const char *s)
Definition
oks_utils.hpp:104
dunedaq::oks::Time::~Time
virtual ~Time()
Definition
oks_utils.hpp:106
dunedaq::oks::Time::sec
unsigned short sec() const
Definition
oks_utils.hpp:110
dunedaq::oks::Time::hour
unsigned short hour() const
Definition
oks_utils.hpp:108
dunedaq::oks::Time::min
unsigned short min() const
Definition
oks_utils.hpp:109
exceptions.hpp
dunedaq::oks
Definition
OksConfiguration.hpp:24
dunedaq::oks::str2time
boost::posix_time::ptime str2time(const char *value, size_t len, const char *file_name=nullptr)
dunedaq::oks::operator<<
std::ostream & operator<<(std::ostream &s, const oks::exception &ex)
Definition
exceptions.hpp:44
dunedaq::oks::str2date
boost::gregorian::date str2date(const char *value, size_t len)
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::obj
msgpack::object obj
Definition
Serialization.hpp:257
dunedaq::set
Monitoring thread not set
Definition
OpMonManager.hpp:31
dunedaq::oks::OksAliasTable
The struct OksAliasTable is used to support aliases.
Definition
kernel.hpp:451
dunedaq::oks::ReadFileParams::init
void init()
Definition
object.cpp:355
dunedaq::oks::ReadFileParams::s
OksXmlInputStream & s
Definition
oks_utils.hpp:54
dunedaq::oks::ReadFileParams::ReadFileParams
ReadFileParams(OksFile *f_, OksXmlInputStream &s_, OksAliasTable *t_, OksKernel *k_, char m_, ReloadObjects *l_)
Definition
oks_utils.hpp:64
dunedaq::oks::ReadFileParams::reload_objects
ReloadObjects * reload_objects
Definition
oks_utils.hpp:58
dunedaq::oks::ReadFileParams::alias_table
OksAliasTable * alias_table
Definition
oks_utils.hpp:55
dunedaq::oks::ReadFileParams::object_tag
const char * object_tag
Definition
oks_utils.hpp:59
dunedaq::oks::ReadFileParams::oks_kernel
OksKernel * oks_kernel
Definition
oks_utils.hpp:56
dunedaq::oks::ReadFileParams::format
char format
Definition
oks_utils.hpp:57
dunedaq::oks::ReadFileParams::owner
OksObject * owner
Definition
oks_utils.hpp:61
dunedaq::oks::ReadFileParams::object_tag_len
size_t object_tag_len
Definition
oks_utils.hpp:60
dunedaq::oks::ReadFileParams::tmp
std::string tmp
Definition
oks_utils.hpp:62
dunedaq::oks::ReadFileParams::f
OksFile * f
Definition
oks_utils.hpp:53
dunedaq::oks::ReloadObjects
Definition
oks_utils.hpp:35
dunedaq::oks::ReloadObjects::pop
OksObject * pop(const OksClass *c, const std::string &id)
Definition
kernel.cpp:3189
dunedaq::oks::ReloadObjects::map_str_t
std::map< std::string, T > map_str_t
Definition
oks_utils.hpp:39
dunedaq::oks::ReloadObjects::put
void put(OksObject *obj)
Definition
kernel.cpp:3181
dunedaq::oks::ReloadObjects::created
std::vector< OksObject * > created
Definition
oks_utils.hpp:42
dunedaq::oks::ReloadObjects::data
std::map< const OksClass *, map_str_t< OksObject * > * > data
Definition
oks_utils.hpp:41
dunedaq::oks::ReloadObjects::~ReloadObjects
~ReloadObjects()
Definition
kernel.cpp:3208
Generated on
for DUNE-DAQ by
1.17.0