eventmachine 1.0.0.beta.1-java → 1.0.0.beta.2-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 (45) hide show
  1. data/Rakefile +7 -298
  2. data/eventmachine.gemspec +1 -1
  3. data/ext/cmain.cpp +0 -14
  4. data/ext/em.cpp +3 -36
  5. data/ext/em.h +2 -13
  6. data/ext/eventmachine.h +0 -1
  7. data/ext/extconf.rb +53 -46
  8. data/ext/project.h +0 -4
  9. data/ext/rubymain.cpp +0 -15
  10. data/lib/em/pure_ruby.rb +3 -2
  11. data/lib/em/version.rb +1 -1
  12. data/lib/eventmachine.rb +2 -0
  13. data/lib/jeventmachine.rb +1 -1
  14. data/tasks/doc.rake +30 -0
  15. data/tasks/package.rake +85 -0
  16. data/tasks/test.rake +6 -0
  17. metadata +184 -213
  18. data/ext/cplusplus.cpp +0 -202
  19. data/ext/emwin.cpp +0 -300
  20. data/ext/emwin.h +0 -94
  21. data/ext/epoll.cpp +0 -26
  22. data/ext/epoll.h +0 -25
  23. data/ext/eventmachine_cpp.h +0 -96
  24. data/ext/files.cpp +0 -94
  25. data/ext/files.h +0 -65
  26. data/ext/sigs.cpp +0 -89
  27. data/ext/sigs.h +0 -32
  28. data/java/src/com/rubyeventmachine/application/Application.java +0 -194
  29. data/java/src/com/rubyeventmachine/application/Connection.java +0 -74
  30. data/java/src/com/rubyeventmachine/application/ConnectionFactory.java +0 -37
  31. data/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +0 -46
  32. data/java/src/com/rubyeventmachine/application/PeriodicTimer.java +0 -38
  33. data/java/src/com/rubyeventmachine/application/Timer.java +0 -54
  34. data/java/src/com/rubyeventmachine/tests/ApplicationTest.java +0 -109
  35. data/java/src/com/rubyeventmachine/tests/ConnectTest.java +0 -148
  36. data/java/src/com/rubyeventmachine/tests/EMTest.java +0 -80
  37. data/java/src/com/rubyeventmachine/tests/TestDatagrams.java +0 -53
  38. data/java/src/com/rubyeventmachine/tests/TestServers.java +0 -75
  39. data/java/src/com/rubyeventmachine/tests/TestTimers.java +0 -90
  40. data/lib/evma.rb +0 -32
  41. data/lib/evma/callback.rb +0 -32
  42. data/lib/evma/container.rb +0 -75
  43. data/lib/evma/factory.rb +0 -77
  44. data/lib/evma/protocol.rb +0 -87
  45. data/lib/evma/reactor.rb +0 -48
