sonixlabs-eventmachine-java 1.0.0.rc.7-java → 1.0.3.1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -12
  2. data/.travis.yml +12 -0
  3. data/CHANGELOG.md +33 -0
  4. data/Gemfile +0 -1
  5. data/README.md +2 -2
  6. data/README_JP.md +10 -2
  7. data/eventmachine.gemspec +10 -7
  8. data/ext/binder.cpp +1 -1
  9. data/ext/cmain.cpp +11 -0
  10. data/ext/ed.cpp +22 -7
  11. data/ext/ed.h +5 -5
  12. data/ext/em.cpp +64 -66
  13. data/ext/em.h +10 -5
  14. data/ext/eventmachine.h +1 -0
  15. data/ext/extconf.rb +4 -3
  16. data/ext/fastfilereader/extconf.rb +1 -1
  17. data/ext/rubymain.cpp +22 -1
  18. data/ext/ssl.cpp +1 -1
  19. data/java/.classpath +1 -3
  20. data/java/.gitignore +1 -0
  21. data/java/src/com/rubyeventmachine/DatagramPacket.java +13 -0
  22. data/java/src/com/rubyeventmachine/EmReactor.java +502 -561
  23. data/java/src/com/rubyeventmachine/EventCallback.java +7 -0
  24. data/java/src/com/rubyeventmachine/EventCode.java +26 -0
  25. data/java/src/com/rubyeventmachine/EventableChannel.java +102 -42
  26. data/java/src/com/rubyeventmachine/EventableDatagramChannel.java +146 -161
  27. data/java/src/com/rubyeventmachine/EventableSocketChannel.java +371 -334
  28. data/java/src/com/rubyeventmachine/SslBox.java +310 -0
  29. data/lib/em/iterator.rb +5 -44
  30. data/lib/em/processes.rb +1 -1
  31. data/lib/em/protocols/httpclient.rb +2 -2
  32. data/lib/em/protocols/line_protocol.rb +2 -2
  33. data/lib/em/protocols/smtpclient.rb +1 -1
  34. data/lib/em/protocols/smtpserver.rb +10 -7
  35. data/lib/em/protocols/stomp.rb +5 -2
  36. data/lib/em/protocols.rb +1 -0
  37. data/lib/em/version.rb +1 -1
  38. data/lib/eventmachine.rb +35 -14
  39. data/lib/jeventmachine.rb +65 -18
  40. data/rakelib/package.rake +15 -18
  41. data/tests/server.crt +36 -0
  42. data/tests/server.key +51 -0
  43. data/tests/test_attach.rb +24 -0
  44. data/tests/test_connection_count.rb +21 -1
  45. data/tests/test_epoll.rb +15 -0
  46. data/tests/test_httpclient2.rb +5 -0
  47. data/tests/test_idle_connection.rb +6 -4
  48. data/tests/test_iterator.rb +97 -0
  49. data/tests/test_line_protocol.rb +33 -0
  50. data/tests/test_pause.rb +24 -0
  51. data/tests/test_set_sock_opt.rb +1 -1
  52. data/tests/test_ssl_echo_data.rb +60 -0
  53. data/tests/test_ssl_methods.rb +15 -7
  54. data/tests/test_ssl_verify.rb +4 -4
  55. data/tests/test_stomp.rb +37 -0
  56. data/tests/test_system.rb +42 -0
  57. metadata +45 -42
  58. data/lib/rubyeventmachine.jar +0 -0
data/ext/extconf.rb CHANGED
@@ -71,13 +71,14 @@ add_define "HAVE_INOTIFY" if inotify = have_func('inotify_init', 'sys/inotify.h'
71
71
  add_define "HAVE_OLD_INOTIFY" if !inotify && have_macro('__NR_inotify_init', 'sys/syscall.h')
72
72
  add_define 'HAVE_WRITEV' if have_func('writev', 'sys/uio.h')
73
73
 
74
- have_func('rb_thread_check_ints')
74
+ have_func('rb_wait_for_single_fd')
75
+ have_func('rb_enable_interrupt')
75
76
  have_func('rb_time_new')
76
77
 
77
78
  # Minor platform details between *nix and Windows:
78
79
 
79
80
  if RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
80
- GNU_CHAIN = ENV['CROSS_COMPILING'] or $1 == 'mingw'
81
+ GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
81
82
  OS_WIN32 = true
82
83
  add_define "OS_WIN32"
83
84
  else
@@ -169,7 +170,7 @@ TRY_LINK.sub!('$(CC)', '$(CXX)')
169
170
  add_define 'HAVE_MAKE_PAIR' if try_link(<<SRC, '-lstdc++')
170
171
  #include <utility>
171
172
  using namespace std;
172
- int main(){ pair<int,int> tuple = make_pair(1,2); }
173
+ int main(){ pair<const int,int> tuple = make_pair(1,2); }
173
174
  SRC
174
175
  TRY_LINK.sub!('$(CXX)', '$(CC)')
175
176
 
@@ -17,7 +17,7 @@ add_define 'BUILD_FOR_RUBY'
17
17
  # Minor platform details between *nix and Windows:
18
18
 
19
19
  if RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
20
- GNU_CHAIN = ENV['CROSS_COMPILING'] or $1 == 'mingw'
20
+ GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
21
21
  OS_WIN32 = true
22
22
  add_define "OS_WIN32"
23
23
  else
data/ext/rubymain.cpp CHANGED
@@ -273,6 +273,17 @@ static VALUE t_start_unix_server (VALUE self, VALUE filename)
273
273
  return ULONG2NUM (f);
274
274
  }
