Skip to content
Snippets Groups Projects

DRAFT: ENH: Include libcaosdb and a minimal wrapper

Closed Florian Spreckelsen requested to merge f-cxx-include into dev
1 unresolved thread
+ 35
2
@@ -23,12 +23,29 @@
#include <string>
#include <jlcxx/jlcxx.hpp>
#include <jlcxx/array.hpp>
#include <jlcxx/const_array.hpp>
#include <jlcxx/functions.hpp>
#include <jlcxx/module.hpp>
#include <jlcxx/smart_pointers.hpp>
#include <jlcxx/stl.hpp>
#include <jlcxx/tuple.hpp>
#include <jlcxx/type_conversion.hpp>
#include "caosdb/authentication.h"
#include "caosdb/connection.h"
#include "caosdb/constants.h"
#include "caosdb/exceptions.h"
// namespace jlcxx
// {
// template<>
// struct SuperType<caosdb::authentication::PlainPasswordAuthenticator>
// {
// typedef caosdb::authentication::Authenticator type;
// };
// }
JLCXX_MODULE define_julia_module(jlcxx::Module& mod)
{
// Version info of libcaosdb against which this is built.
@@ -37,10 +54,26 @@ JLCXX_MODULE define_julia_module(jlcxx::Module& mod)
mod.method("get_libcaosdb_version_patch", []() {return caosdb::LIBCAOSDB_VERSION_PATCH;});
// exceptions inherit from abstract Julia exception types:
mod.add_type<caosdb::exceptions::AuthenticationError>("AuthenticationError", jlcxx::julia_type("AbstractAuthenticationError"))
mod.add_type<caosdb::exceptions::AuthenticationError>("AuthenticationError",
jlcxx::julia_type("AbstractAuthenticationError"))
.constructor<const std::string&>()
.method("what", &caosdb::exceptions::AuthenticationError::what);
mod.add_type<caosdb::exceptions::ConnectionError>("ConnectionError", jlcxx::julia_type("AbstractConnectionError"))
mod.add_type<caosdb::exceptions::ConnectionError>("ConnectionError",
jlcxx::julia_type("AbstractConnectionError"))
.constructor<const std::string&>()
.method("what", &caosdb::exceptions::ConnectionError::what);
// authenticators
mod.add_type<caosdb::authentication::Authenticator>("CaosDBAuthenticator");
// Currently not working, see https://github.com/JuliaInterop/CxxWrap.jl/issues/294
// mod.add_type<caosdb::authentication::PlainPasswordAuthenticator>("PlainPasswordAuthenticator",
// jlcxx::julia_base_type<caosdb::authentication::Authenticator>())
// .constructor<const std::string&, const std::string&>()
// .method("getCallCredentials", &caosdb::authentication::PlainPasswordAuthenticator::getCallCredentials);
mod.add_type<caosdb::connection::CACertificateProvider>("CACertificateProvider");
// TODO Add children once the above issue is resolved
mod.add_type<caosdb::connection::CaosDBConnectionConfig>("CaosDBConnectionConfig");
mod.add_type<caosdb::connection::InsecureCaosDBConnectionConfig>("InsecureCaosDBConnectionConfig");
}
Loading