DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
appmodel
pybindsrc
dal_methods.cpp
Go to the documentation of this file.
1
8
9
#include "pybind11/operators.h"
10
#include "pybind11/pybind11.h"
11
#include "pybind11/stl.h"
12
13
#include "
confmodel/DaqModule.hpp
"
14
#include "
confmodel/Session.hpp
"
15
16
#include "
appmodel/SmartDaqApplication.hpp
"
17
18
#include <sstream>
19
20
namespace
py = pybind11;
21
22
namespace
dunedaq::appmodel::python
{
23
24
struct
ObjectLocator
25
{
26
ObjectLocator
(
const
std::string& id_arg,
const
std::string& class_name_arg)
27
:
id
(id_arg)
28
,
class_name
(class_name_arg)
29
{
30
}
31
const
std::string
id
;
32
const
std::string
class_name
;
33
};
34
35
std::vector<ObjectLocator>
36
smart_daq_application_generate_modules
(
const
conffwk::Configuration
& confdb,
37
const
std::string& app_id,
38
const
std::string& session_id)
39
{
40
auto
app =
const_cast<
conffwk::Configuration
&
>
(confdb).get<appmodel::SmartDaqApplication>(app_id);
41
auto
session
=
const_cast<
conffwk::Configuration
&
>
(confdb).get<confmodel::Session>(session_id);
42
43
auto
helper = std::make_shared<ConfigurationHelper>(
session
);
44
app->generate_modules(helper);
45
std::vector<ObjectLocator> mods;
46
for
(
auto
mod : app->get_modules()) {
47
mods.push_back({ mod->UID(), mod->class_name() });
48
}
49
return
mods;
50
}
51
52
void
53
register_dal_methods
(py::module& m)
54
{
55
py::class_<ObjectLocator>(m,
"ObjectLocator"
)
56
.def(py::init<const std::string&, const std::string&>())
57
.def_readonly(
"id"
, &
ObjectLocator::id
)
58
.def_readonly(
"class_name"
, &
ObjectLocator::class_name
);
59
60
m.def(
"smart_daq_application_generate_modules"
, &
smart_daq_application_generate_modules
,
"Generate DaqModules"
);
61
}
62
63
}
// namespace dunedaq::appmodel::python
SmartDaqApplication.hpp
DaqModule.hpp
Session.hpp
conffwk.Configuration
Definition
Configuration.py:1
dunedaq::appmodel::python
Definition
dal_methods.cpp:22
dunedaq::appmodel::python::smart_daq_application_generate_modules
std::vector< ObjectLocator > smart_daq_application_generate_modules(const conffwk::Configuration &confdb, const std::string &app_id, const std::string &session_id)
Definition
dal_methods.cpp:36
dunedaq::appmodel::python::register_dal_methods
void register_dal_methods(py::module &m)
Definition
dal_methods.cpp:53
session
Definition
session.py:1
dunedaq::appmodel::python::ObjectLocator::ObjectLocator
ObjectLocator(const std::string &id_arg, const std::string &class_name_arg)
Definition
dal_methods.cpp:26
dunedaq::appmodel::python::ObjectLocator::class_name
const std::string class_name
Definition
dal_methods.cpp:32
dunedaq::appmodel::python::ObjectLocator::id
const std::string id
Definition
dal_methods.cpp:31
Generated on
for DUNE-DAQ by
1.18.0