eventmachine 0.12.10-x86-mswin32-60 → 1.0.0.beta.2-x86-mswin32-60
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.
- data/.gitignore +2 -0
- data/Gemfile +1 -0
- data/README +80 -81
- data/Rakefile +7 -370
- data/docs/COPYING +60 -60
- data/docs/ChangeLog +211 -211
- data/docs/DEFERRABLES +246 -133
- data/docs/EPOLL +141 -141
- data/docs/GNU +281 -281
- data/docs/INSTALL +13 -13
- data/docs/KEYBOARD +42 -38
- data/docs/LEGAL +25 -25
- data/docs/LIGHTWEIGHT_CONCURRENCY +130 -70
- data/docs/PURE_RUBY +75 -75
- data/docs/RELEASE_NOTES +94 -94
- data/docs/SMTP +4 -2
- data/docs/SPAWNED_PROCESSES +148 -89
- data/docs/TODO +8 -8
- data/eventmachine.gemspec +19 -26
- data/examples/ex_channel.rb +42 -42
- data/examples/ex_queue.rb +2 -2
- data/examples/ex_tick_loop_array.rb +15 -0
- data/examples/ex_tick_loop_counter.rb +32 -0
- data/examples/helper.rb +1 -1
- data/ext/binder.cpp +0 -1
- data/ext/cmain.cpp +36 -25
- data/ext/ed.cpp +104 -113
- data/ext/ed.h +24 -30
- data/ext/em.cpp +349 -283
- data/ext/em.h +25 -29
- data/ext/eventmachine.h +5 -4
- data/ext/extconf.rb +58 -49
- data/ext/fastfilereader/extconf.rb +5 -3
- data/ext/fastfilereader/mapper.cpp +214 -214
- data/ext/fastfilereader/mapper.h +59 -59
- data/ext/fastfilereader/rubymain.cpp +127 -127
- data/ext/kb.cpp +1 -3
- data/ext/page.cpp +107 -107
- data/ext/page.h +51 -51
- data/ext/pipe.cpp +9 -11
- data/ext/project.h +12 -8
- data/ext/rubymain.cpp +138 -104
- data/java/.classpath +8 -8
- data/java/.project +17 -17
- data/java/src/com/rubyeventmachine/EmReactor.java +1 -0
- data/java/src/com/rubyeventmachine/EmReactorException.java +40 -40
- data/lib/em/buftok.rb +138 -138
- data/lib/em/callback.rb +25 -25
- data/lib/em/channel.rb +1 -1
- data/lib/em/connection.rb +6 -1
- data/lib/em/deferrable.rb +16 -2
- data/lib/em/file_watch.rb +53 -53
- data/lib/em/future.rb +61 -61
- data/lib/em/iterator.rb +270 -0
- data/lib/em/messages.rb +66 -66
- data/lib/em/process_watch.rb +43 -43
- data/lib/em/protocols.rb +1 -1
- data/lib/em/protocols/header_and_content.rb +138 -138
- data/lib/em/protocols/httpclient.rb +267 -262
- data/lib/em/protocols/line_protocol.rb +28 -0
- data/lib/em/protocols/memcache.rb +322 -322
- data/lib/em/protocols/postgres3.rb +247 -247
- data/lib/em/protocols/saslauth.rb +175 -175
- data/lib/em/protocols/smtpserver.rb +640 -547
- data/lib/em/protocols/stomp.rb +200 -200
- data/lib/em/protocols/tcptest.rb +52 -52
- data/lib/{pr_eventmachine.rb → em/pure_ruby.rb} +1013 -1022
- data/lib/em/queue.rb +1 -0
- data/lib/em/spawnable.rb +85 -85
- data/lib/em/streamer.rb +130 -130
- data/lib/em/tick_loop.rb +85 -0
- data/lib/em/timers.rb +2 -1
- data/lib/em/version.rb +1 -1
- data/lib/eventmachine.rb +40 -84
- data/lib/jeventmachine.rb +2 -1
- data/lib/rubyeventmachine.rb +2 -0
- data/setup.rb +1585 -1585
- data/tasks/doc.rake +30 -0
- data/tasks/package.rake +85 -0
- data/tasks/test.rake +6 -0
- data/tests/client.crt +31 -31
- data/tests/client.key +51 -51
- data/tests/test_attach.rb +13 -3
- data/tests/test_basic.rb +60 -95
- data/tests/test_channel.rb +3 -2
- data/tests/test_defer.rb +49 -47
- data/tests/test_deferrable.rb +35 -0
- data/tests/test_error_handler.rb +35 -35
- data/tests/test_errors.rb +82 -82
- data/tests/test_exc.rb +55 -55
- data/tests/test_file_watch.rb +49 -49
- data/tests/test_futures.rb +198 -198
- data/tests/test_handler_check.rb +36 -36
- data/tests/test_hc.rb +190 -218
- data/tests/test_httpclient.rb +227 -218
- data/tests/test_httpclient2.rb +3 -2
- data/tests/test_inactivity_timeout.rb +3 -3
- data/tests/test_kb.rb +60 -60
- data/tests/test_ltp.rb +13 -5
- data/tests/test_ltp2.rb +317 -317
- data/tests/test_next_tick.rb +1 -1
- data/tests/test_object_protocol.rb +36 -36
- data/tests/test_pending_connect_timeout.rb +2 -2
- data/tests/test_process_watch.rb +50 -48
- data/tests/test_proxy_connection.rb +52 -0
- data/tests/test_pure.rb +134 -125
- data/tests/test_queue.rb +44 -44
- data/tests/test_running.rb +42 -42
- data/tests/test_sasl.rb +72 -72
- data/tests/test_send_file.rb +251 -242
- data/tests/test_servers.rb +76 -76
- data/tests/test_smtpclient.rb +83 -83
- data/tests/test_smtpserver.rb +85 -85
- data/tests/test_spawn.rb +322 -322
- data/tests/test_ssl_methods.rb +49 -49
- data/tests/test_ssl_verify.rb +82 -82
- data/tests/test_tick_loop.rb +59 -0
- data/tests/test_timers.rb +13 -15
- data/tests/test_ud.rb +36 -36
- data/tests/testem.rb +31 -31
- metadata +66 -51
- data/ext/cplusplus.cpp +0 -202
- data/ext/emwin.cpp +0 -300
- data/ext/emwin.h +0 -94
- data/ext/epoll.cpp +0 -26
- data/ext/epoll.h +0 -25
- data/ext/eventmachine_cpp.h +0 -96
- data/ext/files.cpp +0 -94
- data/ext/files.h +0 -65
- data/ext/sigs.cpp +0 -89
- data/ext/sigs.h +0 -32
- data/java/src/com/rubyeventmachine/application/Application.java +0 -194
- data/java/src/com/rubyeventmachine/application/Connection.java +0 -74
- data/java/src/com/rubyeventmachine/application/ConnectionFactory.java +0 -37
- data/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +0 -46
- data/java/src/com/rubyeventmachine/application/PeriodicTimer.java +0 -38
- data/java/src/com/rubyeventmachine/application/Timer.java +0 -54
- data/java/src/com/rubyeventmachine/tests/ApplicationTest.java +0 -109
- data/java/src/com/rubyeventmachine/tests/ConnectTest.java +0 -148
- data/java/src/com/rubyeventmachine/tests/EMTest.java +0 -80
- data/java/src/com/rubyeventmachine/tests/TestDatagrams.java +0 -53
- data/java/src/com/rubyeventmachine/tests/TestServers.java +0 -75
- data/java/src/com/rubyeventmachine/tests/TestTimers.java +0 -90
- data/lib/evma.rb +0 -32
- data/lib/evma/callback.rb +0 -32
- data/lib/evma/container.rb +0 -75
- data/lib/evma/factory.rb +0 -77
- data/lib/evma/protocol.rb +0 -87
- data/lib/evma/reactor.rb +0 -48
- data/web/whatis +0 -7
data/ext/emwin.cpp
DELETED
@@ -1,300 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: emwin.cpp
|
6
|
-
Date: 05May06
|
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
|
-
// THIS ENTIRE FILE IS FOR WINDOWS BUILDS ONLY
|
22
|
-
// INCOMPLETE AND DISABLED FOR NOW.
|
23
|
-
#ifdef xOS_WIN32
|
24
|
-
|
25
|
-
#include "project.h"
|
26
|
-
|
27
|
-
|
28
|
-
// Keep a global variable floating around
|
29
|
-
// with the current loop time as set by the Event Machine.
|
30
|
-
// This avoids the need for frequent expensive calls to time(NULL);
|
31
|
-
time_t gCurrentLoopTime;
|
32
|
-
|
33
|
-
|
34
|
-
/******************************
|
35
|
-
EventMachine_t::EventMachine_t
|
36
|
-
******************************/
|
37
|
-
|
38
|
-
EventMachine_t::EventMachine_t (void (*event_callback)(const char*, int, const char*, int)):
|
39
|
-
EventCallback (event_callback),
|
40
|
-
NextHeartbeatTime (0)
|
41
|
-
{
|
42
|
-
gTerminateSignalReceived = false;
|
43
|
-
Iocp = NULL;
|
44
|
-
}
|
45
|
-
|
46
|
-
|
47
|
-
/*******************************
|
48
|
-
EventMachine_t::~EventMachine_t
|
49
|
-
*******************************/
|
50
|
-
|
51
|
-
EventMachine_t::~EventMachine_t()
|
52
|
-
{
|
53
|
-
cerr << "EM __dt\n";
|
54
|
-
if (Iocp)
|
55
|
-
CloseHandle (Iocp);
|
56
|
-
}
|
57
|
-
|
58
|
-
|
59
|
-
/****************************
|
60
|
-
EventMachine_t::ScheduleHalt
|
61
|
-
****************************/
|
62
|
-
|
63
|
-
void EventMachine_t::ScheduleHalt()
|
64
|
-
{
|
65
|
-
/* This is how we stop the machine.
|
66
|
-
* This can be called by clients. Signal handlers will probably
|
67
|
-
* set the global flag.
|
68
|
-
* For now this means there can only be one EventMachine ever running at a time.
|
69
|
-
*/
|
70
|
-
gTerminateSignalReceived = true;
|
71
|
-
}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
/*******************
|
76
|
-
EventMachine_t::Run
|
77
|
-
*******************/
|
78
|
-
|
79
|
-
void EventMachine_t::Run()
|
80
|
-
{
|
81
|
-
HookControlC (true);
|
82
|
-
|
83
|
-
Iocp = CreateIoCompletionPort (INVALID_HANDLE_VALUE, NULL, 0, 0);
|
84
|
-
if (Iocp == NULL)
|
85
|
-
throw std::runtime_error ("no completion port");
|
86
|
-
|
87
|
-
|
88
|
-
DWORD nBytes, nCompletionKey;
|
89
|
-
LPOVERLAPPED Overlapped;
|
90
|
-
|
91
|
-
do {
|
92
|
-
gCurrentLoopTime = time(NULL);
|
93
|
-
// Have some kind of strategy that will dequeue maybe up to 10 completions
|
94
|
-
// without running the timers as long as they are available immediately.
|
95
|
-
// Otherwise in a busy server we're calling them every time through the loop.
|
96
|
-
if (!_RunTimers())
|
97
|
-
break;
|
98
|
-
if (GetQueuedCompletionStatus (Iocp, &nBytes, &nCompletionKey, &Overlapped, 1000)) {
|
99
|
-
}
|
100
|
-
cerr << "+";
|
101
|
-
} while (!gTerminateSignalReceived);
|
102
|
-
|
103
|
-
|
104
|
-
/*
|
105
|
-
while (true) {
|
106
|
-
gCurrentLoopTime = time(NULL);
|
107
|
-
if (!_RunTimers())
|
108
|
-
break;
|
109
|
-
_AddNewDescriptors();
|
110
|
-
if (!_RunOnce())
|
111
|
-
break;
|
112
|
-
if (gTerminateSignalReceived)
|
113
|
-
break;
|
114
|
-
}
|
115
|
-
*/
|
116
|
-
|
117
|
-
HookControlC (false);
|
118
|
-
}
|
119
|
-
|
120
|
-
|
121
|
-
/**************************
|
122
|
-
EventMachine_t::_RunTimers
|
123
|
-
**************************/
|
124
|
-
|
125
|
-
bool EventMachine_t::_RunTimers()
|
126
|
-
{
|
127
|
-
// These are caller-defined timer handlers.
|
128
|
-
// Return T/F to indicate whether we should continue the main loop.
|
129
|
-
// We rely on the fact that multimaps sort by their keys to avoid
|
130
|
-
// inspecting the whole list every time we come here.
|
131
|
-
// Just keep inspecting and processing the list head until we hit
|
132
|
-
// one that hasn't expired yet.
|
133
|
-
|
134
|
-
while (true) {
|
135
|
-
multimap<time_t,Timer_t>::iterator i = Timers.begin();
|
136
|
-
if (i == Timers.end())
|
137
|
-
break;
|
138
|
-
if (i->first > gCurrentLoopTime)
|
139
|
-
break;
|
140
|
-
if (EventCallback)
|
141
|
-
(*EventCallback) (NULL, EM_TIMER_FIRED, NULL, i->second.GetBinding());
|
142
|
-
Timers.erase (i);
|
143
|
-
}
|
144
|
-
return true;
|
145
|
-
}
|
146
|
-
|
147
|
-
|
148
|
-
/***********************************
|
149
|
-
EventMachine_t::InstallOneshotTimer
|
150
|
-
***********************************/
|
151
|
-
|
152
|
-
const char *EventMachine_t::InstallOneshotTimer (int seconds)
|
153
|
-
{
|
154
|
-
if (Timers.size() > MaxOutstandingTimers)
|
155
|
-
return false;
|
156
|
-
// Don't use the global loop-time variable here, because we might
|
157
|
-
// get called before the main event machine is running.
|
158
|
-
|
159
|
-
Timer_t t;
|
160
|
-
Timers.insert (make_pair (time(NULL) + seconds, t));
|
161
|
-
return t.GetBinding();
|
162
|
-
}
|
163
|
-
|
164
|
-
|
165
|
-
/**********************************
|
166
|
-
EventMachine_t::OpenDatagramSocket
|
167
|
-
**********************************/
|
168
|
-
|
169
|
-
const char *EventMachine_t::OpenDatagramSocket (const char *address, int port)
|
170
|
-
{
|
171
|
-
cerr << "OPEN DATAGRAM SOCKET\n";
|
172
|
-
return "Unimplemented";
|
173
|
-
}
|
174
|
-
|
175
|
-
|
176
|
-
/*******************************
|
177
|
-
EventMachine_t::CreateTcpServer
|
178
|
-
*******************************/
|
179
|
-
|
180
|
-
const char *EventMachine_t::CreateTcpServer (const char *server, int port)
|
181
|
-
{
|
182
|
-
/* Create a TCP-acceptor (server) socket and add it to the event machine.
|
183
|
-
* Return the binding of the new acceptor to the caller.
|
184
|
-
* This binding will be referenced when the new acceptor sends events
|
185
|
-
* to indicate accepted connections.
|
186
|
-
*/
|
187
|
-
|
188
|
-
const char *output_binding = NULL;
|
189
|
-
|
190
|
-
struct sockaddr_in sin;
|
191
|
-
|
192
|
-
SOCKET sd_accept = socket (AF_INET, SOCK_STREAM, 0);
|
193
|
-
if (sd_accept == INVALID_SOCKET) {
|
194
|
-
goto fail;
|
195
|
-
}
|
196
|
-
|
197
|
-
memset (&sin, 0, sizeof(sin));
|
198
|
-
sin.sin_family = AF_INET;
|
199
|
-
sin.sin_addr.s_addr = INADDR_ANY;
|
200
|
-
sin.sin_port = htons (port);
|
201
|
-
|
202
|
-
if (server && *server) {
|
203
|
-
sin.sin_addr.s_addr = inet_addr (server);
|
204
|
-
if (sin.sin_addr.s_addr == INADDR_NONE) {
|
205
|
-
hostent *hp = gethostbyname (server);
|
206
|
-
if (hp == NULL) {
|
207
|
-
//__warning ("hostname not resolved: ", server);
|
208
|
-
goto fail;
|
209
|
-
}
|
210
|
-
sin.sin_addr.s_addr = ((in_addr*)(hp->h_addr))->s_addr;
|
211
|
-
}
|
212
|
-
}
|
213
|
-
|
214
|
-
|
215
|
-
// No need to set reuseaddr on Windows.
|
216
|
-
|
217
|
-
|
218
|
-
if (bind (sd_accept, (struct sockaddr*)&sin, sizeof(sin))) {
|
219
|
-
//__warning ("binding failed");
|
220
|
-
goto fail;
|
221
|
-
}
|
222
|
-
|
223
|
-
if (listen (sd_accept, 100)) {
|
224
|
-
//__warning ("listen failed");
|
225
|
-
goto fail;
|
226
|
-
}
|
227
|
-
|
228
|
-
{ // Looking good.
|
229
|
-
AcceptorDescriptor *ad = new AcceptorDescriptor (this, sd_accept);
|
230
|
-
if (!ad)
|
231
|
-
throw std::runtime_error ("unable to allocate acceptor");
|
232
|
-
Add (ad);
|
233
|
-
output_binding = ad->GetBinding();
|
234
|
-
|
235
|
-
CreateIoCompletionPort ((HANDLE)sd_accept, Iocp, NULL, 0);
|
236
|
-
SOCKET sd = socket (AF_INET, SOCK_STREAM, 0);
|
237
|
-
CreateIoCompletionPort ((HANDLE)sd, Iocp, NULL, 0);
|
238
|
-
AcceptEx (sd_accept, sd,
|
239
|
-
}
|
240
|
-
|
241
|
-
return output_binding;
|
242
|
-
|
243
|
-
fail:
|
244
|
-
if (sd_accept != INVALID_SOCKET)
|
245
|
-
closesocket (sd_accept);
|
246
|
-
return NULL;
|
247
|
-
}
|
248
|
-
|
249
|
-
|
250
|
-
/*******************************
|
251
|
-
EventMachine_t::ConnectToServer
|
252
|
-
*******************************/
|
253
|
-
|
254
|
-
const char *EventMachine_t::ConnectToServer (const char *server, int port)
|
255
|
-
{
|
256
|
-
if (!server || !*server || !port)
|
257
|
-
return NULL;
|
258
|
-
|
259
|
-
sockaddr_in pin;
|
260
|
-
unsigned long HostAddr;
|
261
|
-
|
262
|
-
HostAddr = inet_addr (server);
|
263
|
-
if (HostAddr == INADDR_NONE) {
|
264
|
-
hostent *hp = gethostbyname (server);
|
265
|
-
if (!hp)
|
266
|
-
return NULL;
|
267
|
-
HostAddr = ((in_addr*)(hp->h_addr))->s_addr;
|
268
|
-
}
|
269
|
-
|
270
|
-
memset (&pin, 0, sizeof(pin));
|
271
|
-
pin.sin_family = AF_INET;
|
272
|
-
pin.sin_addr.s_addr = HostAddr;
|
273
|
-
pin.sin_port = htons (port);
|
274
|
-
|
275
|
-
int sd = socket (AF_INET, SOCK_STREAM, 0);
|
276
|
-
if (sd == INVALID_SOCKET)
|
277
|
-
return NULL;
|
278
|
-
|
279
|
-
|
280
|
-
LPOVERLAPPED olap = (LPOVERLAPPED) calloc (1, sizeof (OVERLAPPED));
|
281
|
-
cerr << "I'm dying now\n";
|
282
|
-
throw runtime_error ("UNIMPLEMENTED!!!\n");
|
283
|
-
|
284
|
-
}
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
/*******************
|
289
|
-
EventMachine_t::Add
|
290
|
-
*******************/
|
291
|
-
|
292
|
-
void EventMachine_t::Add (EventableDescriptor *ed)
|
293
|
-
{
|
294
|
-
cerr << "ADD\n";
|
295
|
-
}
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
#endif // OS_WIN32
|
300
|
-
|
data/ext/emwin.h
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: emwin.h
|
6
|
-
Date: 05May06
|
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
|
-
// THIS ENTIRE FILE IS FOR WINDOWS BUILDS ONLY.
|
22
|
-
// INCOMPLETE AND DISABLED FOR NOW.
|
23
|
-
#ifdef xOS_WIN32
|
24
|
-
|
25
|
-
#ifndef __EventMachine__H_
|
26
|
-
#define __EventMachine__H_
|
27
|
-
|
28
|
-
|
29
|
-
extern time_t gCurrentLoopTime;
|
30
|
-
|
31
|
-
class EventableDescriptor;
|
32
|
-
|
33
|
-
|
34
|
-
/********************
|
35
|
-
class EventMachine_t
|
36
|
-
********************/
|
37
|
-
|
38
|
-
class EventMachine_t
|
39
|
-
{
|
40
|
-
public:
|
41
|
-
EventMachine_t (void(*event_callback)(const char*, int, const char*, int));
|
42
|
-
virtual ~EventMachine_t();
|
43
|
-
|
44
|
-
void Run();
|
45
|
-
void ScheduleHalt();
|
46
|
-
const char *InstallOneshotTimer (int);
|
47
|
-
const char *ConnectToServer (const char *, int);
|
48
|
-
const char *CreateTcpServer (const char *, int);
|
49
|
-
const char *OpenDatagramSocket (const char *, int);
|
50
|
-
|
51
|
-
void Add (EventableDescriptor*);
|
52
|
-
|
53
|
-
public:
|
54
|
-
enum { // Event names
|
55
|
-
TIMER_FIRED = 100,
|
56
|
-
CONNECTION_READ = 101,
|
57
|
-
CONNECTION_UNBOUND = 102,
|
58
|
-
CONNECTION_ACCEPTED = 103,
|
59
|
-
CONNECTION_COMPLETED = 104,
|
60
|
-
LOOPBREAK_SIGNAL = 105
|
61
|
-
};
|
62
|
-
|
63
|
-
private:
|
64
|
-
HANDLE Iocp;
|
65
|
-
|
66
|
-
private:
|
67
|
-
bool _RunOnce();
|
68
|
-
bool _RunTimers();
|
69
|
-
void _AddNewDescriptors();
|
70
|
-
|
71
|
-
private:
|
72
|
-
enum {
|
73
|
-
MaxOutstandingTimers = 40,
|
74
|
-
HeartbeatInterval = 2
|
75
|
-
};
|
76
|
-
void (*EventCallback)(const char*, int, const char*, int);
|
77
|
-
|
78
|
-
class Timer_t: public Bindable_t {
|
79
|
-
};
|
80
|
-
|
81
|
-
multimap<time_t, Timer_t> Timers;
|
82
|
-
vector<EventableDescriptor*> Descriptors;
|
83
|
-
vector<EventableDescriptor*> NewDescriptors;
|
84
|
-
|
85
|
-
time_t NextHeartbeatTime;
|
86
|
-
};
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
#endif // __EventMachine__H_
|
92
|
-
|
93
|
-
#endif // OS_WIN32
|
94
|
-
|
data/ext/epoll.cpp
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: epoll.cpp
|
6
|
-
Date: 06Jun07
|
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
|
-
#ifdef HAVE_EPOLL
|
22
|
-
|
23
|
-
#include "project.h"
|
24
|
-
|
25
|
-
#endif // HAVE_EPOLL
|
26
|
-
|
data/ext/epoll.h
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: epoll.h
|
6
|
-
Date: 06Jun07
|
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
|
-
#ifdef HAVE_EPOLL
|
22
|
-
|
23
|
-
|
24
|
-
#endif // HAVE_EPOLL
|
25
|
-
|
data/ext/eventmachine_cpp.h
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: eventmachine_cpp.h
|
6
|
-
Date: 27Jul07
|
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 __EVMA_EventmachineCpp__H_
|
22
|
-
#define __EVMA_EventmachineCpp__H_
|
23
|
-
|
24
|
-
|
25
|
-
// This material is only for directly integrating EM into C++ programs.
|
26
|
-
|
27
|
-
namespace EM {
|
28
|
-
|
29
|
-
void Callback (const unsigned long sig, int event, const char *data, const unsigned long length);
|
30
|
-
void Run (void(*)(void));
|
31
|
-
void AddTimer (int, void(*)());
|
32
|
-
void StopReactor();
|
33
|
-
|
34
|
-
/***************
|
35
|
-
class Eventable
|
36
|
-
***************/
|
37
|
-
|
38
|
-
class Eventable {
|
39
|
-
public:
|
40
|
-
Eventable() {}
|
41
|
-
virtual ~Eventable() {}
|
42
|
-
|
43
|
-
unsigned long Signature;
|
44
|
-
|
45
|
-
// Called by the framework
|
46
|
-
virtual void ReceiveData (const char *data, int length) {}
|
47
|
-
virtual void ConnectionCompleted() {}
|
48
|
-
virtual void Accept (const unsigned long) {}
|
49
|
-
virtual void Unbind() {}
|
50
|
-
virtual void PostInit() {}
|
51
|
-
virtual void SslHandshakeCompleted() {}
|
52
|
-
|
53
|
-
void StopReactor() {EM::StopReactor();}
|
54
|
-
};
|
55
|
-
|
56
|
-
/****************
|
57
|
-
class Connection
|
58
|
-
****************/
|
59
|
-
|
60
|
-
class Connection: public Eventable {
|
61
|
-
public:
|
62
|
-
Connection() {}
|
63
|
-
virtual ~Connection() {}
|
64
|
-
|
65
|
-
virtual void Connect (const char*, int);
|
66
|
-
virtual void BindConnect (const char *, int, const char*, int);
|
67
|
-
|
68
|
-
void SendData (const char *data);
|
69
|
-
void SendData (const char *data, int length);
|
70
|
-
void Close (bool afterWriting);
|
71
|
-
};
|
72
|
-
|
73
|
-
|
74
|
-
/**************
|
75
|
-
class Acceptor
|
76
|
-
**************/
|
77
|
-
|
78
|
-
class Acceptor: public Eventable {
|
79
|
-
public:
|
80
|
-
Acceptor() {PostInit();}
|
81
|
-
virtual ~Acceptor() {}
|
82
|
-
|
83
|
-
void Start (const char*, int);
|
84
|
-
void Accept (const unsigned long);
|
85
|
-
|
86
|
-
virtual Connection *MakeConnection() {return new Connection();}
|
87
|
-
};
|
88
|
-
|
89
|
-
|
90
|
-
};
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
#endif // __EVMA_EventmachineCpp__H_
|