Line data Source code
1 : /**
2 : * @file module.cpp
3 : *
4 : * This is part of the DUNE DAQ Software Suite, copyright 2020.
5 : * Licensing/copyright details are in the COPYING file that you should have
6 : * received with this code.
7 : */
8 :
9 : #include "pybind11/pybind11.h"
10 : #include "pybind11/stl.h"
11 : #include "oks/kernel.hpp"
12 :
13 : namespace py = pybind11;
14 :
15 : namespace dunedaq::oks::python {
16 :
17 :
18 0 : PYBIND11_MODULE(_daq_oks_py, m)
19 : {
20 :
21 0 : using namespace pybind11::literals; // to bring in the `_a` literal
22 :
23 :
24 0 : m.doc() = "C++ implementation of the application dal modules";
25 :
26 0 : py::class_<OksFile>(m, "OksFile");
27 : // py::class_<OksFile::Map>(m, "OksFileMap");
28 0 : py::class_<OksClass, std::unique_ptr<OksClass, py::nodelete>>(m, "OksClass")
29 0 : .def("get_name",&OksClass::get_name, py::return_value_policy::reference_internal)
30 0 : .def("get_description",&OksClass::get_description, py::return_value_policy::reference_internal)
31 0 : .def("get_is_abstract",&OksClass::get_is_abstract)
32 0 : .def("all_super_classes",&OksClass::all_super_classes, py::return_value_policy::reference_internal)
33 0 : .def("direct_super_classes",&OksClass::direct_super_classes, py::return_value_policy::reference_internal)
34 0 : .def("all_sub_classes",&OksClass::all_sub_classes, py::return_value_policy::reference_internal)
35 : ;
36 0 : py::class_<OksObject, std::unique_ptr<OksObject, py::nodelete>>(m, "OksObject");
37 :
38 :
39 0 : py::class_<OksKernel>(m, "OksKernel")
40 0 : .def(py::init<bool, bool, bool, bool, const char *, std::string>(),
41 0 : "silence_mode"_a = false, "verbose_mode"_a = false, "profiling_mode"_a = false, "allow_repository"_a = true, "version"_a = nullptr, "branch_name"_a = "")
42 0 : .def("get_host_name",&OksKernel::get_host_name)
43 0 : .def("get_domain_name",&OksKernel::get_domain_name)
44 0 : .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 0 : .def("get_verbose_mode",&OksKernel::get_verbose_mode)
74 0 : .def("set_verbose_mode",&OksKernel::set_verbose_mode)
75 :
76 : // get_silence_mode
77 : // set_silence_mode
78 0 : .def("get_silence_mode",&OksKernel::get_silence_mode)
79 0 : .def("set_silence_mode",&OksKernel::set_silence_mode)
80 :
81 : // set_profiling_mode
82 0 : .def("set_profiling_mode",&OksKernel::set_profiling_mode)
83 :
84 : // get_allow_duplicated_classes_mode
85 : // set_allow_duplicated_classes_mode
86 0 : .def("get_allow_duplicated_classes_mode",&OksKernel::get_allow_duplicated_classes_mode)
87 0 : .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 0 : .def("get_allow_duplicated_objects_mode",&OksKernel::get_allow_duplicated_objects_mode)
92 0 : .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 0 : .def("get_test_duplicated_objects_via_inheritance_mode",&OksKernel::get_test_duplicated_objects_via_inheritance_mode)
97 0 : .def("set_test_duplicated_objects_via_inheritance_mode",&OksKernel::set_test_duplicated_objects_via_inheritance_mode)
98 :
99 : //! get_mutex
100 : // find_schema_file
101 : // find_data_file
102 0 : .def("find_schema_file",&OksKernel::find_schema_file, py::return_value_policy::reference_internal)
103 0 : .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 0 : .def("create_list_of_schema_classes",&OksKernel::create_list_of_schema_classes, py::return_value_policy::reference_internal)
108 0 : .def("create_list_of_data_objects",&OksKernel::create_list_of_data_objects, py::return_value_policy::reference_internal)
109 :
110 : // create_file_info
111 0 : .def("create_file_info",&OksKernel::create_file_info, py::return_value_policy::reference_internal)
112 :
113 : // get_file_path
114 0 : .def("get_file_path",&OksKernel::get_file_path, "path"_a, "parent_file"_a = nullptr, "strict_path"_a=true)
115 :
116 : // get_repository_version
117 0 : .def("get_repository_version",&OksKernel::get_repository_version)
118 :
119 : // is_user_repository_created()
120 0 : .def("is_user_repository_created",&OksKernel::is_user_repository_created)
121 :
122 : // get_user_repository_root
123 : // set_user_repository_root
124 0 : .def("get_user_repository_root",&OksKernel::get_user_repository_root)
125 0 : .def("set_user_repository_root",&OksKernel::set_user_repository_root, "path"_a, "version"_a = true)
126 :
127 : // get_includes
128 0 : .def("get_includes",&OksKernel::get_includes)
129 : // k_close_dangling_includes
130 :
131 : // load_file
132 0 : .def("load_file",&OksKernel::load_file, "name"_a, "bind"_a = true, py::return_value_policy::reference_internal)
133 : // load_schema
134 0 : .def("load_schema",&OksKernel::load_schema, "name"_a, "parent"_a = nullptr, py::return_value_policy::reference_internal)
135 : // new_schema
136 0 : .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 0 : .def("backup_schema",&OksKernel::backup_schema, "pf"_a, "suffix"_a = ".bak")
142 : // save_as_schema
143 0 : .def("save_as_schema",&OksKernel::save_as_schema, "name"_a, "file_h"_a)
144 : // save_all_schema
145 0 : .def("save_all_schema",&OksKernel::save_all_schema)
146 : // close_schema
147 0 : .def("close_schema",&OksKernel::close_schema, "file_h"_a)
148 : // close_all_schema
149 0 : .def("close_all_schema",&OksKernel::close_all_schema)
150 : // set_active_schema
151 0 : .def("set_active_schema",&OksKernel::set_active_schema, "file_h"_a)
152 : // get_active_schema
153 0 : .def("get_active_schema",&OksKernel::get_active_schema)
154 : // schema_files
155 0 : .def("schema_files",&OksKernel::schema_files, py::return_value_policy::reference_internal)
156 :
157 : //! create_list_of_upsated_schema_file
158 : //! get_updated_repository_files
159 :
160 : // load_data
161 0 : .def("load_data",&OksKernel::load_data, "name"_a, "bind"_a = true, py::return_value_policy::reference_internal)
162 : // reload_data
163 0 : .def("reload_data",&OksKernel::reload_data, "files"_a, "allow_schema_extension"_a = true)
164 :
165 : // new_data
166 0 : .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 0 : .def("save_all_data", &OksKernel::save_all_data, "force_defaults"_a = false)
173 : // // close_data
174 : // close_all_data
175 0 : .def("close_all_data",&OksKernel::close_all_data)
176 :
177 : // set_active_data
178 0 : .def("set_active_data", &OksKernel::set_active_data)
179 : // get_active_daat
180 0 : .def("get_active_data", &OksKernel::get_active_data, py::return_value_policy::reference_internal)
181 : // data_files
182 0 : .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 0 : .def("insert_repository_dir",&OksKernel::insert_repository_dir)
200 : // remove_repository_dir
201 0 : .def("remove_repository_dir",&OksKernel::remove_repository_dir)
202 : // classes
203 0 : .def("classes",&OksKernel::classes, py::return_value_policy::reference_internal)
204 : // number_of_classes
205 0 : .def("number_of_classes",&OksKernel::number_of_classes)
206 : // objects
207 0 : .def("objects",&OksKernel::objects, py::return_value_policy::reference_internal)
208 : // number_of_objects
209 0 : .def("number_of_objects",&OksKernel::number_of_objects)
210 : // find_class
211 0 : .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 0 : .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 0 : .def("bind_objects",&OksKernel::bind_objects)
226 : // get_bind_objects_status
227 0 : .def("get_bind_objects_status",&OksKernel::get_bind_objects_status)
228 : // get_bind_classes_status
229 0 : .def("get_bind_classes_status",&OksKernel::get_bind_classes_status)
230 : // unset_repository_created
231 0 : .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 0 : }
247 :
248 : } // namespace dunedaq::oks::python
|