DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
oksutils
apps
oks_refresh.cxx
Go to the documentation of this file.
1
//
2
// DUNE DAQ modification notice:
3
// This file has been modified from the original ATLAS oks_utils source for the DUNE DAQ project.
4
// Fork baseline commit: c2e7dfc7 (2022-03-30).
5
// Renamed since fork: yes (from src/bin/oks_refresh.cpp to apps/oks_refresh.cxx).
6
//
7
14
15
#include <stdlib.h>
16
17
#include <boost/program_options.hpp>
18
19
#include "
oks/kernel.hpp
"
20
21
using namespace
dunedaq
;
22
using namespace
dunedaq::oks
;
23
24
int
25
main
(
int
argc,
char
** argv)
26
{
27
boost::program_options::options_description desc(
"This program opens and saves oks files to refresh their format"
);
28
29
std::vector<std::string>
include
;
30
std::vector<std::string> files;
31
bool
show_hidden_attributes =
false
;
32
33
try
{
34
desc.add_options()(
"files,f"
,
35
boost::program_options::value<std::vector<std::string>>(&files)->multitoken()->required(),
36
"oks files"
)(
"include,i"
,
37
boost::program_options::value<std::vector<std::string>>(&
include
)->multitoken(),
38
"preload oks files (to fix missing includes)"
)(
39
"show-all-attributes,x"
,
"show hidden attributes with values equal to defaults"
)(
"help,h"
,
"Print help message"
);
40
41
boost::program_options::variables_map vm;
42
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
43
44
boost::program_options::notify(vm);
45
46
if
(vm.count(
"help"
)) {
47
std::cout << desc << std::endl;
48
return
EXIT_SUCCESS;
49
}
50
51
if
(vm.count(
"show-all-attributes"
))
52
show_hidden_attributes =
true
;
53
}
catch
(std::exception& ex) {
54
std::cerr <<
"Command line parsing errors occurred:\n"
<< ex.what() << std::endl;
55
return
EXIT_FAILURE;
56
}
57
58
for
(
const
auto
& x : files)
59
try
{
60
std::cout <<
"processing file "
<< x << std::endl;
61
OksKernel
kernel(
false
,
false
,
false
,
false
);
62
63
for
(
const
auto
& i :
include
)
64
kernel.
load_file
(i);
65
66
auto
f = kernel.
load_file
(x);
67
68
if
(f->get_oks_format() ==
"schema"
)
69
kernel.
save_schema
(f);
70
else
71
kernel.
save_data
(f,
true
,
nullptr
, show_hidden_attributes);
72
}
catch
(
oks::exception
& ex) {
73
oks::log_timestamp
(
oks::Error
) <<
"Caught oks exception:\n"
<< ex << std::endl;
74
return
EXIT_FAILURE;
75
}
76
77
return
EXIT_SUCCESS;
78
}
dunedaq::oks::OksKernel
Provides interface to the OKS kernel.
Definition
kernel.hpp:615
dunedaq::oks::OksKernel::load_file
OksFile * load_file(const std::string &name, bool bind=true)
Load OKS database file.
Definition
kernel.cpp:1625
dunedaq::oks::OksKernel::save_schema
void save_schema(OksFile *file_h, bool force=false, OksFile *true_file_h=0)
Save OKS schema file.
Definition
kernel.cpp:2357
dunedaq::oks::OksKernel::save_data
void save_data(OksFile *file_h, bool ignore_bad_objects=false, OksFile *true_file_h=nullptr, bool force_defaults=false)
Save OKS data file.
Definition
kernel.cpp:3572
dunedaq::oks::exception
Definition
exceptions.hpp:19
main
int main(int argc, char *argv[])
Definition
emu_confgen.cxx:228
kernel.hpp
dunedaq::oks
Definition
SchemaCommand.hpp:17
dunedaq::oks::log_timestamp
std::ostream & log_timestamp(__LogSeverity__ severity=Log)
Definition
kernel.cpp:5470
dunedaq::oks::Error
@ Error
Definition
kernel.hpp:418
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
include
Definition
include.py:1
Generated on
for DUNE-DAQ by
1.18.0