CatalogWrappers.cpp
80 lines
| 3.3 KiB
| text/x-c
|
CppLexer
r48 | #include <QString> | |||
#include <QUuid> | ||||
#include <QDate> | ||||
#include <QTime> | ||||
#include <QVector> | ||||
#include <string> | ||||
#include <sstream> | ||||
#include "pywrappers_common.h" | ||||
#include <pybind11/pybind11.h> | ||||
#include <pybind11/operators.h> | ||||
#include <Catalogue/CatalogueController.h> | ||||
#include <DBEvent.h> | ||||
#include <DBEventProduct.h> | ||||
#include <DBCatalogue.h> | ||||
namespace py = pybind11; | ||||
std::ostream &operator <<(std::ostream& os, const DBEvent& e) | ||||
{ | ||||
os << std::endl; | ||||
return os; | ||||
} | ||||
#define JAVA_LIKE_PROPERTY(name, className) .def_property("##name", &className::get##name, &className::set##name) | ||||
PYBIND11_MODULE(pysciqlopcatalogs,m){ | ||||
py::class_<DBEventProduct, std::shared_ptr<DBEventProduct>>(m,"DBEventProduct") | ||||
JAVA_LIKE_PROPERTY(TStart, DBEventProduct) | ||||
JAVA_LIKE_PROPERTY(TEnd, DBEventProduct) | ||||
JAVA_LIKE_PROPERTY(ProductId, DBEventProduct) | ||||
JAVA_LIKE_PROPERTY(CreationDateTime, DBEventProduct) | ||||
JAVA_LIKE_PROPERTY(ModificationDateTime, DBEventProduct) | ||||
JAVA_LIKE_PROPERTY(Event, DBEventProduct) | ||||
; | ||||
py::class_<DBEvent, std::shared_ptr<DBEvent>>(m, "DBEvent") | ||||
JAVA_LIKE_PROPERTY(Name,DBEvent) | ||||
JAVA_LIKE_PROPERTY(UniqId,DBEvent) | ||||
JAVA_LIKE_PROPERTY(Author,DBEvent) | ||||
JAVA_LIKE_PROPERTY(Repository,DBEvent) | ||||
JAVA_LIKE_PROPERTY(CreationDateTime,DBEvent) | ||||
JAVA_LIKE_PROPERTY(ModificationDateTime,DBEvent) | ||||
JAVA_LIKE_PROPERTY(EventProducts,DBEvent) | ||||
.def_property_readonly("TStart", &DBEvent::getTStart) | ||||
.def_property_readonly("TEnd", &DBEvent::getTEnd) | ||||
.def("__repr__",__repr__<DBEvent>); | ||||
py::class_<DBCatalogue, std::shared_ptr<DBCatalogue>>(m,"DBEventProduct") | ||||
JAVA_LIKE_PROPERTY(CatalogueId, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(UniqId, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(Name, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(Author, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(Repository, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(CreationDateTime, DBCatalogue) | ||||
JAVA_LIKE_PROPERTY(ModificationDateTime, DBCatalogue) | ||||
; | ||||
py::class_<CatalogueController>(m, "CatalogueController") | ||||
.def("addDB", &CatalogueController::addDB) | ||||
.def("saveDB", &CatalogueController::saveDB) | ||||
.def("addEvent", &CatalogueController::addEvent) | ||||
.def("updateEvent", &CatalogueController::updateEvent) | ||||
.def("updateEventProduct", &CatalogueController::updateEventProduct) | ||||
.def("removeEvent", &CatalogueController::removeEvent) | ||||
.def("saveEvent", &CatalogueController::saveEvent) | ||||
.def("discardEvent", &CatalogueController::discardEvent) | ||||
.def("eventHasChanges", &CatalogueController::eventHasChanges) | ||||
.def("addCatalogue", &CatalogueController::addCatalogue) | ||||
.def("updateCatalogue", &CatalogueController::updateCatalogue) | ||||
.def("removeCatalogue", &CatalogueController::removeCatalogue) | ||||
.def("saveCatalogue", &CatalogueController::saveCatalogue) | ||||
.def("discardCatalogue", &CatalogueController::discardCatalogue) | ||||
.def("saveAll", &CatalogueController::saveAll) | ||||
.def("hasChanges", &CatalogueController::hasChanges) | ||||
; | ||||
} | ||||