00001 // -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- 00002 // 00003 // RcppParams.h: Rcpp R/C++ interface class library -- Parameters from R 00004 // 00005 // Copyright (C) 2005 - 2006 Dominick Samperi 00006 // Copyright (C) 2008 - 2009 Dirk Eddelbuettel 00007 // 00008 // This file is part of Rcpp. 00009 // 00010 // Rcpp is free software: you can redistribute it and/or modify it 00011 // under the terms of the GNU General Public License as published by 00012 // the Free Software Foundation, either version 2 of the License, or 00013 // (at your option) any later version. 00014 // 00015 // Rcpp is distributed in the hope that it will be useful, but 00016 // WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 // GNU General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU General Public License 00021 // along with Rcpp. If not, see <http://www.gnu.org/licenses/>. 00022 00023 #ifndef RcppParams_h 00024 #define RcppParams_h 00025 00026 #include <RcppCommon.h> 00027 #include <RcppDate.h> 00028 #include <RcppDatetime.h> 00029 00030 class RcppParams { 00031 public: 00032 RcppParams(SEXP params); 00033 void checkNames(char *inputNames[], int len); 00034 bool exists(std::string name); 00035 double getDoubleValue(std::string name); 00036 int getIntValue(std::string name); 00037 std::string getStringValue(std::string name); 00038 bool getBoolValue(std::string name); 00039 RcppDate getDateValue(std::string name); 00040 RcppDatetime getDatetimeValue(std::string name); 00041 00042 private: 00043 std::map<std::string, int> pmap; 00044 SEXP _params; 00045 }; 00046 00047 #endif