data/ext/sigs.h DELETED
@@ -1,32 +0,0 @@
1
- /*****************************************************************************
2
-
3
- $Id$
4
-
5
- File: sigs.h
6
- Date: 06Apr06
7
-
8
- Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: blackhedd
10
-
11
- This program is free software; you can redistribute it and/or modify
12
- it under the terms of either: 1) the GNU General Public License
13
- as published by the Free Software Foundation; either version 2 of the
14
- License, or (at your option) any later version; or 2) Ruby's License.
15
-
16
- See the file COPYING for complete licensing information.
17
-
18
- *****************************************************************************/
19
-
20
-
21
- #ifndef __Signals__H_
22
- #define __Signals__H_
23
-
24
- void InstallSignalHandlers();
25
- extern bool gTerminateSignalReceived;
26
-
27
- #ifdef OS_WIN32
28
- void HookControlC (bool);
29
- #endif
30
-
31
- #endif // __Signals__H_
32
-
@@ -1,194 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
- /**
30
- *
31
- */
32
- package com.rubyeventmachine.application;
33
-
34
- import java.nio.ByteBuffer;
35
- import java.nio.channels.*;
36
- import java.util.*;
37
- import java.io.*;
38
- import java.net.*;
39
- import java.net.SocketAddress;
40
-
41
- import com.rubyeventmachine.*;
42
-
43
- /**
44
- * @author francis
45
- *
46
- */
47
- public class Application {
48
-
49
-
50
- public class Reactor extends EmReactor {
51
-
52
- private Application application;
53
- private TreeMap<Long, Timer> timers;
54
- private TreeMap<Long, Connection> connections;
55
- private TreeMap<Long, ConnectionFactory> acceptors;
56
- /**
57
- *
58
- */
59
- public Reactor (Application app) {
60
- application = app;
61
- timers = new TreeMap<Long, Timer>();
62
- connections = new TreeMap<Long, Connection>();
63
- acceptors = new TreeMap<Long, ConnectionFactory>();
64
- }
65
-
66
-
67
- public void eventCallback (long sig, int eventType, ByteBuffer data, long data2) {
68
- if (eventType == EM_TIMER_FIRED) {
69
- Timer r = timers.remove(data2);
70
- if (r != null)
71
- r._fire();
72
- else
73
- throw new RuntimeException ("unable to run unknown timer");
74
- }
75
- else if (eventType == EM_CONNECTION_COMPLETED) {
76
- Connection c = connections.get(sig);
77
- if (c != null) {
78
- c.connectionCompleted();
79
- }
80
- else
81
- throw new RuntimeException ("connection completed to unknown object");
82
-
83
- }
84
- else if (eventType == EM_CONNECTION_UNBOUND) {
85
- Connection c = connections.get(sig);
86
- if (c != null) {
87
- c.unbind();
88
- }
89
- else
90
- throw new RuntimeException ("unbind received on unknown object");
91
- }
92
- else if (eventType == EM_CONNECTION_ACCEPTED) {
93
- ConnectionFactory f = acceptors.get(sig);
94
- if (f != null) {
95
- Connection c = f.connection();
96
- c.signature = data2;
97
- c.application = application;
98
- connections.put(c.signature, c);
99
- c.postInit();
100
- //System.out.println (sig+"..."+new String(data.array()));
101
- }
102
- else
103
- throw new RuntimeException ("received connection on unknown acceptor");
104
- }
105
- else if (eventType == EM_CONNECTION_READ) {
106
- Connection c = connections.get(sig);
107
- if (c != null) {
108
- c.receiveData(data);
109
- }
110
- else throw new RuntimeException ("received data on unknown object");
111
- }
112
- else {
113
- System.out.println ("unknown event type: " + eventType);
114
- }
115
- }
116
- }
117
-
118
-
119
- Reactor reactor;
120
-
121
- public Application() {
122
- reactor = new Reactor (this);
123
- }
124
- public void addTimer (double seconds, Timer t) {
125
- t.application = this;
126
- t.interval = seconds;
127
- long s = reactor.installOneshotTimer ((int)(seconds * 1000));
128
- reactor.timers.put(s, t);
129
-
130
- }
131
-
132
- public void bindConnect (String bindAddr, int bindPort, String host, int port, Connection c) {
133
- long s = reactor.connectTcpServer(bindAddr, bindPort, host, port);
134
- c.application = this;
135
- c.signature = s;
136
- reactor.connections.put(s, c);
137
- c.postInit();
138
- }
139
-
140
- public void connect (String host, int port, Connection c) {
141
- bindConnect(null, 0, host, port, c);
142
- }
143
-
144
- public void startServer (SocketAddress sa, ConnectionFactory f) throws EmReactorException {
145
- long s = reactor.startTcpServer(sa);
146
- reactor.acceptors.put(s, f);
147
- }
148
-
149
- public void stop() {
150
- reactor.stop();
151
- }
152
- public void run() {
153
- reactor.run();
154
- }
155
- public void run (final Runnable r) {
156
- addTimer(0, new Timer() {
157
- public void fire() {
158
- r.run();
159
- }
160
- });
161
- run();
162
- }
163
-
164
- public void sendData (long sig, ByteBuffer bb) {
165
- try {
166
- reactor.sendData(sig, bb);
167
- } catch (IOException e) {}
168
- }
169
-
170
- public void sendDatagram (long sig, ByteBuffer bb, InetSocketAddress target) {
171
- reactor.sendDatagram(sig, bb, target.getHostName(), target.getPort());
172
- }
173
-
174
- public void closeConnection (long sig, boolean afterWriting) {
175
- reactor.closeConnection(sig, afterWriting);
176
- }
177
-
178
- public void openDatagramSocket (Connection c) {
179
- openDatagramSocket (new InetSocketAddress ("0.0.0.0", 0), c);
180
- }
181
- public void openDatagramSocket (InetSocketAddress addr, Connection c) {
182
- try {
183
- long s = reactor.openUdpSocket(addr);
184
- c.application = this;
185
- c.signature = s;
186
- reactor.connections.put(s, c);
187
- c.postInit();
188
- } catch (ClosedChannelException e) {
189
- } catch (IOException e) {
190
- System.out.println ("Bad Datagram socket "+e+" "+addr);
191
- /* TODO, can't catch this here, because it can happen on a bad address */
192
- }
193
- }
194
- }
@@ -1,74 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
-
30
-
31
- package com.rubyeventmachine.application;
32
-
33
- //import java.io.*;
34
- import java.nio.*;
35
- import java.net.*;
36
- //import java.nio.channels.*;
37
-
38
- public class Connection {
39
-
40
- public Application application;
41
- public long signature;
42
-
43
- public void postInit() {}
44
- public void connectionCompleted() {}
45
- public void unbind() {}
46
- public void receiveData (ByteBuffer bytebuffer) {}
47
-
48
-
49
- /**
50
- * Called by user code.
51
- * @param bytebuffer
52
- */
53
- public void sendData (ByteBuffer b) {
54
- application.sendData(signature, b);
55
- }
56
-
57
- /**
58
- * This is called by user code.
59
- * TODO: don't expose the exception here.
60
- */
61
- public void close() {
62
- application.closeConnection(signature, false);
63
- }
64
- /**
65
- * This is called by user code/
66
- */
67
- public void closeAfterWriting() {
68
- application.closeConnection(signature, true);
69
- }
70
-
71
- public void sendDatagram (ByteBuffer bb, InetSocketAddress addr) {
72
- application.sendDatagram (signature, bb, addr);
73
- }
74
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
-
30
-
31
- package com.rubyeventmachine.application;
32
-
33
- //import com.rubyeventmachine.*;
34
-
35
- public interface ConnectionFactory {
36
- public Connection connection();
37
- }
@@ -1,46 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
-
30
-
31
- package com.rubyeventmachine.application;
32
-
33
- import com.rubyeventmachine.application.ConnectionFactory;
34
-
35
- public class DefaultConnectionFactory implements ConnectionFactory {
36
-
37
- /**
38
- * Convenience class. Its connection() method returns an instance of class
39
- * Connection, which is usually overridden. This class is probably most
40
- * useful for unit testing.
41
- */
42
- public Connection connection() {
43
- return new Connection();
44
- }
45
-
46
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
-
30
- package com.rubyeventmachine.application;
31
-
32
- public class PeriodicTimer extends Timer {
33
-
34
- public void _fire() {
35
- fire();
36
- application.addTimer(interval, this);
37
- }
38
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * $Id$
3
- *
4
- * Author:: Francis Cianfrocca (gmail: blackhedd)
5
- * Homepage:: http://rubyeventmachine.com
6
- * Date:: 15 Jul 2007
7
- *
8
- * See EventMachine and EventMachine::Connection for documentation and
9
- * usage examples.
10
- *
11
- *
12
- *----------------------------------------------------------------------------
13
- *
14
- * Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
15
- * Gmail: blackhedd
16
- *
17
- * This program is free software; you can redistribute it and/or modify
18
- * it under the terms of either: 1) the GNU General Public License
19
- * as published by the Free Software Foundation; either version 2 of the
20
- * License, or (at your option) any later version; or 2) Ruby's License.
21
- *
22
- * See the file COPYING for complete licensing information.
23
- *
24
- *---------------------------------------------------------------------------
25
- *
26
- *
27
- */
28
-
29
-
30
- package com.rubyeventmachine.application;
31
-
32
- public class Timer {
33
- /**
34
- * User code is expected to call a method on a controlling Application,
35
- * which will fill in this field so subsequent user code can access it.
36
- */
37
- public Application application;
38
- public double interval;
39
-
40
- /**
41
- * The reactor calls here, and it may be overridden in subclasses.
42
- * User code should never call this method.
43
- */
44
- public void _fire() {
45
- fire();
46
- }
47
-
48
- /**
49
- * User code is expected to override this method.
50
- */
51
- public void fire() {
52
- }
53
-
54
- }