bayserver-core 3.0.3 → 3.3.1
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.
- checksums.yaml +4 -4
- data/lib/baykit/bayserver/agent/command_receiver.rb +2 -0
- data/lib/baykit/bayserver/agent/grand_agent.rb +101 -93
- data/lib/baykit/bayserver/agent/letters/accepted_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/letters/closed_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/letters/connected_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/letters/error_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/letters/letter.rb +7 -3
- data/lib/baykit/bayserver/agent/letters/read_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/letters/wrote_letter.rb +2 -2
- data/lib/baykit/bayserver/agent/monitor/grand_agent_monitor.rb +20 -22
- data/lib/baykit/bayserver/agent/multiplexer/job_multiplexer.rb +44 -31
- data/lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb +5 -0
- data/lib/baykit/bayserver/agent/multiplexer/multiplexer_base.rb +4 -4
- data/lib/baykit/bayserver/agent/multiplexer/plain_transporter.rb +2 -3
- data/lib/baykit/bayserver/agent/multiplexer/spider_multiplexer.rb +113 -59
- data/lib/baykit/bayserver/agent/multiplexer/spin_multiplexer.rb +22 -17
- data/lib/baykit/bayserver/agent/multiplexer/taxi_multiplexer.rb +17 -13
- data/lib/baykit/bayserver/bay_log.rb +20 -16
- data/lib/baykit/bayserver/bayserver.rb +8 -15
- data/lib/baykit/bayserver/common/cities.rb +1 -1
- data/lib/baykit/bayserver/common/inbound_ship.rb +1 -1
- data/lib/baykit/bayserver/common/inbound_ship_store.rb +0 -1
- data/lib/baykit/bayserver/{agent/multiplexer → common}/rudder_state.rb +43 -7
- data/lib/baykit/bayserver/common/rudder_state_store.rb +63 -0
- data/lib/baykit/bayserver/{agent/multiplexer → common}/transporter.rb +1 -3
- data/lib/baykit/bayserver/common/warp_ship.rb +4 -3
- data/lib/baykit/bayserver/{agent/multiplexer → common}/write_unit.rb +1 -3
- data/lib/baykit/bayserver/docker/base/inbound_data_listener.rb +0 -1
- data/lib/baykit/bayserver/docker/base/port_base.rb +5 -5
- data/lib/baykit/bayserver/docker/base/warp_base.rb +7 -4
- data/lib/baykit/bayserver/docker/built_in/built_in_harbor_docker.rb +25 -2
- data/lib/baykit/bayserver/docker/built_in/built_in_log_docker.rb +42 -26
- data/lib/baykit/bayserver/docker/harbor.rb +14 -0
- data/lib/baykit/bayserver/docker/send_file/file_content.rb +66 -0
- data/lib/baykit/bayserver/docker/send_file/file_content_handler.rb +113 -29
- data/lib/baykit/bayserver/docker/send_file/file_store.rb +117 -0
- data/lib/baykit/bayserver/docker/send_file/send_file_docker.rb +13 -5
- data/lib/baykit/bayserver/docker/send_file/send_file_ship.rb +11 -2
- data/lib/baykit/bayserver/docker/send_file/wait_file_ship.rb +92 -0
- data/lib/baykit/bayserver/mem_usage.rb +2 -0
- data/lib/baykit/bayserver/protocol/packet.rb +2 -1
- data/lib/baykit/bayserver/protocol/packet_part_accessor.rb +5 -5
- data/lib/baykit/bayserver/protocol/protocol_exception.rb +7 -1
- data/lib/baykit/bayserver/rudders/io_rudder.rb +2 -2
- data/lib/baykit/bayserver/rudders/rudder.rb +4 -0
- data/lib/baykit/bayserver/rudders/rudder_base.rb +21 -0
- data/lib/baykit/bayserver/tours/req_content_handler.rb +13 -13
- data/lib/baykit/bayserver/tours/tour.rb +1 -6
- data/lib/baykit/bayserver/tours/tour_req.rb +4 -8
- data/lib/baykit/bayserver/tours/tour_res.rb +1 -8
- data/lib/baykit/bayserver/util/cgi_util.rb +7 -2
- data/lib/baykit/bayserver/util/headers.rb +2 -2
- data/lib/baykit/bayserver/util/http_status.rb +7 -0
- data/lib/baykit/bayserver/util/http_util.rb +16 -0
- data/lib/baykit/bayserver/util/nio_selector.rb +103 -0
- data/lib/baykit/bayserver/util/rb_selector.rb +55 -0
- data/lib/baykit/bayserver/util/selector.rb +43 -80
- data/lib/baykit/bayserver/util/simple_buffer.rb +1 -1
- data/lib/baykit/bayserver/version.rb +1 -1
- metadata +16 -20
- data/lib/baykit/bayserver/agent/accept_handler.rb +0 -71
- data/lib/baykit/bayserver/agent/channel_listener.rb +0 -35
- data/lib/baykit/bayserver/agent/transporter/data_listener.rb +0 -38
- data/lib/baykit/bayserver/agent/transporter/package.rb +0 -0
- data/lib/baykit/bayserver/agent/transporter/spin_read_transporter.rb +0 -111
- data/lib/baykit/bayserver/agent/transporter/spin_write_transporter.rb +0 -125
- data/lib/baykit/bayserver/agent/transporter/transporter.rb +0 -332
- data/lib/baykit/bayserver/docker/built_in/log_boat.rb +0 -71
- data/lib/baykit/bayserver/tours/send_file_yacht.rb +0 -97
- data/lib/baykit/bayserver/watercraft/boat.rb +0 -43
- data/lib/baykit/bayserver/watercraft/yacht.rb +0 -42
|
@@ -9,150 +9,113 @@ module Baykit
|
|
|
9
9
|
OP_READ = 1
|
|
10
10
|
OP_WRITE = 2
|
|
11
11
|
|
|
12
|
-
attr :
|
|
12
|
+
attr :io_op_map
|
|
13
13
|
attr :lock
|
|
14
14
|
|
|
15
15
|
def initialize
|
|
16
|
-
@
|
|
16
|
+
@io_op_map = {}
|
|
17
17
|
@lock = Mutex.new()
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def register(ch, op)
|
|
21
|
-
|
|
22
|
-
if not ((ch.kind_of? IO) || (ch.kind_of? OpenSSL::SSL::SSLSocket))
|
|
23
|
-
raise ArgumentError
|
|
24
|
-
end
|
|
21
|
+
validate_channel(ch)
|
|
25
22
|
if op & OP_READ != 0
|
|
26
|
-
register_read(ch, @
|
|
23
|
+
register_read(ch, @io_op_map)
|
|
27
24
|
end
|
|
28
25
|
if op & OP_WRITE != 0
|
|
29
|
-
register_write(ch, @
|
|
26
|
+
register_write(ch, @io_op_map)
|
|
30
27
|
end
|
|
31
28
|
end
|
|
32
29
|
|
|
33
30
|
def unregister(ch)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
unregister_read(ch, @channels)
|
|
39
|
-
unregister_write(ch, @channels)
|
|
31
|
+
validate_channel(ch)
|
|
32
|
+
unregister_read(ch, @io_op_map)
|
|
33
|
+
unregister_write(ch, @io_op_map)
|
|
40
34
|
end
|
|
41
35
|
|
|
42
36
|
def modify(ch, op)
|
|
43
|
-
|
|
44
|
-
raise ArgumentError
|
|
45
|
-
end
|
|
37
|
+
validate_channel(ch)
|
|
46
38
|
if op & OP_READ != 0
|
|
47
|
-
register_read(ch, @
|
|
39
|
+
register_read(ch, @io_op_map)
|
|
48
40
|
else
|
|
49
|
-
unregister_read(ch, @
|
|
41
|
+
unregister_read(ch, @io_op_map)
|
|
50
42
|
end
|
|
51
43
|
|
|
52
44
|
if op & OP_WRITE != 0
|
|
53
|
-
register_write(ch, @
|
|
45
|
+
register_write(ch, @io_op_map)
|
|
54
46
|
else
|
|
55
|
-
unregister_write(ch, @
|
|
47
|
+
unregister_write(ch, @io_op_map)
|
|
56
48
|
end
|
|
57
49
|
end
|
|
58
50
|
|
|
59
51
|
def get_op(ch)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
return @channels[ch]
|
|
52
|
+
validate_channel(ch)
|
|
53
|
+
return @io_op_map[ch]
|
|
64
54
|
end
|
|
65
55
|
|
|
66
|
-
def
|
|
67
|
-
if timeout_sec == nil
|
|
68
|
-
timeout_sec = 0
|
|
69
|
-
end
|
|
70
|
-
except_list = []
|
|
71
|
-
|
|
72
|
-
read_list = []
|
|
73
|
-
write_list = []
|
|
56
|
+
def count
|
|
74
57
|
@lock.synchronize do
|
|
75
|
-
@
|
|
76
|
-
if (@channels[ch] & OP_READ) != 0
|
|
77
|
-
read_list << ch
|
|
78
|
-
end
|
|
79
|
-
if (@channels[ch] & OP_WRITE) != 0
|
|
80
|
-
write_list << ch
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
#BayLog.debug("Select read_list=%s", read_list)
|
|
85
|
-
#BayLog.debug("Select write_list=%s", write_list)
|
|
86
|
-
selected_read_list, selected_write_list = Kernel.select(read_list, write_list, except_list, timeout_sec)
|
|
87
|
-
|
|
88
|
-
result = {}
|
|
89
|
-
if selected_read_list != nil
|
|
90
|
-
selected_read_list.each do |ch|
|
|
91
|
-
register_read(ch, result)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
if selected_write_list != nil
|
|
96
|
-
selected_write_list.each do |ch|
|
|
97
|
-
register_write(ch, result)
|
|
98
|
-
end
|
|
58
|
+
return @io_op_map.length
|
|
99
59
|
end
|
|
60
|
+
end
|
|
100
61
|
|
|
101
|
-
|
|
62
|
+
def select(timeout_sec = nil)
|
|
63
|
+
raise NotImplementedError
|
|
102
64
|
end
|
|
103
65
|
|
|
104
|
-
def
|
|
105
|
-
|
|
106
|
-
|
|
66
|
+
def validate_channel(ch)
|
|
67
|
+
unless ch.is_a?(IO) || (defined?(OpenSSL::SSL::SSLSocket) && ch.is_a?(OpenSSL::SSL::SSLSocket))
|
|
68
|
+
raise ArgumentError
|
|
107
69
|
end
|
|
108
70
|
end
|
|
109
71
|
|
|
110
72
|
private
|
|
111
|
-
|
|
112
|
-
def register_read(ch, ch_list)
|
|
73
|
+
def register_read(io, io_op)
|
|
113
74
|
@lock.synchronize do
|
|
114
|
-
if
|
|
115
|
-
|
|
75
|
+
if io_op.key?(io)
|
|
76
|
+
io_op[io] = (io_op[io] | OP_READ)
|
|
116
77
|
else
|
|
117
|
-
|
|
78
|
+
io_op[io] = OP_READ
|
|
118
79
|
end
|
|
119
80
|
end
|
|
120
81
|
end
|
|
121
82
|
|
|
122
|
-
def register_write(
|
|
83
|
+
def register_write(io, io_op)
|
|
123
84
|
@lock.synchronize do
|
|
124
|
-
if
|
|
125
|
-
|
|
85
|
+
if io_op.key?(io)
|
|
86
|
+
io_op[io] = (io_op[io] | OP_WRITE)
|
|
126
87
|
else
|
|
127
|
-
|
|
88
|
+
io_op[io] = OP_WRITE
|
|
128
89
|
end
|
|
129
90
|
end
|
|
130
91
|
end
|
|
131
92
|
|
|
132
|
-
def unregister_read(
|
|
93
|
+
def unregister_read(io, io_op)
|
|
133
94
|
@lock.synchronize do
|
|
134
|
-
if
|
|
135
|
-
if
|
|
136
|
-
|
|
95
|
+
if io_op.include?(io)
|
|
96
|
+
if io_op[io] == OP_READ
|
|
97
|
+
io_op.delete(io)
|
|
137
98
|
else
|
|
138
|
-
|
|
99
|
+
io_op[io] = OP_WRITE
|
|
139
100
|
end
|
|
140
101
|
end
|
|
141
102
|
end
|
|
142
103
|
end
|
|
143
104
|
|
|
144
105
|
|
|
145
|
-
def unregister_write(
|
|
106
|
+
def unregister_write(io, io_op)
|
|
146
107
|
@lock.synchronize do
|
|
147
|
-
if
|
|
148
|
-
if
|
|
149
|
-
|
|
108
|
+
if io_op.include?(io)
|
|
109
|
+
if io_op[io] == OP_WRITE
|
|
110
|
+
io_op.delete(io)
|
|
150
111
|
else
|
|
151
|
-
|
|
112
|
+
io_op[io] = OP_READ
|
|
152
113
|
end
|
|
153
114
|
end
|
|
154
115
|
end
|
|
155
116
|
end
|
|
117
|
+
|
|
118
|
+
|
|
156
119
|
end
|
|
157
120
|
end
|
|
158
121
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bayserver-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michisuke-P
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: BayServer is one of the high-speed web servers. It operates as a single-threaded,
|
|
14
14
|
asynchronous server, which makes it exceptionally fast. It also supports multi-core
|
|
@@ -20,8 +20,6 @@ extra_rdoc_files: []
|
|
|
20
20
|
files:
|
|
21
21
|
- LICENSE.BAYKIT
|
|
22
22
|
- README.md
|
|
23
|
-
- lib/baykit/bayserver/agent/accept_handler.rb
|
|
24
|
-
- lib/baykit/bayserver/agent/channel_listener.rb
|
|
25
23
|
- lib/baykit/bayserver/agent/command_receiver.rb
|
|
26
24
|
- lib/baykit/bayserver/agent/grand_agent.rb
|
|
27
25
|
- lib/baykit/bayserver/agent/letters/accepted_letter.rb
|
|
@@ -38,13 +36,10 @@ files:
|
|
|
38
36
|
- lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb
|
|
39
37
|
- lib/baykit/bayserver/agent/multiplexer/multiplexer_base.rb
|
|
40
38
|
- lib/baykit/bayserver/agent/multiplexer/plain_transporter.rb
|
|
41
|
-
- lib/baykit/bayserver/agent/multiplexer/rudder_state.rb
|
|
42
39
|
- lib/baykit/bayserver/agent/multiplexer/secure_transporter.rb
|
|
43
40
|
- lib/baykit/bayserver/agent/multiplexer/spider_multiplexer.rb
|
|
44
41
|
- lib/baykit/bayserver/agent/multiplexer/spin_multiplexer.rb
|
|
45
42
|
- lib/baykit/bayserver/agent/multiplexer/taxi_multiplexer.rb
|
|
46
|
-
- lib/baykit/bayserver/agent/multiplexer/transporter.rb
|
|
47
|
-
- lib/baykit/bayserver/agent/multiplexer/write_unit.rb
|
|
48
43
|
- lib/baykit/bayserver/agent/next_socket_action.rb
|
|
49
44
|
- lib/baykit/bayserver/agent/non_blocking_handler.rb
|
|
50
45
|
- lib/baykit/bayserver/agent/package.rb
|
|
@@ -53,11 +48,6 @@ files:
|
|
|
53
48
|
- lib/baykit/bayserver/agent/signal/signal_sender.rb
|
|
54
49
|
- lib/baykit/bayserver/agent/spin_handler.rb
|
|
55
50
|
- lib/baykit/bayserver/agent/timer_handler.rb
|
|
56
|
-
- lib/baykit/bayserver/agent/transporter/data_listener.rb
|
|
57
|
-
- lib/baykit/bayserver/agent/transporter/package.rb
|
|
58
|
-
- lib/baykit/bayserver/agent/transporter/spin_read_transporter.rb
|
|
59
|
-
- lib/baykit/bayserver/agent/transporter/spin_write_transporter.rb
|
|
60
|
-
- lib/baykit/bayserver/agent/transporter/transporter.rb
|
|
61
51
|
- lib/baykit/bayserver/agent/upgrade_exception.rb
|
|
62
52
|
- lib/baykit/bayserver/bay_dockers.rb
|
|
63
53
|
- lib/baykit/bayserver/bay_exception.rb
|
|
@@ -80,12 +70,16 @@ files:
|
|
|
80
70
|
- lib/baykit/bayserver/common/postpone.rb
|
|
81
71
|
- lib/baykit/bayserver/common/read_only_ship.rb
|
|
82
72
|
- lib/baykit/bayserver/common/recipient.rb
|
|
73
|
+
- lib/baykit/bayserver/common/rudder_state.rb
|
|
74
|
+
- lib/baykit/bayserver/common/rudder_state_store.rb
|
|
75
|
+
- lib/baykit/bayserver/common/transporter.rb
|
|
83
76
|
- lib/baykit/bayserver/common/vehicle.rb
|
|
84
77
|
- lib/baykit/bayserver/common/vehicle_runner.rb
|
|
85
78
|
- lib/baykit/bayserver/common/warp_data.rb
|
|
86
79
|
- lib/baykit/bayserver/common/warp_handler.rb
|
|
87
80
|
- lib/baykit/bayserver/common/warp_ship.rb
|
|
88
81
|
- lib/baykit/bayserver/common/warp_ship_store.rb
|
|
82
|
+
- lib/baykit/bayserver/common/write_unit.rb
|
|
89
83
|
- lib/baykit/bayserver/config_exception.rb
|
|
90
84
|
- lib/baykit/bayserver/constants.rb
|
|
91
85
|
- lib/baykit/bayserver/docker/base/club_base.rb
|
|
@@ -101,7 +95,6 @@ files:
|
|
|
101
95
|
- lib/baykit/bayserver/docker/built_in/built_in_secure_docker.rb
|
|
102
96
|
- lib/baykit/bayserver/docker/built_in/built_in_town_docker.rb
|
|
103
97
|
- lib/baykit/bayserver/docker/built_in/built_in_trouble_docker.rb
|
|
104
|
-
- lib/baykit/bayserver/docker/built_in/log_boat.rb
|
|
105
98
|
- lib/baykit/bayserver/docker/built_in/log_item.rb
|
|
106
99
|
- lib/baykit/bayserver/docker/built_in/log_item_factory.rb
|
|
107
100
|
- lib/baykit/bayserver/docker/built_in/log_items.rb
|
|
@@ -117,9 +110,12 @@ files:
|
|
|
117
110
|
- lib/baykit/bayserver/docker/reroute.rb
|
|
118
111
|
- lib/baykit/bayserver/docker/secure.rb
|
|
119
112
|
- lib/baykit/bayserver/docker/send_file/directory_train.rb
|
|
113
|
+
- lib/baykit/bayserver/docker/send_file/file_content.rb
|
|
120
114
|
- lib/baykit/bayserver/docker/send_file/file_content_handler.rb
|
|
115
|
+
- lib/baykit/bayserver/docker/send_file/file_store.rb
|
|
121
116
|
- lib/baykit/bayserver/docker/send_file/send_file_docker.rb
|
|
122
117
|
- lib/baykit/bayserver/docker/send_file/send_file_ship.rb
|
|
118
|
+
- lib/baykit/bayserver/docker/send_file/wait_file_ship.rb
|
|
123
119
|
- lib/baykit/bayserver/docker/town.rb
|
|
124
120
|
- lib/baykit/bayserver/docker/trouble.rb
|
|
125
121
|
- lib/baykit/bayserver/docker/warp.rb
|
|
@@ -142,6 +138,7 @@ files:
|
|
|
142
138
|
- lib/baykit/bayserver/protocol/protocol_handler_store.rb
|
|
143
139
|
- lib/baykit/bayserver/rudders/io_rudder.rb
|
|
144
140
|
- lib/baykit/bayserver/rudders/rudder.rb
|
|
141
|
+
- lib/baykit/bayserver/rudders/rudder_base.rb
|
|
145
142
|
- lib/baykit/bayserver/ships/ship.rb
|
|
146
143
|
- lib/baykit/bayserver/sink.rb
|
|
147
144
|
- lib/baykit/bayserver/taxi/taxi.rb
|
|
@@ -151,7 +148,6 @@ files:
|
|
|
151
148
|
- lib/baykit/bayserver/tours/read_file_taxi.rb
|
|
152
149
|
- lib/baykit/bayserver/tours/req_content_handler.rb
|
|
153
150
|
- lib/baykit/bayserver/tours/send_file_train.rb
|
|
154
|
-
- lib/baykit/bayserver/tours/send_file_yacht.rb
|
|
155
151
|
- lib/baykit/bayserver/tours/tour.rb
|
|
156
152
|
- lib/baykit/bayserver/tours/tour_handler.rb
|
|
157
153
|
- lib/baykit/bayserver/tours/tour_req.rb
|
|
@@ -180,9 +176,11 @@ files:
|
|
|
180
176
|
- lib/baykit/bayserver/util/md5_password.rb
|
|
181
177
|
- lib/baykit/bayserver/util/message.rb
|
|
182
178
|
- lib/baykit/bayserver/util/mimes.rb
|
|
179
|
+
- lib/baykit/bayserver/util/nio_selector.rb
|
|
183
180
|
- lib/baykit/bayserver/util/object_factory.rb
|
|
184
181
|
- lib/baykit/bayserver/util/object_store.rb
|
|
185
182
|
- lib/baykit/bayserver/util/postman.rb
|
|
183
|
+
- lib/baykit/bayserver/util/rb_selector.rb
|
|
186
184
|
- lib/baykit/bayserver/util/reusable.rb
|
|
187
185
|
- lib/baykit/bayserver/util/selector.rb
|
|
188
186
|
- lib/baykit/bayserver/util/simple_buffer.rb
|
|
@@ -193,13 +191,11 @@ files:
|
|
|
193
191
|
- lib/baykit/bayserver/util/url_encoder.rb
|
|
194
192
|
- lib/baykit/bayserver/util/valve.rb
|
|
195
193
|
- lib/baykit/bayserver/version.rb
|
|
196
|
-
- lib/baykit/bayserver/watercraft/boat.rb
|
|
197
|
-
- lib/baykit/bayserver/watercraft/yacht.rb
|
|
198
194
|
homepage: https://baykit.yokohama
|
|
199
195
|
licenses:
|
|
200
196
|
- MIT
|
|
201
197
|
metadata: {}
|
|
202
|
-
post_install_message:
|
|
198
|
+
post_install_message:
|
|
203
199
|
rdoc_options: []
|
|
204
200
|
require_paths:
|
|
205
201
|
- lib
|
|
@@ -214,8 +210,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
214
210
|
- !ruby/object:Gem::Version
|
|
215
211
|
version: '0'
|
|
216
212
|
requirements: []
|
|
217
|
-
rubygems_version: 3.
|
|
218
|
-
signing_key:
|
|
213
|
+
rubygems_version: 3.4.19
|
|
214
|
+
signing_key:
|
|
219
215
|
specification_version: 4
|
|
220
216
|
summary: BayServer core module
|
|
221
217
|
test_files: []
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
require 'fcntl'
|
|
2
|
-
|
|
3
|
-
require 'baykit/bayserver/util/selector'
|
|
4
|
-
|
|
5
|
-
module Baykit
|
|
6
|
-
module BayServer
|
|
7
|
-
module Agent
|
|
8
|
-
class AcceptHandler
|
|
9
|
-
include Baykit::BayServer::Agent
|
|
10
|
-
include Baykit::BayServer::Util
|
|
11
|
-
|
|
12
|
-
attr :agent
|
|
13
|
-
attr :port_map
|
|
14
|
-
|
|
15
|
-
attr :is_shutdown
|
|
16
|
-
attr :ch_count
|
|
17
|
-
|
|
18
|
-
def initialize(agent, port_map)
|
|
19
|
-
@agent = agent
|
|
20
|
-
@port_map = port_map
|
|
21
|
-
@ch_count = 0
|
|
22
|
-
@is_shutdown = false
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def on_acceptable(server_skt)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def on_closed()
|
|
29
|
-
@ch_count -= 1
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def on_busy()
|
|
33
|
-
BayLog.debug("%s AcceptHandler:onBusy", @agent)
|
|
34
|
-
@port_map.keys().each do |ch|
|
|
35
|
-
@agent.selector.unregister(ch)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def on_free()
|
|
40
|
-
BayLog.debug("%s AcceptHandler:onFree isShutdown=%s", @agent, @is_shutdown)
|
|
41
|
-
if @is_shutdown
|
|
42
|
-
return
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
@port_map.keys().each do |ch|
|
|
46
|
-
@agent.selector.register(ch, Selector::OP_READ)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def server_socket?(skt)
|
|
51
|
-
return @port_map.key?(skt)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def close_all()
|
|
55
|
-
@port_map.keys.each do |skt|
|
|
56
|
-
BayLog.debug("%s Close server Socket: %s", @agent, skt)
|
|
57
|
-
skt.close()
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def shutdown()
|
|
62
|
-
@is_shutdown = true
|
|
63
|
-
on_busy()
|
|
64
|
-
@agent.wakeup()
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
module Baykit
|
|
3
|
-
module BayServer
|
|
4
|
-
module Agent
|
|
5
|
-
module ChannelListener # interface
|
|
6
|
-
|
|
7
|
-
def on_readable(chk_ch)
|
|
8
|
-
raise NotImplementedError.new
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def on_writable(chk_ch)
|
|
12
|
-
raise NotImplementedError.new
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def on_connectable(chk_ch)
|
|
16
|
-
raise NotImplementedError.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def on_error(chk_ch, e)
|
|
20
|
-
raise NotImplementedError.new
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def on_closed(chk_ch)
|
|
24
|
-
raise NotImplementedError.new
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def check_timeout(chk_ch, duration)
|
|
28
|
-
raise NotImplementedError.new
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
module Baykit
|
|
2
|
-
module BayServer
|
|
3
|
-
module Agent
|
|
4
|
-
module Transporter
|
|
5
|
-
module DataListener # interface
|
|
6
|
-
|
|
7
|
-
def notify_connect()
|
|
8
|
-
raise NotImplementedError.new
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def notify_handshake_done(protocol)
|
|
12
|
-
raise NotImplementedError.new
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def notify_read(buf)
|
|
16
|
-
raise NotImplementedError.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def notify_eof()
|
|
20
|
-
raise NotImplementedError.new
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def notify_protocol_error(err)
|
|
24
|
-
raise NotImplementedError.new
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def notify_close()
|
|
28
|
-
raise NotImplementedError.new
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def check_timeout(duration_sec)
|
|
32
|
-
raise NotImplementedError.new
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
File without changes
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
require 'baykit/bayserver/agent/spin_handler'
|
|
2
|
-
require 'baykit/bayserver/util/string_util'
|
|
3
|
-
require 'baykit/bayserver/util/valve'
|
|
4
|
-
|
|
5
|
-
module Baykit
|
|
6
|
-
module BayServer
|
|
7
|
-
module Agent
|
|
8
|
-
module Transporter
|
|
9
|
-
class SpinReadTransporter
|
|
10
|
-
include Baykit::BayServer::Agent::SpinHandler::SpinListener # implements
|
|
11
|
-
include Baykit::BayServer::Util::Valve # implements
|
|
12
|
-
include Baykit::BayServer::Util
|
|
13
|
-
|
|
14
|
-
attr :spin_handler
|
|
15
|
-
attr :data_listener
|
|
16
|
-
attr :infile
|
|
17
|
-
attr :read_buf
|
|
18
|
-
attr :total_read
|
|
19
|
-
attr :file_len
|
|
20
|
-
attr :timeout_sec
|
|
21
|
-
attr :eof_checker
|
|
22
|
-
attr :is_closed
|
|
23
|
-
|
|
24
|
-
def initialize(buf_size)
|
|
25
|
-
@read_buf = StringUtil.alloc(buf_size)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def init(spin_hnd, lis, infile, limit, timeout_sec, eof_checker)
|
|
29
|
-
@spin_handler = spin_hnd
|
|
30
|
-
@data_listener = lis
|
|
31
|
-
@infile = infile
|
|
32
|
-
@file_len = limit
|
|
33
|
-
@total_read = 0
|
|
34
|
-
@timeout_sec = timeout_sec
|
|
35
|
-
@eof_checker = eof_checker
|
|
36
|
-
@is_closed = false
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def to_s
|
|
40
|
-
data_listener.to_s()
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
######################################################
|
|
44
|
-
# Implements Reusable
|
|
45
|
-
######################################################
|
|
46
|
-
|
|
47
|
-
def reset()
|
|
48
|
-
@data_listener = nil
|
|
49
|
-
@infile = nil
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
######################################################
|
|
53
|
-
# Implements SpinListener
|
|
54
|
-
######################################################
|
|
55
|
-
|
|
56
|
-
def lap()
|
|
57
|
-
begin
|
|
58
|
-
@infile.sysread(@buf_size, @read_buf)
|
|
59
|
-
|
|
60
|
-
if @read_buf.length == 0
|
|
61
|
-
return NextSocketAction::CONTINUE, true
|
|
62
|
-
end
|
|
63
|
-
@total_read += @read_buf.length
|
|
64
|
-
|
|
65
|
-
next_act = @yacht.notify_read(@read_buf)
|
|
66
|
-
|
|
67
|
-
if @total_read == @file_len
|
|
68
|
-
@data_listener.notify_eof()
|
|
69
|
-
close()
|
|
70
|
-
return NextSocketAction::CLOSE, false
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
return next_act, false
|
|
74
|
-
rescue Exception => e
|
|
75
|
-
BayLog.error_e(e)
|
|
76
|
-
close()
|
|
77
|
-
return NextSocketAction::CLOSE, false
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def check_timeout(duration_sec)
|
|
82
|
-
return duration_sec > @timeout_sec
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def close()
|
|
86
|
-
if @infile != nil
|
|
87
|
-
@infile.close()
|
|
88
|
-
end
|
|
89
|
-
@data_listener.notify_close()
|
|
90
|
-
@is_closed = true
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
######################################################
|
|
94
|
-
# Implements Valve
|
|
95
|
-
######################################################
|
|
96
|
-
|
|
97
|
-
def open_valve()
|
|
98
|
-
@spin_handler.ask_to_callback(self)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
######################################################
|
|
102
|
-
# Other methods
|
|
103
|
-
######################################################
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|