275
275
 
276
+ /********************
277
+ t_attach_sd
278
+ ********************/
279
+
280
+ static VALUE t_attach_sd(VALUE self, VALUE sd)
281
+ {
282
+ const unsigned long f = evma_attach_sd(FIX2INT(sd));
283
+ if (!f)
284
+ rb_raise (rb_eRuntimeError, "%s", "no socket descriptor acceptor");
285
+ return ULONG2NUM (f);
286
+ }
276
287
 
277
288
 
278
289
  /***********
@@ -332,7 +343,7 @@ static VALUE t_get_peer_cert (VALUE self, VALUE signature)
332
343
  BIO_get_mem_ptr(out, &buf);
333
344
  ret = rb_str_new(buf->data, buf->length);
334
345
  X509_free(cert);
335
- BUF_MEM_free(buf);
346
+ BIO_free(out);
336
347
  }
337
348
  #endif
338
349
 
@@ -566,6 +577,14 @@ static VALUE t_detach_fd (VALUE self, VALUE signature)
566
577
  return INT2NUM(evma_detach_fd (NUM2ULONG (signature)));
567
578
  }
568
579
 
580
+ /*********************
581
+ t_get_file_descriptor
582
+ *********************/
583
+ static VALUE t_get_file_descriptor (VALUE self, VALUE signature)
584
+ {
585
+ return INT2NUM(evma_get_file_descriptor (NUM2ULONG (signature)));
586
+ }
587
+
569
588
  /**************
570
589
  t_get_sock_opt
571
590
  **************/
@@ -1204,6 +1223,7 @@ extern "C" void Init_rubyeventmachine()
1204
1223
  rb_define_module_function (EmModule, "start_tcp_server", (VALUE(*)(...))t_start_server, 2);
1205
1224
  rb_define_module_function (EmModule, "stop_tcp_server", (VALUE(*)(...))t_stop_server, 1);
1206
1225
  rb_define_module_function (EmModule, "start_unix_server", (VALUE(*)(...))t_start_unix_server, 1);
1226
+ rb_define_module_function (EmModule, "attach_sd", (VALUE(*)(...))t_attach_sd, 1);
1207
1227
  rb_define_module_function (EmModule, "set_tls_parms", (VALUE(*)(...))t_set_tls_parms, 4);
1208
1228
  rb_define_module_function (EmModule, "start_tls", (VALUE(*)(...))t_start_tls, 1);
1209
1229
  rb_define_module_function (EmModule, "get_peer_cert", (VALUE(*)(...))t_get_peer_cert, 1);
@@ -1217,6 +1237,7 @@ extern "C" void Init_rubyeventmachine()
1217
1237
 
1218
1238
  rb_define_module_function (EmModule, "attach_fd", (VALUE (*)(...))t_attach_fd, 2);
1219
1239
  rb_define_module_function (EmModule, "detach_fd", (VALUE (*)(...))t_detach_fd, 1);
1240
+ rb_define_module_function (EmModule, "get_file_descriptor", (VALUE (*)(...))t_get_file_descriptor, 1);
1220
1241
  rb_define_module_function (EmModule, "get_sock_opt", (VALUE (*)(...))t_get_sock_opt, 3);
1221
1242
  rb_define_module_function (EmModule, "set_sock_opt", (VALUE (*)(...))t_set_sock_opt, 4);
1222
1243
  rb_define_module_function (EmModule, "set_notify_readable", (VALUE (*)(...))t_set_notify_readable, 2);
data/ext/ssl.cpp CHANGED
@@ -459,7 +459,7 @@ extern "C" int ssl_verify_wrapper(int preverify_ok, X509_STORE_CTX *ctx)
459
459
 
460
460
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject(binding));
461
461
  result = (cd->VerifySslPeer(buf->data) == true ? 1 : 0);
462
- BUF_MEM_free(buf);
462
+ BIO_free(out);
463
463
 
464
464
  return result;
465
465
  }
data/java/.classpath CHANGED
@@ -1,8 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <classpath>
3
3
  <classpathentry kind="src" path="src"/>
4
- <classpathentry excluding="src/" kind="src" path=""/>
5
4
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
6
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
7
- <classpathentry kind="output" path="src"/>
5
+ <classpathentry kind="output" path="bin"/>
8
6
  </classpath>
data/java/.gitignore ADDED
@@ -0,0 +1 @@
1
+ /bin
@@ -0,0 +1,13 @@
1
+ package com.rubyeventmachine;
2
+
3
+ import java.net.SocketAddress;
4
+ import java.nio.ByteBuffer;
5
+
6
+ class DatagramPacket {
7
+ public ByteBuffer bb;
8
+ public SocketAddress recipient;
9
+ public DatagramPacket (ByteBuffer _bb, SocketAddress _recipient) {
10
+ bb = _bb;
11
+ recipient = _recipient;
12
+ }
13
+ }