#define COMPILING_RCPP
#include <Rcpp.h>
#include "internal.h"
#define CALLDEF(name, n) {#name, (DL_FUNC) &name, n}
#define EXTDEF(name) {#name, (DL_FUNC) &name, -1}
static R_CallMethodDef callEntries[] = {
CALLDEF(Class__name,1),
CALLDEF(Class__has_default_constructor,1),
CALLDEF(CppClass__complete,1),
CALLDEF(CppClass__methods,1),
CALLDEF(CppObject__finalize,2),
CALLDEF(Module__classes_info,1),
CALLDEF(Module__complete,1),
CALLDEF(Module__get_class,2),
CALLDEF(Module__has_class,2),
CALLDEF(Module__has_function,2),
CALLDEF(Module__functions_arity,1),
CALLDEF(Module__functions_names,1),
CALLDEF(Module__name,1),
CALLDEF(Module__get_function, 2),
CALLDEF(get_rcpp_cache,0),
CALLDEF(rcpp_error_recorder,1),
CALLDEF(as_character_externalptr,1),
CALLDEF(CppField__get,3),
CALLDEF(CppField__set,4),
CALLDEF(rcpp_capabilities,0),
CALLDEF(rcpp_can_use_cxx0x,0),
CALLDEF(rcpp_can_use_cxx11,0),
CALLDEF(getRcppVersionStrings,0),
{NULL, NULL, 0}
};
static R_ExternalMethodDef extEntries[] = {
EXTDEF(CppMethod__invoke),
EXTDEF(CppMethod__invoke_void),
EXTDEF(CppMethod__invoke_notvoid),
EXTDEF(InternalFunction_invoke),
EXTDEF(Module__invoke),
EXTDEF(class__newInstance),
EXTDEF(class__dummyInstance),
{NULL, NULL, 0}
};
void init_Rcpp_routines(DllInfo *info){
R_registerRoutines(info,
NULL,
callEntries,
NULL,
extEntries
);
}
void registerFunctions(){
using namespace Rcpp;
using namespace Rcpp::internal;
#define RCPP_REGISTER(__FUN__) R_RegisterCCallable( "Rcpp", #__FUN__ , (DL_FUNC)__FUN__ );
RCPP_REGISTER(rcpp_get_stack_trace)
RCPP_REGISTER(rcpp_set_stack_trace)
RCPP_REGISTER(type2name)
RCPP_REGISTER(demangle)
RCPP_REGISTER(enterRNGScope)
RCPP_REGISTER(exitRNGScope)
RCPP_REGISTER(beginSuspendRNGSynchronization);
RCPP_REGISTER(endSuspendRNGSynchronization);
RCPP_REGISTER(get_Rcpp_namespace)
RCPP_REGISTER(get_cache)
RCPP_REGISTER(stack_trace)
RCPP_REGISTER(get_string_elt)
RCPP_REGISTER(char_get_string_elt)
RCPP_REGISTER(set_string_elt)
RCPP_REGISTER(char_set_string_elt)
RCPP_REGISTER(get_string_ptr)
RCPP_REGISTER(get_vector_elt)
RCPP_REGISTER(set_vector_elt)
RCPP_REGISTER(get_vector_ptr)
RCPP_REGISTER(char_nocheck)
RCPP_REGISTER(dataptr)
RCPP_REGISTER(getCurrentScope)
RCPP_REGISTER(setCurrentScope)
RCPP_REGISTER(get_string_buffer)
RCPP_REGISTER(short_file_name)
RCPP_REGISTER(mktime00)
RCPP_REGISTER(gmtime_)
RCPP_REGISTER(reset_current_error)
RCPP_REGISTER(error_occured)
RCPP_REGISTER(rcpp_get_current_error)
RCPP_REGISTER(Rcpp_precious_init)
RCPP_REGISTER(Rcpp_precious_teardown)
RCPP_REGISTER(Rcpp_precious_preserve)
RCPP_REGISTER(Rcpp_precious_remove)
RCPP_REGISTER(Rcpp_cout_get)
RCPP_REGISTER(Rcpp_cerr_get)
#undef RCPP_REGISTER
}
extern "C" void R_unload_Rcpp(DllInfo *) {
Rcpp::Rcpp_precious_teardown();
}
extern "C" void R_init_Rcpp(DllInfo* dllinfo) {
setCurrentScope(0);
registerFunctions();
R_useDynamicSymbols(dllinfo, FALSE);
init_Rcpp_cache();
Rcpp::Rcpp_precious_init();
init_Rcpp_routines(dllinfo);
}