00001
00002
00003
00004
00005
00006
00007 #include <string>
00008 #include <vector>
00009 #include <iostream>
00010
00011 #include <R.h>
00012 #include <Rembedded.h>
00013 #include <Rversion.h>
00014 #include <Rdefines.h>
00015 #define R_INTERFACE_PTRS
00016 #include <Rinterface.h>
00017 #include <R_ext/Parse.h>
00018
00019 #include "MemBuf.h"
00020
00021 class RInside {
00022 private:
00023 MemBuf mb_m;
00024
00025 bool verbose_m;
00026
00027 void init_tempdir(void);
00028 void init_rand(void);
00029 void autoloads(void);
00030
00031 public:
00032 int parseEval(const std::string & line, SEXP &ans);
00033 int parseEvalQ(const std::string & line);
00034
00035 void assign(const std::vector< std::vector< double > > & mat, const std::string & nam);
00036 void assign(const std::vector< std::vector< int > > & mat, const std::string & nam);
00037 void assign(const std::vector< std::string > & vec, const std::string & nam);
00038 void assign(const std::vector< double > & vec, const std::string & nam);
00039 void assign(const std::vector< int > & vec, const std::string & nam);
00040 void assign(const std::string & txt, const std::string & nam);
00041
00042 RInside(const int argc, const char* const argv[]);
00043 ~RInside();
00044 };
00045