// Generated by cpp11: do not edit by hand
// clang-format off


#include "cpp11/declarations.hpp"
#include <R_ext/Visibility.h>

// red_create.cpp
void redatam_create(const std::string& schema_name, const std::string& config_name);
extern "C" SEXP _redatamx_redatam_create(SEXP schema_name, SEXP config_name) {
  BEGIN_CPP11
    redatam_create(cpp11::as_cpp<cpp11::decay_t<const std::string&>>(schema_name), cpp11::as_cpp<cpp11::decay_t<const std::string&>>(config_name));
    return R_NilValue;
  END_CPP11
}
// red_dictionary.cpp
SEXP redatam_open(const std::string& dictionary_name);
extern "C" SEXP _redatamx_redatam_open(SEXP dictionary_name) {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_open(cpp11::as_cpp<cpp11::decay_t<const std::string&>>(dictionary_name)));
  END_CPP11
}
// red_dictionary.cpp
void redatam_save(SEXP dic, const std::string& name);
extern "C" SEXP _redatamx_redatam_save(SEXP dic, SEXP name) {
  BEGIN_CPP11
    redatam_save(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic), cpp11::as_cpp<cpp11::decay_t<const std::string&>>(name));
    return R_NilValue;
  END_CPP11
}
// red_dictionary.cpp
void redatam_close(SEXP dic);
extern "C" SEXP _redatamx_redatam_close(SEXP dic) {
  BEGIN_CPP11
    redatam_close(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic));
    return R_NilValue;
  END_CPP11
}
// red_dictionary.cpp
cpp11::writable::list redatam_entities(SEXP dic);
extern "C" SEXP _redatamx_redatam_entities(SEXP dic) {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_entities(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic)));
  END_CPP11
}
// red_dictionary.cpp
cpp11::writable::list redatam_variables(SEXP dic, const std::string& entity_name);
extern "C" SEXP _redatamx_redatam_variables(SEXP dic, SEXP entity_name) {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_variables(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic), cpp11::as_cpp<cpp11::decay_t<const std::string&>>(entity_name)));
  END_CPP11
}
// red_execute.cpp
cpp11::writable::list redatam_internal_query(SEXP dic, const std::string& spc);
extern "C" SEXP _redatamx_redatam_internal_query(SEXP dic, SEXP spc) {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_internal_query(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic), cpp11::as_cpp<cpp11::decay_t<const std::string&>>(spc)));
  END_CPP11
}
// red_execute.cpp
cpp11::writable::list redatam_internal_run(SEXP dic, const std::string& file_name);
extern "C" SEXP _redatamx_redatam_internal_run(SEXP dic, SEXP file_name) {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_internal_run(cpp11::as_cpp<cpp11::decay_t<SEXP>>(dic), cpp11::as_cpp<cpp11::decay_t<const std::string&>>(file_name)));
  END_CPP11
}
// red_initialize.cpp
std::string redatam_version();
extern "C" SEXP _redatamx_redatam_version() {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_version());
  END_CPP11
}
// red_initialize.cpp
std::string redatam_info();
extern "C" SEXP _redatamx_redatam_info() {
  BEGIN_CPP11
    return cpp11::as_sexp(redatam_info());
  END_CPP11
}
// red_initialize.cpp
void redatam_init_(std::string packageDir);
extern "C" SEXP _redatamx_redatam_init_(SEXP packageDir) {
  BEGIN_CPP11
    redatam_init_(cpp11::as_cpp<cpp11::decay_t<std::string>>(packageDir));
    return R_NilValue;
  END_CPP11
}
// red_initialize.cpp
void redatam_destroy_();
extern "C" SEXP _redatamx_redatam_destroy_() {
  BEGIN_CPP11
    redatam_destroy_();
    return R_NilValue;
  END_CPP11
}
// red_plugins.cpp
void redatam_load_plugin(const std::string& spc);
extern "C" SEXP _redatamx_redatam_load_plugin(SEXP spc) {
  BEGIN_CPP11
    redatam_load_plugin(cpp11::as_cpp<cpp11::decay_t<const std::string&>>(spc));
    return R_NilValue;
  END_CPP11
}

extern "C" {
static const R_CallMethodDef CallEntries[] = {
    {"_redatamx_redatam_close",          (DL_FUNC) &_redatamx_redatam_close,          1},
    {"_redatamx_redatam_create",         (DL_FUNC) &_redatamx_redatam_create,         2},
    {"_redatamx_redatam_destroy_",       (DL_FUNC) &_redatamx_redatam_destroy_,       0},
    {"_redatamx_redatam_entities",       (DL_FUNC) &_redatamx_redatam_entities,       1},
    {"_redatamx_redatam_info",           (DL_FUNC) &_redatamx_redatam_info,           0},
    {"_redatamx_redatam_init_",          (DL_FUNC) &_redatamx_redatam_init_,          1},
    {"_redatamx_redatam_internal_query", (DL_FUNC) &_redatamx_redatam_internal_query, 2},
    {"_redatamx_redatam_internal_run",   (DL_FUNC) &_redatamx_redatam_internal_run,   2},
    {"_redatamx_redatam_load_plugin",    (DL_FUNC) &_redatamx_redatam_load_plugin,    1},
    {"_redatamx_redatam_open",           (DL_FUNC) &_redatamx_redatam_open,           1},
    {"_redatamx_redatam_save",           (DL_FUNC) &_redatamx_redatam_save,           2},
    {"_redatamx_redatam_variables",      (DL_FUNC) &_redatamx_redatam_variables,      2},
    {"_redatamx_redatam_version",        (DL_FUNC) &_redatamx_redatam_version,        0},
    {NULL, NULL, 0}
};
}

extern "C" attribute_visible void R_init_redatamx(DllInfo* dll){
  R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
  R_useDynamicSymbols(dll, FALSE);
  R_forceSymbols(dll, TRUE);
}
