29 if (RInside::instancePtr())
throw std::runtime_error(
"Can only have one TRInterface instance");
30 fR =
new RInside(argc, argv, loadRcpp, verbose, interactive);
44 std::string osname =
Eval(
"Sys.info()['sysname']");
46 if (osname ==
"Linux") {
47 Execute(
"options(device='x11')");
49 Execute(
"options(device='quartz')");
59 if (gR ==
this) gR =
nullptr;
69 rc =
fR->parseEval(code.Data(), fans);
70 }
catch (Rcpp::exception &__ex__) {
71 Error(
"Eval",
"%s", __ex__.what());
72 forward_exception_to_r(__ex__) ;
74 Error(
"Eval",
"Can execute the requested code: %s", code.Data());
86 fR->parseEvalQ(code.Data());
87 }
catch (Rcpp::exception &__ex__) {
88 Error(
"Execute",
"%s", __ex__.what());
89 forward_exception_to_r(__ex__) ;
91 Error(
"Execute",
"Can execute the requested code: %s", code.Data());
105 rc =
fR->parseEval(code.Data(), ans);
106 }
catch (Rcpp::exception &__ex__) {
107 Error(
"Eval",
"%s", __ex__.what());
108 forward_exception_to_r(__ex__) ;
110 Error(
"Eval",
"Can execute the requested code: %s", code.Data());
121 fR->setVerbose(status);
133 fR->assign(*obj.
f, name.Data());
140 fR->assign(obj.
df, name.Data());
149 if (std::string(line) ==
".q")
break;
151 if (*line) add_history(line);
161 const Char_t *R_argv[] = {
"rootr",
"--gui=none",
"--no-save",
"--no-readline",
162 "--silent",
"--vanilla",
"--slave"};
163 gR =
new TRInterface(7, R_argv,
true,
false,
false);
178 TString cmd =
"is.element('" + pkg +
"', installed.packages()[,1])";
179 return fR->parseEval(cmd.Data());
185 TString cmd =
"require('" + pkg +
"',quiet=TRUE)";
186 return fR->parseEval(cmd.Data());
192 TString cmd =
"install.packages('" + pkg +
"',repos='" + repos +
"',dependencies=TRUE)";
193 fR->parseEval(cmd.Data());
198 #undef _POSIX_C_SOURCE 199 #include <R_ext/eventloop.h> 209 fd = R_checkActivity(usec, 0);
210 R_runHandlers(R_InputHandlers, fd);
SEXP RComp_assignTokenSym
SEXP RComp_getFileCompSym
SEXP RComp_assignBufferSym
void Execute(const TString &code)
Method to eval R code.
Bool_t IsInstalled(TString pkg)
Method to verify if a package is installed.
static TRInterface * InstancePtr()
static method to get an TRInterface instance pointer
SEXP RComp_completeTokenSym
SEXP RComp_assignStartSym
static ROOT::R::TRInterface * gR
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
void Assign(const T &var, const TString &name)
Template method to assign C++ variables into R enviroment.
Bool_t Install(TString pkg, TString repos="http://cran.r-project.org")
Method to install an R's package.
namespace associated R package for ROOT.
Int_t Run(void *arg=0)
Start the thread.
Bool_t Require(TString pkg)
Method to load an R's package.
This is a class to get ROOT's objects from R's objects
rl_completion_func_t * rl_attempted_completion_function
SEXP RComp_retrieveCompsSym
R__EXTERN TSystem * gSystem
char ** R_custom_completion(const char *text, int start, int end)
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void SetStatus(Bool_t status)
TRObject is a current valid object?
void ProcessEventsLoop()
Init event loop in a thread to support actions in windows from R graphics system. ...
void Interactive()
Method to get a R prompt to work interactively with tab completation support.
void SetVerbose(Bool_t status)
Method to set verbose mode, that produce extra output.
static TRInterface & Instance()
static method to get an TRInterface instance reference
Binding operator[](const TString &name)
Mother of all ROOT objects.
TRInterface(const Int_t argc=0, const Char_t *argv[]=NULL, const Bool_t loadRcpp=true, const Bool_t verbose=false, const Bool_t interactive=true)
The command line arguments are by deafult argc=0 and argv=NULL, The verbose mode is by default disabl...
Int_t Eval(const TString &code, TRObject &ans)
Method to eval R code and you get the result in a reference to TRObject.
static Bool_t statusEventLoop
This is a class to pass functions from ROOT to R
This is a class to create DataFrames from ROOT to R