eventmachine 1.0.0.beta.1 → 1.0.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
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 +6 -35
  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/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
-
@@ -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_
data/ext/files.cpp DELETED
@@ -1,94 +0,0 @@
1
- /*****************************************************************************
2
-
3
- $Id$
4
-
5
- File: files.cpp
6
- Date: 26Aug06
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
- #include "project.h"
21
-
22
-
23
- /******************************************
24
- FileStreamDescriptor::FileStreamDescriptor
25
- ******************************************/
26
-
27
- FileStreamDescriptor::FileStreamDescriptor (int fd, EventMachine_t *em):
28
- EventableDescriptor (fd, em),
29
- OutboundDataSize (0)
30
- {
31
- cerr << "#####";
32
- }
33
-
34
-
35
- /*******************************************
36
- FileStreamDescriptor::~FileStreamDescriptor
37
- *******************************************/
38
-
39
- FileStreamDescriptor::~FileStreamDescriptor()
40
- {
41
- // Run down any stranded outbound data.
42
- for (size_t i=0; i < OutboundPages.size(); i++)
43
- OutboundPages[i].Free();
44
- }
45
-
46
-
47
- /**************************
48
- FileStreamDescriptor::Read
49
- **************************/
50
-
51
- void FileStreamDescriptor::Read()
52
- {
53
- }
54
-
55
- /***************************
56
- FileStreamDescriptor::Write
57
- ***************************/
58
-
59
- void FileStreamDescriptor::Write()
60
- {
61
- }
62
-
63
-
64
- /*******************************
65
- FileStreamDescriptor::Heartbeat
66
- *******************************/
67
-
68
- void FileStreamDescriptor::Heartbeat()
69
- {
70
- }
71
-
72
-
73
- /***********************************
74
- FileStreamDescriptor::SelectForRead
75
- ***********************************/
76
-
77
- bool FileStreamDescriptor::SelectForRead()
78
- {
79
- cerr << "R?";
80
- return false;
81
- }
82
-
83
-
84
- /************************************
85
- FileStreamDescriptor::SelectForWrite
86
- ************************************/
87
-
88
- bool FileStreamDescriptor::SelectForWrite()
89
- {
90
- cerr << "W?";
91
- return false;
92
- }
93
-
94
-
data/ext/files.h DELETED
@@ -1,65 +0,0 @@
1
- /*****************************************************************************
2
-
3
- $Id$
4
-
5
- File: files.h
6
- Date: 26Aug06
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 __FileStreamDescriptor__H_
22
- #define __FileStreamDescriptor__H_
23
-
24
-
25
-
26
- /**************************
27
- class FileStreamDescriptor
28
- **************************/
29
-
30
- class FileStreamDescriptor: public EventableDescriptor
31
- {
32
- public:
33
- FileStreamDescriptor (int, EventMachine_t*);
34
- virtual ~FileStreamDescriptor();
35
-
36
- virtual void Read();
37
- virtual void Write();
38
- virtual void Heartbeat();
39
-
40
- virtual bool SelectForRead();
41
- virtual bool SelectForWrite();
42
-
43
- // Do we have any data to write? This is used by ShouldDelete.
44
- virtual int GetOutboundDataSize() {return OutboundDataSize;}
45
-
46
- protected:
47
- struct OutboundPage {
48
- OutboundPage (const char *b, int l, int o=0): Buffer(b), Length(l), Offset(o) {}
49
- void Free() {if (Buffer) free ((char*)Buffer); }
50
- const char *Buffer;
51
- int Length;
52
- int Offset;
53
- };
54
-
55
- protected:
56
- deque<OutboundPage> OutboundPages;
57
- int OutboundDataSize;
58
-
59
- private:
60
-
61
- };
62
-
63
-
64
- #endif // __FileStreamDescriptor__H_
65
-
data/ext/sigs.cpp DELETED
@@ -1,89 +0,0 @@
1
- /*****************************************************************************
2
-
3
- $Id$
4
-
5
- File: sigs.cpp
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
- #include "project.h"
21
-
22
-
23
- bool gTerminateSignalReceived;
24
-
25
-
26
- /**************
27
- SigtermHandler
28
- **************/
29
-
30
- void SigtermHandler (int sig)
31
- {
32
- // This is a signal-handler, don't do anything frisky. Interrupts are disabled.
33
- // Set the terminate flag WITHOUT trying to lock a mutex- otherwise we can easily
34
- // self-deadlock, especially if the event machine is looping quickly.
35
- gTerminateSignalReceived = true;
36
- }
37
-
38
-
39
- /*********************
40
- InstallSignalHandlers
41
- *********************/
42
-
43
- void InstallSignalHandlers()
44
- {
45
- #ifdef OS_UNIX
46
- static bool bInstalled = false;
47
- if (!bInstalled) {
48
- bInstalled = true;
49
- signal (SIGINT, SigtermHandler);
50
- signal (SIGTERM, SigtermHandler);
51
- signal (SIGPIPE, SIG_IGN);
52
- }
53
- #endif
54
- }
55
-
56
-
57
-
58
- /*******************
59
- WintelSignalHandler
60
- *******************/
61
-
62
- #ifdef OS_WIN32
63
- BOOL WINAPI WintelSignalHandler (DWORD control)
64
- {
65
- if (control == CTRL_C_EVENT)
66
- gTerminateSignalReceived = true;
67
- return TRUE;
68
- }
69
- #endif
70
-
71
- /************
72
- HookControlC
73
- ************/
74
-
75
- #ifdef OS_WIN32
76
- void HookControlC (bool hook)
77
- {
78
- if (hook) {
79
- // INSTALL hook
80
- SetConsoleCtrlHandler (WintelSignalHandler, TRUE);
81
- }
82
- else {
83
- // UNINSTALL hook
84
- SetConsoleCtrlHandler (WintelSignalHandler, FALSE);
85
- }
86
- }
87
- #endif
88
-
89
-