/usr/lib/R/site-library/dplyr/include/dplyr/MultipleVectorVisitors.h is in r-cran-dplyr 0.7.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #ifndef dplyr_MultipleVectorVisitors_H
#define dplyr_MultipleVectorVisitors_H
#include <boost/shared_ptr.hpp>
#include <dplyr/visitor_set/VisitorSetMixin.h>
#include <dplyr/visitor.h>
namespace dplyr {
class MultipleVectorVisitors :
public VisitorSetEqual<MultipleVectorVisitors>,
public VisitorSetHash<MultipleVectorVisitors>,
public VisitorSetLess<MultipleVectorVisitors>,
public VisitorSetGreater<MultipleVectorVisitors> {
private:
std::vector< boost::shared_ptr<VectorVisitor> > visitors;
public:
typedef VectorVisitor visitor_type;
MultipleVectorVisitors() : visitors() {}
MultipleVectorVisitors(List data) :
visitors()
{
int n = data.size();
for (int i = 0; i < n; i++) {
push_back(data[i]);
}
}
inline int size() const {
return visitors.size();
}
inline VectorVisitor* get(int k) const {
return visitors[k].get();
}
inline int nrows() const {
if (visitors.size() == 0) {
stop("Need at least one column for `nrows()`");
}
return visitors[0]->size();
}
inline void push_back(SEXP x) {
visitors.push_back(boost::shared_ptr<VectorVisitor>(visitor(x)));
}
inline bool is_na(int index) const {
int n = size();
for (int i = 0; i < n; i++) if (visitors[i]->is_na(index)) return true;
return false;
}
};
} // namespace dplyr
#include <dplyr/visitor_impl.h>
#endif
|