MCPcopy Create free account
hub / github.com/Rblp/Rblpapi / populateDfRow

Function populateDfRow

src/blpapi_utils.cpp:220–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

218}
219
220void populateDfRow(SEXP ans, R_len_t row_index, const Element& e, RblpapiT rblpapitype) {
221 // the vectors are already initialized to NAs
222 // so no need to set as NA here
223 if(e.isNull()) { return; }
224
225 switch(rblpapitype) {
226 case RblpapiT::Logical:
227 LOGICAL(ans)[row_index] = e.getValueAsBool(); break;
228 case RblpapiT::Integer:
229 INTEGER(ans)[row_index] = e.getValueAsInt32(); break;
230 case RblpapiT::Integer64:
231 REAL(ans)[row_index] = e.getValueAsFloat64(); break;
232 case RblpapiT::Double:
233 REAL(ans)[row_index] = e.getValueAsFloat64(); break;
234 case RblpapiT::Float:
235 REAL(ans)[row_index] = e.getValueAsFloat64(); break;
236 case RblpapiT::Date:
237 // handle the case of BBG passing down dates as double in YYYYMMDD format
238 REAL(ans)[row_index] = e.datatype()==BLPAPI_DATATYPE_FLOAT32 || e.datatype()==BLPAPI_DATATYPE_FLOAT64 ?
239 bbgDateToRDate(e.getValueAsFloat64()) :
240 bbgDateToRDate(e.getValueAsDatetime());
241 break;
242 case RblpapiT::Datetime:
243 REAL(ans)[row_index] = bbgDateToPOSIX(e.getValueAsDatetime()); break;
244 case RblpapiT::String:
245 SET_STRING_ELT(ans,row_index,Rf_mkCharCE(e.getValueAsString(), CE_UTF8)); break;
246 default: // try to convert it as a string
247 SET_STRING_ELT(ans,row_index,Rf_mkCharCE(e.getValueAsString(), CE_UTF8)); break;
248 }
249}
250
251Rcpp::NumericVector createPOSIXtVector(const std::vector<double> & ticks,
252 const std::string tz) {

Callers 2

getBDPResultFunction · 0.85

Calls 2

bbgDateToRDateFunction · 0.85
bbgDateToPOSIXFunction · 0.85

Tested by

no test coverage detected