1 #include "reg_bvpl.h"
2 #include <bprb/bprb_macros.h>
3 #include <bprb/bprb_batch_process_manager.h>
4
5 // processes
6 #include <bvpl/pro/bvpl_register.h>
7 #include <bvpl/kernels/pro/bvpl_kernels_register.h>
8 #include <bvxm/grid/pro/bvxm_grid_register.h>
9 #include <bvxm/algo/pro/bvxm_algo_register.h>
10
11 PyObject *
register_processes(PyObject * self,PyObject * args)12 register_processes(PyObject *self, PyObject *args)
13 {
14 bvpl_register::register_process();
15 bvpl_kernels_register::register_process();
16 bvxm_grid_register::register_process();
17 bvxm_algo_register::register_process();
18 Py_INCREF(Py_None);
19 return Py_None;
20 }
21
22 PyObject *
register_datatypes(PyObject * self,PyObject * args)23 register_datatypes(PyObject *self, PyObject *args)
24 {
25 register_basic_datatypes();
26 bvpl_register::register_datatype();
27 bvpl_kernels_register::register_datatype();
28 bvxm_grid_register::register_datatype();
29 bvxm_algo_register::register_datatype();
30 Py_INCREF(Py_None);
31 return Py_None;
32 }
33
init_bvpl_batch_methods(void)34 void init_bvpl_batch_methods(void)
35 {
36 PyMethodDef reg_pro;
37 reg_pro.ml_name = "register_processes";
38 reg_pro.ml_meth = register_processes;
39 reg_pro.ml_doc = "register_processes() create instances of each defined process";
40 reg_pro.ml_flags = METH_VARARGS;
41
42
43 PyMethodDef reg_data;
44 reg_data.ml_name = "register_datatypes";
45 reg_data.ml_meth = register_datatypes;
46 reg_data.ml_doc = "register_datatypes() insert tables in the database for each type";
47 reg_data.ml_flags = METH_VARARGS;
48
49 bvpl_batch_methods[0]=reg_pro;
50 bvpl_batch_methods[1]=reg_data;
51
52 for (int i=0; i<METHOD_NUM; ++i) {
53 bvpl_batch_methods[i+2]=batch_methods[i];
54 }
55 }
56
57 // python3
58 #if PY_MAJOR_VERSION >= 3
59 PyMODINIT_FUNC
PyInit_bvpl_batch(void)60 PyInit_bvpl_batch(void)
61 {
62 init_bvpl_batch_methods();
63 static struct PyModuleDef bvpl_batch_def = {
64 PyModuleDef_HEAD_INIT,
65 "bvpl_batch", // m_name
66 "bvpl_batch module", // m_doc
67 -1, // m_size
68 bvpl_batch_methods, // m_methods
69 };
70 return PyModule_Create(&bvpl_batch_def);
71 }
72
73 // python2
74 #else
75 PyMODINIT_FUNC
initbvpl_batch(void)76 initbvpl_batch(void)
77 {
78 init_bvpl_batch_methods();
79 Py_InitModule("bvpl_batch", bvpl_batch_methods);
80 }
81
82 #endif
83