forked from Woodya/node-gzbz2
-
Notifications
You must be signed in to change notification settings - Fork 1
/
buffer_compat.h
52 lines (43 loc) · 1.24 KB
/
buffer_compat.h
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
#ifndef BUFFER_COMPAT_H
#define BUFFER_COMPAT_H
#include <node.h>
#include <node_buffer.h>
#include <node_version.h>
#include <v8.h>
#if NODE_MINOR_VERSION < 3 && NODE_MAJOR_VERSION < 1
char *BufferData(node::Buffer *b) {
return b->data();
}
size_t BufferLength(node::Buffer *b) {
return b->length();
}
char *BufferData(v8::Local<v8::Object> buf_obj) {
v8::HandleScope scope;
node::Buffer *buf = node::ObjectWrap::Unwrap<node::Buffer>(buf_obj);
return buf->data();
}
size_t BufferLength(v8::Local<v8::Object> buf_obj) {
v8::HandleScope scope;
node::Buffer *buf = node::ObjectWrap::Unwrap<node::Buffer>(buf_obj);
return buf->length();
}
#elif NODE_MAJOR_VERSION < 3
char *BufferData(node::Buffer *b) {
return node::Buffer::Data(b->handle_);
}
size_t BufferLength(node::Buffer *b) {
return node::Buffer::Length(b->handle_);
}
char *BufferData(v8::Local<v8::Object> buf_obj) {
v8::HandleScope scope;
return node::Buffer::Data(buf_obj);
}
size_t BufferLength(v8::Local<v8::Object> buf_obj) {
v8::HandleScope scope;
return node::Buffer::Length(buf_obj);
}
#else // NODE_VERSION
#define BufferData node::Buffer::Data
#define BufferLength node::Buffer::Length
#endif // NODE_VERSION
#endif//BUFFER_COMPAT_H