9
9
#define FF_GETTER (clazz, name, prop ) \
10
10
NAN_GETTER (name) { info.GetReturnValue ().Set (Nan::ObjectWrap::Unwrap<clazz>(info.This ())->prop ); }
11
11
12
+ #define FF_GETTER_SIMPLE (clazz, name, prop, converter ) \
13
+ NAN_GETTER (name) { \
14
+ v8::Local<v8::Value> jsValue = converter::wrap ( \
15
+ Nan::ObjectWrap::Unwrap<clazz>(info.This ())->prop \
16
+ ); \
17
+ info.GetReturnValue ().Set (jsValue); \
18
+ }
19
+
20
+ #define FF_GETTER_COMPLEX (clazz, name, prop, converter ) FF_GETTER_SIMPLE(clazz, name, prop, converter)
21
+
12
22
#define FF_GETTER_JSOBJ (clazz, name, value, unwrapper, ctor ) \
13
23
NAN_GETTER (name) { \
14
24
v8::Local<v8::Object> jsObj = FF_NEW_INSTANCE (ctor); \
@@ -129,6 +139,22 @@ static FF_FUNC_TYPE ff_func = FF_FUNC_TYPE();
129
139
#define FF_SETTER_NUMBER (clazz, name, prop ) FF_SETTER(clazz, name, prop, ff_number)
130
140
#define FF_SETTER_BOOL (clazz, name, prop ) FF_SETTER(clazz, name, prop, ff_bool)
131
141
142
+ #define FF_SETTER_SIMPLE (clazz, name, prop, converter ) \
143
+ NAN_SETTER (name##Set) { \
144
+ FF_METHOD_CONTEXT (#name); \
145
+ Nan::ObjectWrap::Unwrap<clazz>(info.This ())->prop = converter::unwrap ( \
146
+ value \
147
+ ); \
148
+ }
149
+
150
+ #define FF_SETTER_COMPLEX (clazz, name, prop, type, converter ) \
151
+ NAN_SETTER (name##Set) { \
152
+ FF_METHOD_CONTEXT (#name); \
153
+ type target; \
154
+ converter::unwrap (&target, value); \
155
+ Nan::ObjectWrap::Unwrap<clazz>(info.This ())->prop = target; \
156
+ }
157
+
132
158
namespace FF {
133
159
template <typename toType, typename type>
134
160
static inline v8::Local<v8::Array> stdVecToJSArray (std::vector<type> vec) {
@@ -140,4 +166,4 @@ namespace FF {
140
166
}
141
167
}
142
168
143
- #endif
169
+ #endif
0 commit comments