1 #include "pybind11/pybind11.h"
2 #include "pybind11/stl.h"
8 namespace py = pybind11;
9 using namespace pybind11::literals;
13 namespace persistence {
16 template <
typename T,
typename C>
17 void declareParams(C& cls,
const std::string& suffix) {
18 cls.def((
"setColumn" + suffix).c_str(), &DbStorage::setColumn<T>);
19 cls.def((
"condParam" + suffix).c_str(), &DbStorage::condParam<T>);
20 cls.def((
"outParam" + suffix).c_str(), &DbStorage::outParam<T>);
21 cls.def((
"getColumnByPos" + suffix).c_str(), &DbStorage::getColumnByPos<T>);
27 py::module mod(
"dbStorage");
29 py::class_<DbStorage, std::shared_ptr<DbStorage>,
FormatterStorage> cls(mod,
"DbStorage");
32 cls.def(py::init<>());
35 cls.def(
"setPolicy", &DbStorage::setPolicy);
36 cls.def(
"setPersistLocation", &DbStorage::setPersistLocation);
37 cls.def(
"setRetrieveLocation", &DbStorage::setRetrieveLocation);
38 cls.def(
"startTransaction", &DbStorage::startTransaction);
39 cls.def(
"endTransaction", &DbStorage::endTransaction);
40 cls.def(
"createTableFromTemplate", &DbStorage::createTableFromTemplate,
"tableName"_a,
"templateName"_a,
41 "mayAlreadyExist"_a =
false);
42 cls.def(
"dropTable", &DbStorage::dropTable);
43 cls.def(
"truncateTable", &DbStorage::truncateTable);
44 cls.def(
"executeSql", &DbStorage::executeSql);
45 cls.def(
"setTableForInsert", &DbStorage::setTableForInsert);
46 cls.def(
"setColumnToNull", &DbStorage::setColumnToNull);
47 cls.def(
"insertRow", &DbStorage::insertRow);
48 cls.def(
"setTableForQuery", &DbStorage::setTableForQuery,
"tableName"_a,
"isExpr"_a =
false);
49 cls.def(
"setTableListForQuery", &DbStorage::setTableListForQuery);
50 cls.def(
"outColumn", &DbStorage::outColumn,
"columnName"_a,
"isExpr"_a =
false);
51 cls.def(
"orderBy", &DbStorage::orderBy);
52 cls.def(
"groupBy", &DbStorage::groupBy);
53 cls.def(
"setQueryWhere", &DbStorage::setQueryWhere);
54 cls.def(
"query", &DbStorage::query);
55 cls.def(
"next", &DbStorage::next);
56 cls.def(
"__next__", &DbStorage::next);
57 cls.def(
"columnIsNull", &DbStorage::columnIsNull);
58 cls.def(
"finishQuery", &DbStorage::finishQuery);
61 declareParams<char>(cls,
"Char");
62 declareParams<short>(cls,
"Short");
63 declareParams<int>(cls,
"Int");
64 declareParams<long>(cls,
"Long");
65 declareParams<long long>(cls,
"Int64");
66 declareParams<float>(cls,
"Float");
67 declareParams<double>(cls,
"Double");
68 declareParams<std::string>(cls,
"String");
69 declareParams<bool>(cls,
"Bool");
Interface for DbStorage class.
Interface for LogicalLocation class.