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

Sign up to get free protection for your applications and to get access to all the features.
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
+ }