22
22
#include "iotjs_reqwrap.h"
23
23
24
24
25
- static void iotjs_tcpwrap_destroy (iotjs_tcpwrap_t * tcpwrap );
26
- IOTJS_DEFINE_NATIVE_HANDLE_INFO (tcpwrap );
25
+ IOTJS_DEFINE_NATIVE_HANDLE_INFO_THIS_MODULE (tcpwrap );
27
26
28
27
29
28
iotjs_tcpwrap_t * iotjs_tcpwrap_create (const iotjs_jval_t * jtcp ) {
@@ -32,7 +31,7 @@ iotjs_tcpwrap_t* iotjs_tcpwrap_create(const iotjs_jval_t* jtcp) {
32
31
33
32
iotjs_handlewrap_initialize (& _this -> handlewrap , jtcp ,
34
33
(uv_handle_t * )(& _this -> handle ),
35
- & tcpwrap_native_info );
34
+ & this_module_native_info );
36
35
37
36
const iotjs_environment_t * env = iotjs_environment_get ();
38
37
uv_tcp_init (iotjs_environment_loop (env ), & _this -> handle );
@@ -242,12 +241,9 @@ void AfterClose(uv_handle_t* handle) {
242
241
243
242
// Close socket
244
243
JHANDLER_FUNCTION (Close ) {
245
- DJHANDLER_CHECK_THIS ( object );
244
+ JHANDLER_DECLARE_THIS_PTR ( handlewrap , wrap );
246
245
DJHANDLER_CHECK_ARGS (0 );
247
246
248
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
249
- iotjs_handlewrap_t * wrap = iotjs_handlewrap_from_jobject (jtcp );
250
-
251
247
// close uv handle, `AfterClose` will be called after socket closed.
252
248
iotjs_handlewrap_close (wrap , AfterClose );
253
249
}
@@ -258,18 +254,17 @@ JHANDLER_FUNCTION(Close) {
258
254
// [0] address
259
255
// [1] port
260
256
JHANDLER_FUNCTION (Bind ) {
261
- DJHANDLER_CHECK_THIS (object );
257
+ JHANDLER_DECLARE_THIS_PTR (tcpwrap , tcp_wrap );
258
+
262
259
DJHANDLER_CHECK_ARGS (2 , string , number );
263
260
264
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
265
261
iotjs_string_t address = JHANDLER_GET_ARG (0 , string );
266
262
int port = JHANDLER_GET_ARG (1 , number );
267
263
268
264
sockaddr_in addr ;
269
265
int err = uv_ip4_addr (iotjs_string_data (& address ), port , & addr );
270
266
271
267
if (err == 0 ) {
272
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
273
268
err = uv_tcp_bind (iotjs_tcpwrap_tcp_handle (tcp_wrap ),
274
269
(const sockaddr * )(& addr ), 0 );
275
270
}
@@ -310,10 +305,10 @@ static void AfterConnect(uv_connect_t* req, int status) {
310
305
// [1] port
311
306
// [2] callback
312
307
JHANDLER_FUNCTION (Connect ) {
313
- DJHANDLER_CHECK_THIS (object );
308
+ JHANDLER_DECLARE_THIS_PTR (tcpwrap , tcp_wrap );
309
+
314
310
DJHANDLER_CHECK_ARGS (3 , string , number , function );
315
311
316
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
317
312
iotjs_string_t address = JHANDLER_GET_ARG (0 , string );
318
313
int port = JHANDLER_GET_ARG (1 , number );
319
314
const iotjs_jval_t * jcallback = JHANDLER_GET_ARG (2 , function );
@@ -322,9 +317,6 @@ JHANDLER_FUNCTION(Connect) {
322
317
int err = uv_ip4_addr (iotjs_string_data (& address ), port , & addr );
323
318
324
319
if (err == 0 ) {
325
- // Get tcp wrapper from javascript socket object.
326
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
327
-
328
320
// Create connection request wrapper.
329
321
iotjs_connect_reqwrap_t * req_wrap = iotjs_connect_reqwrap_create (jcallback );
330
322
@@ -401,12 +393,9 @@ static void OnConnection(uv_stream_t* handle, int status) {
401
393
402
394
403
395
JHANDLER_FUNCTION (Listen ) {
404
- DJHANDLER_CHECK_THIS ( object );
396
+ JHANDLER_DECLARE_THIS_PTR ( tcpwrap , tcp_wrap );
405
397
DJHANDLER_CHECK_ARGS (1 , number );
406
398
407
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
408
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
409
-
410
399
int backlog = JHANDLER_GET_ARG (0 , number );
411
400
412
401
int err = uv_listen ((uv_stream_t * )(iotjs_tcpwrap_tcp_handle (tcp_wrap )),
@@ -441,12 +430,9 @@ void AfterWrite(uv_write_t* req, int status) {
441
430
442
431
443
432
JHANDLER_FUNCTION (Write ) {
444
- DJHANDLER_CHECK_THIS ( object );
433
+ JHANDLER_DECLARE_THIS_PTR ( tcpwrap , tcp_wrap );
445
434
DJHANDLER_CHECK_ARGS (2 , object , function );
446
435
447
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
448
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
449
-
450
436
const iotjs_jval_t * jbuffer = JHANDLER_GET_ARG (0 , object );
451
437
iotjs_bufferwrap_t * buffer_wrap = iotjs_bufferwrap_from_jbuffer (jbuffer );
452
438
char * buffer = iotjs_bufferwrap_buffer (buffer_wrap );
@@ -533,10 +519,7 @@ void OnRead(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) {
533
519
534
520
535
521
JHANDLER_FUNCTION (ReadStart ) {
536
- DJHANDLER_CHECK_THIS (object );
537
-
538
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
539
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
522
+ JHANDLER_DECLARE_THIS_PTR (tcpwrap , tcp_wrap );
540
523
541
524
int err = uv_read_start ((uv_stream_t * )(iotjs_tcpwrap_tcp_handle (tcp_wrap )),
542
525
OnAlloc , OnRead );
@@ -567,11 +550,9 @@ static void AfterShutdown(uv_shutdown_t* req, int status) {
567
550
568
551
569
552
JHANDLER_FUNCTION (Shutdown ) {
570
- DJHANDLER_CHECK_THIS (object );
571
- DJHANDLER_CHECK_ARGS (1 , function );
553
+ JHANDLER_DECLARE_THIS_PTR (tcpwrap , tcp_wrap );
572
554
573
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
574
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
555
+ DJHANDLER_CHECK_ARGS (1 , function );
575
556
576
557
const iotjs_jval_t * arg0 = JHANDLER_GET_ARG (0 , object );
577
558
iotjs_shutdown_reqwrap_t * req_wrap = iotjs_shutdown_reqwrap_create (arg0 );
@@ -592,14 +573,13 @@ JHANDLER_FUNCTION(Shutdown) {
592
573
// [0] enable
593
574
// [1] delay
594
575
JHANDLER_FUNCTION (SetKeepAlive ) {
595
- DJHANDLER_CHECK_THIS (object );
576
+ JHANDLER_DECLARE_THIS_PTR (tcpwrap , tcp_wrap );
577
+
596
578
DJHANDLER_CHECK_ARGS (2 , number , number );
597
579
598
- const iotjs_jval_t * jtcp = JHANDLER_GET_THIS (object );
599
580
int enable = JHANDLER_GET_ARG (0 , number );
600
581
unsigned delay = JHANDLER_GET_ARG (1 , number );
601
582
602
- iotjs_tcpwrap_t * tcp_wrap = iotjs_tcpwrap_from_jobject (jtcp );
603
583
int err = uv_tcp_keepalive (iotjs_tcpwrap_tcp_handle (tcp_wrap ), enable , delay );
604
584
605
585
iotjs_jhandler_return_number (jhandler , err );
0 commit comments