DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
module.cpp
Go to the documentation of this file.
1
9#include "pybind11/pybind11.h"
10#include "pybind11/stl.h"
11#include "oks/kernel.hpp"
12
13namespace py = pybind11;
14
16
17
18PYBIND11_MODULE(_daq_oks_py, m)
19{
20
21 using namespace pybind11::literals; // to bring in the `_a` literal
22
23
24 m.doc() = "C++ implementation of the application dal modules";
25
26 py::class_<OksFile>(m, "OksFile");
27 // py::class_<OksFile::Map>(m, "OksFileMap");
28 py::class_<OksClass, std::unique_ptr<OksClass, py::nodelete>>(m, "OksClass")
29 .def("get_name",&OksClass::get_name, py::return_value_policy::reference_internal)
30 .def("get_description",&OksClass::get_description, py::return_value_policy::reference_internal)
31 .def("get_is_abstract",&OksClass::get_is_abstract)
32 .def("all_super_classes",&OksClass::all_super_classes, py::return_value_policy::reference_internal)
33 .def("direct_super_classes",&OksClass::direct_super_classes, py::return_value_policy::reference_internal)
34 .def("all_sub_classes",&OksClass::all_sub_classes, py::return_value_policy::reference_internal)
35 ;
36 py::class_<OksObject, std::unique_ptr<OksObject, py::nodelete>>(m, "OksObject");
37
38
39 py::class_<OksKernel>(m, "OksKernel")
40 .def(py::init<bool, bool, bool, bool, const char *, std::string>(),
41 "silence_mode"_a = false, "verbose_mode"_a = false, "profiling_mode"_a = false, "allow_repository"_a = true, "version"_a = nullptr, "branch_name"_a = "")
42 .def("get_host_name",&OksKernel::get_host_name)
43 .def("get_domain_name",&OksKernel::get_domain_name)
44 .def("get_user_name",&OksKernel::get_user_name)
45 // ---
46 // .def("load_file",&OksKernel::load_file, "name"_a, "bind"_a = true)
47 // .def("load_schema",&OksKernel::load_schema, "name"_a, "parent"_a = nullptr)
48 // .def("close_all_schema",&OksKernel::close_all_schema)
49
50 // ---
51 // .def("load_data",&OksKernel::load_file, "name"_a, "bind"_a = true)
52 // .def("close_all_data",&OksKernel::close_all_data)
53 // --
54 // .def("classes",&OksKernel::classes, py::return_value_policy::reference_internal)
55 // .def("number_of_classes",&OksKernel::number_of_classes)
56 // .def("objects",&OksKernel::objects, py::return_value_policy::reference_internal)
57 // .def("number_of_objects",&OksKernel::number_of_objects)
58 //
59 // .def("find_class",&OksKernel::find_class)
60 // .def("find_object",&OksKernel::find_object, py::return_value_policy::reference_internal)
61
62 //
63 // .def("get_test_duplicated_objects_via_inheritance_mode", &OksKernel::get_test_duplicated_objects_via_inheritance_mode)
64 // .def("set_test_duplicated_objects_via_inheritance_mode", &OksKernel::set_test_duplicated_objects_via_inheritance_mode)
65 // .def("get_allow_duplicated_objects_mode", &OksKernel::get_allow_duplicated_objects_mode)
66 // .def("set_allow_duplicated_objects_mode", &OksKernel::set_allow_duplicated_objects_mode)
67
68
69
70
71 // get_verbose_mode
72 // set_verbose_mode
73 .def("get_verbose_mode",&OksKernel::get_verbose_mode)
74 .def("set_verbose_mode",&OksKernel::set_verbose_mode)
75
76 // get_silence_mode
77 // set_silence_mode
78 .def("get_silence_mode",&OksKernel::get_silence_mode)
79 .def("set_silence_mode",&OksKernel::set_silence_mode)
80
81 // set_profiling_mode
82 .def("set_profiling_mode",&OksKernel::set_profiling_mode)
83
84 // get_allow_duplicated_classes_mode
85 // set_allow_duplicated_classes_mode
86 .def("get_allow_duplicated_classes_mode",&OksKernel::get_allow_duplicated_classes_mode)
87 .def("set_allow_duplicated_classes_mode",&OksKernel::set_allow_duplicated_classes_mode)
88
89 // get_allow_duplicated_objects_mode
90 // set_allow_duplicated_objects_mode
91 .def("get_allow_duplicated_objects_mode",&OksKernel::get_allow_duplicated_objects_mode)
92 .def("set_allow_duplicated_objects_mode",&OksKernel::set_allow_duplicated_objects_mode)
93
94 // get_test_duplicated_objects_via_inheritance_mode
95 // set_test_duplicated_objects_via_inheritance_mode
96 .def("get_test_duplicated_objects_via_inheritance_mode",&OksKernel::get_test_duplicated_objects_via_inheritance_mode)
97 .def("set_test_duplicated_objects_via_inheritance_mode",&OksKernel::set_test_duplicated_objects_via_inheritance_mode)
98
100 // find_schema_file
101 // find_data_file
102 .def("find_schema_file",&OksKernel::find_schema_file, py::return_value_policy::reference_internal)
103 .def("find_data_file",&OksKernel::find_data_file, py::return_value_policy::reference_internal)
104
105 // create_list_of_schema_classes
106 // create_list_of_data_objects
107 .def("create_list_of_schema_classes",&OksKernel::create_list_of_schema_classes, py::return_value_policy::reference_internal)
108 .def("create_list_of_data_objects",&OksKernel::create_list_of_data_objects, py::return_value_policy::reference_internal)
109
110 // create_file_info
111 .def("create_file_info",&OksKernel::create_file_info, py::return_value_policy::reference_internal)
112
113 // get_file_path
114 .def("get_file_path",&OksKernel::get_file_path, "path"_a, "parent_file"_a = nullptr, "strict_path"_a=true)
115
116 // get_repository_version
117 .def("get_repository_version",&OksKernel::get_repository_version)
118
119 // is_user_repository_created()
120 .def("is_user_repository_created",&OksKernel::is_user_repository_created)
121
122 // get_user_repository_root
123 // set_user_repository_root
124 .def("get_user_repository_root",&OksKernel::get_user_repository_root)
125 .def("set_user_repository_root",&OksKernel::set_user_repository_root, "path"_a, "version"_a = true)
126
127 // get_includes
128 .def("get_includes",&OksKernel::get_includes)
129 // k_close_dangling_includes
130
131 // load_file
132 .def("load_file",&OksKernel::load_file, "name"_a, "bind"_a = true, py::return_value_policy::reference_internal)
133 // load_schema
134 .def("load_schema",&OksKernel::load_schema, "name"_a, "parent"_a = nullptr, py::return_value_policy::reference_internal)
135 // new_schema
136 .def("new_schema",&OksKernel::new_schema, "name"_a, py::return_value_policy::reference_internal)
137 // save_schema
138 // .def("save_schema",py::overload_cast<OksFile*, bool, OksFile*>(&OksKernel::save_schema), "file_h"_a, "force"_a = false, "true_file_h"_a = nullptr)
139 // .def("save_schema",py::overload_cast<OksFile*, bool, const OksClass::Map&>(&OksKernel::save_schema), "file_h"_a, "force"_a, "classes")
140 // backup_schema
141 .def("backup_schema",&OksKernel::backup_schema, "pf"_a, "suffix"_a = ".bak")
142 // save_as_schema
143 .def("save_as_schema",&OksKernel::save_as_schema, "name"_a, "file_h"_a)
144 // save_all_schema
145 .def("save_all_schema",&OksKernel::save_all_schema)
146 // close_schema
147 .def("close_schema",&OksKernel::close_schema, "file_h"_a)
148 // close_all_schema
149 .def("close_all_schema",&OksKernel::close_all_schema)
150 // set_active_schema
151 .def("set_active_schema",&OksKernel::set_active_schema, "file_h"_a)
152 // get_active_schema
153 .def("get_active_schema",&OksKernel::get_active_schema)
154 // schema_files
155 .def("schema_files",&OksKernel::schema_files, py::return_value_policy::reference_internal)
156
159
160 // load_data
161 .def("load_data",&OksKernel::load_data, "name"_a, "bind"_a = true, py::return_value_policy::reference_internal)
162 // reload_data
163 .def("reload_data",&OksKernel::reload_data, "files"_a, "allow_schema_extension"_a = true)
164
165 // new_data
166 .def("new_data",&OksKernel::new_data, "name"_a, "logical_name"_a = "", "type"_a = "", py::return_value_policy::reference_internal)
167
168 // // save_data
169 // // backup_data
170 // // save_as_data
171 // save_all_data
172 .def("save_all_data", &OksKernel::save_all_data, "force_defaults"_a = false)
173 // // close_data
174 // close_all_data
175 .def("close_all_data",&OksKernel::close_all_data)
176
177 // set_active_data
178 .def("set_active_data", &OksKernel::set_active_data)
179 // get_active_daat
180 .def("get_active_data", &OksKernel::get_active_data, py::return_value_policy::reference_internal)
181 // data_files
182 .def("data_files", &OksKernel::data_files, py::return_value_policy::reference_internal)
183
184 // // create_list_of_updated_data_files
185 // // get_modified_files
186 // // get_repository_dirs
187 // // commit_repository
188 // // tag_repository
189 // // get_repository_checkout_ts
190 // // update_repository
191 // // get_repository_versions_diff
192 // // get_repository_unmerged_files
193 // // get_repository_versions
194 // // get_repository_versions_by_hash
195 // // get_repository_versions_by_date
196 // // read_repository_version
197
198 // insert_repository_dir
199 .def("insert_repository_dir",&OksKernel::insert_repository_dir)
200 // remove_repository_dir
201 .def("remove_repository_dir",&OksKernel::remove_repository_dir)
202 // classes
203 .def("classes",&OksKernel::classes, py::return_value_policy::reference_internal)
204 // number_of_classes
205 .def("number_of_classes",&OksKernel::number_of_classes)
206 // objects
207 .def("objects",&OksKernel::objects, py::return_value_policy::reference_internal)
208 // number_of_objects
209 .def("number_of_objects",&OksKernel::number_of_objects)
210 // find_class
211 .def("find_class",static_cast<OksClass*(OksKernel::*)(const std::string&) const>(&OksKernel::find_class), "class_name"_a)
212 // // get_all_classes
213 // registrate_all_classes
214 .def("registrate_all_classes",&OksKernel::registrate_all_classes)
215 // is_dangling
216 // Class
217 // .def("is_dangling",&OksKernel::is_dangling)
218 // Object
219 // .def("is_dangling",&OksKernel::is_dangling)
220 // // subscribe_create_class
221 // // subscribe_change_class
222 // // subscribe_create_object
223 // // subscribe_delete_object
224 // bind_objects
225 .def("bind_objects",&OksKernel::bind_objects)
226 // get_bind_objects_status
227 .def("get_bind_objects_status",&OksKernel::get_bind_objects_status)
228 // get_bind_classes_status
229 .def("get_bind_classes_status",&OksKernel::get_bind_classes_status)
230 // unset_repository_created
231 .def("unset_repository_created",&OksKernel::unset_repository_created)
232
233
234 // // GetVersion
235 // // get_skip_string_range
236 // // set_skip_string_range
237 // // check_read_only
238 // // get_repository_root
239 // // get_repository_mapping_dir
240 // // get_tmp_file
241 // // get_cwd
242 // // reset_cwd
243 ;
244
245
246}
247
248} // namespace dunedaq::oks::python
The OKS class.
Definition class.hpp:200
bool get_is_abstract() const noexcept
Definition class.hpp:384
const FList * all_sub_classes() const noexcept
Definition class.hpp:466
const std::string & get_name() const noexcept
Definition class.hpp:363
const FList * all_super_classes() const noexcept
Definition class.hpp:408
const std::string & get_description() const noexcept
Definition class.hpp:368
const std::list< std::string * > * direct_super_classes() const noexcept
Definition class.hpp:413
Provides interface to the OKS kernel.
Definition kernel.hpp:577
OksFile * get_active_schema() const
Get active OKS schema file.
Definition kernel.hpp:1210
OksFile * get_active_data() const
Get active OKS data file.
Definition kernel.hpp:1481
const std::string & get_user_repository_root() const
Get user OKS repository root.
Definition kernel.cpp:370
OksFile * load_file(const std::string &name, bool bind=true)
Load OKS database file.
Definition kernel.cpp:1788
static std::string & get_host_name()
Get hostname of given process.
Definition kernel.cpp:429
static std::string & get_user_name()
Get username of given process.
Definition kernel.cpp:468
OksFile * load_data(const std::string &name, bool bind=true)
Load OKS data file.
Definition kernel.cpp:3559
void remove_repository_dir(const std::string &dir)
Remove repository search directory.
Definition kernel.cpp:1424
const OksFile::Map & data_files() const
Get all data files.
Definition kernel.hpp:1493
OksFile * new_data(const std::string &name, const std::string &logical_name="", const std::string &type="")
Create OKS data file.
Definition kernel.cpp:3718
std::list< OksObject * > * create_list_of_data_objects(OksFile *) const
Creates list of objects which belong to given file.
Definition kernel.cpp:4327
void set_active_schema(OksFile *file_h)
Set active OKS schema file.
Definition kernel.cpp:2903
OksFile * find_data_file(const std::string &s) const
Finds OKS data file.
Definition kernel.cpp:2287
bool is_user_repository_created() const
Definition kernel.hpp:942
void registrate_all_classes(bool skip_registered=false)
The method rebuilds all classes taking into account inheritance.
Definition kernel.cpp:4499
void set_user_repository_root(const std::string &path, const std::string &version="")
Set user OKS repository root.
Definition kernel.cpp:389
const std::string & get_bind_classes_status() const noexcept
Return status of oks classes binding.
Definition kernel.hpp:2007
const OksObject::Set & objects() const
Get objects.
Definition kernel.hpp:1790
OksFile * create_file_info(const std::string &short_file_name, const std::string &file_name)
Creates OKS file descriptor.
Definition kernel.cpp:1568
bool get_verbose_mode() const
Get status of verbose mode. The method returns true, if the verbose mode is switched 'On'.
Definition kernel.hpp:665
bool get_test_duplicated_objects_via_inheritance_mode() const
Get status of test inherited duplicated objects mode. The method returns true, if the mode is switche...
Definition kernel.hpp:765
void backup_schema(OksFile *pf, const char *suffix=".bak")
Backup OKS schema file.
Definition kernel.cpp:2554
std::string get_file_path(const std::string &path, const OksFile *parent_file=0, bool strict_paths=true) const
Calculates full path to file.
Definition kernel.cpp:1660
void reload_data(std::set< OksFile * > &files, bool allow_schema_extension=true)
Reload OKS data files.
Definition kernel.cpp:3211
bool get_allow_duplicated_objects_mode() const
Get status of duplicated objects mode. The method returns true, if the duplicated objects mode is swi...
Definition kernel.hpp:741
const OksClass::Map & classes() const
Get classes.
Definition kernel.hpp:1767
OksFile * find_schema_file(const std::string &s) const
Finds OKS schema file.
Definition kernel.cpp:2281
void set_allow_duplicated_objects_mode(const bool b)
Set status of duplicated objects mode. To switch 'On'/'Off' use the method's parameter:
Definition kernel.hpp:789
void set_silence_mode(const bool b)
Set status of silence mode. To switch 'On'/'Off' use the method's parameter:
Definition kernel.hpp:698
void unset_repository_created()
Set repository created flag to false to avoid created repository removal in destructor;.
Definition kernel.cpp:4952
void set_profiling_mode(const bool b)
Set status of profiling mode. To switch 'On'/'Off' use the method's parameter:
Definition kernel.cpp:1439
bool get_allow_duplicated_classes_mode() const
Get status of duplicated classes mode. The method returns true, if the duplicated classes mode is swi...
Definition kernel.hpp:730
size_t number_of_classes() const
Get number of classes.
Definition kernel.hpp:1776
void close_all_data()
Close all OKS data files.
Definition kernel.cpp:4243
void set_test_duplicated_objects_via_inheritance_mode(const bool b)
Set status of test inherited duplicated objects mode. To switch 'On'/'Off' use the method's parameter...
Definition kernel.hpp:756
void bind_objects()
Bind oks objects.
Definition kernel.cpp:4361
size_t number_of_objects() const
Get number of objects.
Definition kernel.hpp:1799
const std::string & get_repository_version()
Definition kernel.hpp:936
void save_as_schema(const std::string &name, OksFile *file_h)
Save OKS schema file under new name.
Definition kernel.cpp:2755
const std::string & get_bind_objects_status() const noexcept
Return status of oks objects binding.
Definition kernel.hpp:1995
OksFile * new_schema(const std::string &name)
Create OKS schema file.
Definition kernel.cpp:2485
void set_allow_duplicated_classes_mode(const bool b)
Set status of duplicated classes mode. To switch 'On'/'Off' use the method's parameter:
Definition kernel.hpp:777
void save_all_schema()
Save all OKS schema files.
Definition kernel.cpp:2794
std::list< OksClass * > * create_list_of_schema_classes(OksFile *) const
Creates list of classes which belong to given file.
Definition kernel.cpp:2950
void save_all_data(bool force_defaults=false)
Save all OKS data files.
Definition kernel.cpp:4160
OksClass * find_class(const std::string &class_name) const
Find class by name (C++ string).
Definition kernel.hpp:1814
bool get_silence_mode() const
Get status of silence mode. The method returns true, if the silence mode is switched 'On'....
Definition kernel.hpp:686
void close_schema(OksFile *file_h)
Close OKS schema file.
Definition kernel.cpp:2820
void set_verbose_mode(const bool b)
Set status of verbose mode. To switch 'On'/'Off' use the method's parameter:
Definition kernel.hpp:677
void close_all_schema()
Close all OKS schema files.
Definition kernel.cpp:2883
static std::string & get_domain_name()
Get domain name of host.
Definition kernel.cpp:447
void set_active_data(OksFile *file_h)
Set active OKS data file.
Definition kernel.cpp:4278
OksFile * load_schema(const std::string &name, const OksFile *parent=0)
Load OKS schema file.
Definition kernel.cpp:2297
std::string insert_repository_dir(const std::string &dir, bool push_back=true)
Insert repository search directory.
Definition kernel.cpp:1398
const OksFile::Map & schema_files() const
Get all schema files.
Definition kernel.hpp:1223
void get_includes(const std::string &file_name, std::set< std::string > &includes, bool use_repository_name=false)
Opens file and reads its shallow includes.
Definition kernel.cpp:1914
PYBIND11_MODULE(_daq_oks_py, m)
Definition module.cpp:18