1
- #include < MoniLog .h>
1
+ #include < MoniLogger .h>
2
2
3
3
namespace py = pybind11;
4
4
5
- namespace MoniLog
5
+ namespace MoniLogger
6
6
{
7
7
namespace
8
8
{
@@ -135,7 +135,8 @@ namespace MoniLog
135
135
void register_base_events (std::map<std::string, size_t > events)
136
136
{
137
137
size_t size (0 );
138
- for (auto it = events.begin (); it != events.end (); ++it) {
138
+ for (auto it = events.begin (); it != events.end (); ++it)
139
+ {
139
140
size = std::max (size, it->second );
140
141
}
141
142
size++;
@@ -158,6 +159,16 @@ namespace MoniLog
158
159
}
159
160
}
160
161
162
+ std::list<std::string> get_base_events ()
163
+ {
164
+ std::list<std::string> result;
165
+ for (auto evt : base_events)
166
+ {
167
+ result.emplace_back (evt.first );
168
+ }
169
+ return result;
170
+ }
171
+
161
172
void clear_events ()
162
173
{
163
174
base_events.clear ();
@@ -217,15 +228,15 @@ namespace MoniLog
217
228
return registered_moniloggers[event];
218
229
}
219
230
220
- void trigger (std::string event_name, std::shared_ptr<MoniLogExecutionContext > context)
231
+ void trigger (std::string event_name, std::shared_ptr<MoniLoggerExecutionContext > context)
221
232
{
222
233
for (py::function monilogger : event_to_moniloggers[event_name])
223
234
{
224
235
monilogger (context);
225
236
}
226
237
}
227
238
228
- void trigger (size_t event_id, std::shared_ptr<MoniLogExecutionContext > context)
239
+ void trigger (size_t event_id, std::shared_ptr<MoniLoggerExecutionContext > context)
229
240
{
230
241
std::list<py::function> moniloggers = registered_moniloggers[event_id];
231
242
for (py::function monilogger : moniloggers)
@@ -234,7 +245,7 @@ namespace MoniLog
234
245
}
235
246
}
236
247
237
- void bootstrap_monilog (std::vector<std::string> python_path,
248
+ void bootstrap_monilogger (std::vector<std::string> python_path,
238
249
std::vector<std::string> python_scripts,
239
250
std::string interface_module,
240
251
std::function<void (py::module_, py::object)> interface_module_initializer)
@@ -248,13 +259,13 @@ namespace MoniLog
248
259
append_to_path (python_path[i]);
249
260
}
250
261
251
- // // Initializing the MoniLog Python module.
252
- py::module_ monilogModule = py::module_::import (" monilog " );
253
- py::module_ monilogInternalModule = py::module_::import (" monilog._monilog " );
262
+ // // Initializing the MoniLogger Python module.
263
+ py::module_ moniloggerModule = py::module_::import (" monilogger " );
264
+ py::module_ moniloggerInternalModule = py::module_::import (" monilogger._monilogger " );
254
265
255
266
// // Initializing the user-provided interface module exposing C++ variables to Python scripts.
256
267
py::module_ interface_py_module = py::module_::import (interface_module.c_str ());
257
- py::object ctx = (py::object) monilogInternalModule .attr (" MoniLogExecutionContext " );
268
+ py::object ctx = (py::object) moniloggerInternalModule .attr (" MoniLoggerExecutionContext " );
258
269
interface_module_initializer (interface_py_module, ctx);
259
270
260
271
// Loading the user-provided Python scripts containing monilogger definitions.
@@ -265,4 +276,19 @@ namespace MoniLog
265
276
}
266
277
}
267
278
279
+ PYBIND11_MODULE (_monilogger, m) {
280
+ m.attr (" __name__" ) = " monilogger._monilogger" ;
281
+ py::class_<MoniLogger::MoniLoggerExecutionContext, std::shared_ptr<MoniLogger::MoniLoggerExecutionContext>>(m, " MoniLoggerExecutionContext" )
282
+ .def (py::init<>());
283
+ m.def (" register" , &MoniLogger::register_monilogger);
284
+ m.def (" stop" , &MoniLogger::unregister_monilogger);
285
+ m.def (" define_event" , &MoniLogger::register_composite_event);
286
+ m.def (" define_basic_events" , &MoniLogger::register_base_events);
287
+ m.def (" get_basic-events" , &MoniLogger::get_base_events);
288
+ m.def (" emit_event" , [](std::string event_name, std::shared_ptr<MoniLogger::MoniLoggerExecutionContext> scope)
289
+ {
290
+ MoniLogger::trigger (event_name, scope);
291
+ });
292
+ }
293
+
268
294
0 commit comments