-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathr_object.cpp
35 lines (29 loc) · 905 Bytes
/
r_object.cpp
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
#include "Object.hpp"
#include "r_object.h"
using instrumentr::from_sexp;
using instrumentr::Object;
using instrumentr::ObjectSPtr;
using instrumentr::to_sexp;
SEXP r_object_get_id(SEXP r_object) {
ObjectSPtr object = from_sexp<Object>(r_object);
return ScalarInteger(object->get_id());
}
SEXP r_object_set_data(SEXP r_object, SEXP r_data) {
ObjectSPtr object = from_sexp<Object>(r_object);
object->set_data(r_data);
return R_NilValue;
}
SEXP r_object_get_data(SEXP r_object) {
ObjectSPtr object = from_sexp<Object>(r_object);
SEXP r_data = object->get_data();
return r_data;
}
SEXP r_object_remove_data(SEXP r_object) {
ObjectSPtr object = from_sexp<Object>(r_object);
object->remove_data();
return R_NilValue;
}
SEXP r_object_has_data(SEXP r_object) {
ObjectSPtr object = from_sexp<Object>(r_object);
return ScalarLogical(object->has_data());
}