bayserver-core 3.0.2 → 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 +145 -133
- data/lib/baykit/bayserver/agent/letters/accepted_letter.rb +17 -0
- data/lib/baykit/bayserver/agent/letters/closed_letter.rb +14 -0
- data/lib/baykit/bayserver/agent/letters/connected_letter.rb +14 -0
- data/lib/baykit/bayserver/agent/letters/error_letter.rb +16 -0
- data/lib/baykit/bayserver/agent/letters/letter.rb +19 -0
- data/lib/baykit/bayserver/agent/letters/package.rb +9 -0
- data/lib/baykit/bayserver/agent/letters/read_letter.rb +20 -0
- data/lib/baykit/bayserver/agent/letters/wrote_letter.rb +17 -0
- data/lib/baykit/bayserver/agent/monitor/grand_agent_monitor.rb +49 -49
- data/lib/baykit/bayserver/agent/multiplexer/job_multiplexer.rb +47 -32
- data/lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb +5 -0
- data/lib/baykit/bayserver/agent/multiplexer/multiplexer_base.rb +12 -28
- data/lib/baykit/bayserver/agent/multiplexer/plain_transporter.rb +20 -5
- data/lib/baykit/bayserver/agent/multiplexer/spider_multiplexer.rb +125 -87
- data/lib/baykit/bayserver/agent/multiplexer/spin_multiplexer.rb +24 -19
- data/lib/baykit/bayserver/agent/multiplexer/taxi_multiplexer.rb +21 -15
- 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 +5 -45
- data/lib/baykit/bayserver/common/inbound_ship_store.rb +0 -1
- data/lib/baykit/bayserver/common/multiplexer.rb +5 -1
- data/lib/baykit/bayserver/{agent/multiplexer → common}/rudder_state.rb +42 -11
- data/lib/baykit/bayserver/common/rudder_state_store.rb +63 -0
- data/lib/baykit/bayserver/{agent/multiplexer → common}/transporter.rb +2 -4
- data/lib/baykit/bayserver/common/warp_ship.rb +12 -7
- data/lib/baykit/bayserver/{agent/multiplexer → common}/write_unit.rb +2 -4
- 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_city_docker.rb +1 -1
- 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 +43 -35
- 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 +18 -13
- data/lib/baykit/bayserver/tours/tour_req.rb +13 -15
- data/lib/baykit/bayserver/tours/tour_res.rb +42 -19
- 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 +24 -21
- 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/letter.rb +0 -30
- 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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
require "nio"
|
|
2
|
+
require "thread"
|
|
3
|
+
require 'baykit/bayserver/util/selector'
|
|
4
|
+
|
|
5
|
+
module Baykit
|
|
6
|
+
module BayServer
|
|
7
|
+
module Util
|
|
8
|
+
class NioSelector < Selector
|
|
9
|
+
|
|
10
|
+
attr :selector
|
|
11
|
+
attr :io_monitor_map
|
|
12
|
+
|
|
13
|
+
def initialize
|
|
14
|
+
super
|
|
15
|
+
|
|
16
|
+
@selector = NIO::Selector.new
|
|
17
|
+
@io_monitor_map = {} # io -> monitor(:r)
|
|
18
|
+
end
|
|
19
|
+
def select(timeout_sec=nil)
|
|
20
|
+
timeout_sec = 0 if timeout_sec.nil?
|
|
21
|
+
ready_mon_list = @selector.select(timeout_sec)
|
|
22
|
+
|
|
23
|
+
result = {}
|
|
24
|
+
if ready_mon_list
|
|
25
|
+
ready_mon_list.each do |mon|
|
|
26
|
+
io = mon.io
|
|
27
|
+
if mon.readable?
|
|
28
|
+
register_read(io, result)
|
|
29
|
+
end
|
|
30
|
+
if mon.writable?
|
|
31
|
+
register_write(io, result)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
result
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def count
|
|
39
|
+
@lock.synchronize { @ops.length }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
def register_read(io, io_op)
|
|
44
|
+
|
|
45
|
+
if !@io_op_map.key?(io)
|
|
46
|
+
@io_monitor_map[io] = @selector.register(io, :r)
|
|
47
|
+
else
|
|
48
|
+
op = @io_op_map[io]
|
|
49
|
+
if op & OP_WRITE != 0
|
|
50
|
+
@io_monitor_map[io].interests = :rw
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
super # Update @io_monitor_map
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def register_write(io, io_op)
|
|
58
|
+
|
|
59
|
+
if !@io_op_map.key?(io)
|
|
60
|
+
@io_monitor_map[io] = @selector.register(io, :w)
|
|
61
|
+
else
|
|
62
|
+
op = @io_op_map[io]
|
|
63
|
+
if op & OP_READ != 0
|
|
64
|
+
@io_monitor_map[io].interests = :rw
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
super # Update @io_monitor_map
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def unregister_read(io, io_op)
|
|
72
|
+
|
|
73
|
+
if @io_op_map.key?(io)
|
|
74
|
+
op = @io_op_map[io]
|
|
75
|
+
if op & OP_WRITE != 0
|
|
76
|
+
@io_monitor_map[io].interests = :w
|
|
77
|
+
else
|
|
78
|
+
@selector.deregister(io)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
super # Update @io_monitor_map
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def unregister_write(io, io_op)
|
|
87
|
+
|
|
88
|
+
if @io_op_map.key?(io)
|
|
89
|
+
op = @io_op_map[io]
|
|
90
|
+
if op & OP_READ != 0
|
|
91
|
+
@io_monitor_map[io].interests = :r
|
|
92
|
+
else
|
|
93
|
+
@selector.deregister(io)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
super # Update @io_monitor_map
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require 'baykit/bayserver/util/selector'
|
|
2
|
+
|
|
3
|
+
module Baykit
|
|
4
|
+
module BayServer
|
|
5
|
+
module Util
|
|
6
|
+
|
|
7
|
+
class RbSelector < Selector
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
super
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def select(timeout_sec = nil)
|
|
14
|
+
if timeout_sec == nil
|
|
15
|
+
timeout_sec = 0
|
|
16
|
+
end
|
|
17
|
+
except_list = []
|
|
18
|
+
|
|
19
|
+
read_list = []
|
|
20
|
+
write_list = []
|
|
21
|
+
@lock.synchronize do
|
|
22
|
+
@io_op_map.keys().each do |io|
|
|
23
|
+
if (@io_op_map[io] & OP_READ) != 0
|
|
24
|
+
read_list << io
|
|
25
|
+
end
|
|
26
|
+
if (@io_op_map[io] & OP_WRITE) != 0
|
|
27
|
+
write_list << io
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
#BayLog.debug("Select read_list=%s", read_list)
|
|
32
|
+
#BayLog.debug("Select write_list=%s", write_list)
|
|
33
|
+
selected_read_list, selected_write_list = Kernel.select(read_list, write_list, except_list, timeout_sec)
|
|
34
|
+
|
|
35
|
+
result = {}
|
|
36
|
+
if selected_read_list != nil
|
|
37
|
+
selected_read_list.each do |io|
|
|
38
|
+
register_read(io, result)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if selected_write_list != nil
|
|
43
|
+
selected_write_list.each do |io|
|
|
44
|
+
register_write(io, result)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
return result
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
@@ -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,24 +20,26 @@ 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
|
-
- lib/baykit/bayserver/agent/
|
|
25
|
+
- lib/baykit/bayserver/agent/letters/accepted_letter.rb
|
|
26
|
+
- lib/baykit/bayserver/agent/letters/closed_letter.rb
|
|
27
|
+
- lib/baykit/bayserver/agent/letters/connected_letter.rb
|
|
28
|
+
- lib/baykit/bayserver/agent/letters/error_letter.rb
|
|
29
|
+
- lib/baykit/bayserver/agent/letters/letter.rb
|
|
30
|
+
- lib/baykit/bayserver/agent/letters/package.rb
|
|
31
|
+
- lib/baykit/bayserver/agent/letters/read_letter.rb
|
|
32
|
+
- lib/baykit/bayserver/agent/letters/wrote_letter.rb
|
|
28
33
|
- lib/baykit/bayserver/agent/lifecycle_listener.rb
|
|
29
34
|
- lib/baykit/bayserver/agent/monitor/grand_agent_monitor.rb
|
|
30
35
|
- lib/baykit/bayserver/agent/multiplexer/job_multiplexer.rb
|
|
31
36
|
- lib/baykit/bayserver/agent/multiplexer/job_multiplexer_base.rb
|
|
32
37
|
- lib/baykit/bayserver/agent/multiplexer/multiplexer_base.rb
|
|
33
38
|
- lib/baykit/bayserver/agent/multiplexer/plain_transporter.rb
|
|
34
|
-
- lib/baykit/bayserver/agent/multiplexer/rudder_state.rb
|
|
35
39
|
- lib/baykit/bayserver/agent/multiplexer/secure_transporter.rb
|
|
36
40
|
- lib/baykit/bayserver/agent/multiplexer/spider_multiplexer.rb
|
|
37
41
|
- lib/baykit/bayserver/agent/multiplexer/spin_multiplexer.rb
|
|
38
42
|
- lib/baykit/bayserver/agent/multiplexer/taxi_multiplexer.rb
|
|
39
|
-
- lib/baykit/bayserver/agent/multiplexer/transporter.rb
|
|
40
|
-
- lib/baykit/bayserver/agent/multiplexer/write_unit.rb
|
|
41
43
|
- lib/baykit/bayserver/agent/next_socket_action.rb
|
|
42
44
|
- lib/baykit/bayserver/agent/non_blocking_handler.rb
|
|
43
45
|
- lib/baykit/bayserver/agent/package.rb
|
|
@@ -46,11 +48,6 @@ files:
|
|
|
46
48
|
- lib/baykit/bayserver/agent/signal/signal_sender.rb
|
|
47
49
|
- lib/baykit/bayserver/agent/spin_handler.rb
|
|
48
50
|
- lib/baykit/bayserver/agent/timer_handler.rb
|
|
49
|
-
- lib/baykit/bayserver/agent/transporter/data_listener.rb
|
|
50
|
-
- lib/baykit/bayserver/agent/transporter/package.rb
|
|
51
|
-
- lib/baykit/bayserver/agent/transporter/spin_read_transporter.rb
|
|
52
|
-
- lib/baykit/bayserver/agent/transporter/spin_write_transporter.rb
|
|
53
|
-
- lib/baykit/bayserver/agent/transporter/transporter.rb
|
|
54
51
|
- lib/baykit/bayserver/agent/upgrade_exception.rb
|
|
55
52
|
- lib/baykit/bayserver/bay_dockers.rb
|
|
56
53
|
- lib/baykit/bayserver/bay_exception.rb
|
|
@@ -73,12 +70,16 @@ files:
|
|
|
73
70
|
- lib/baykit/bayserver/common/postpone.rb
|
|
74
71
|
- lib/baykit/bayserver/common/read_only_ship.rb
|
|
75
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
|
|
76
76
|
- lib/baykit/bayserver/common/vehicle.rb
|
|
77
77
|
- lib/baykit/bayserver/common/vehicle_runner.rb
|
|
78
78
|
- lib/baykit/bayserver/common/warp_data.rb
|
|
79
79
|
- lib/baykit/bayserver/common/warp_handler.rb
|
|
80
80
|
- lib/baykit/bayserver/common/warp_ship.rb
|
|
81
81
|
- lib/baykit/bayserver/common/warp_ship_store.rb
|
|
82
|
+
- lib/baykit/bayserver/common/write_unit.rb
|
|
82
83
|
- lib/baykit/bayserver/config_exception.rb
|
|
83
84
|
- lib/baykit/bayserver/constants.rb
|
|
84
85
|
- lib/baykit/bayserver/docker/base/club_base.rb
|
|
@@ -94,7 +95,6 @@ files:
|
|
|
94
95
|
- lib/baykit/bayserver/docker/built_in/built_in_secure_docker.rb
|
|
95
96
|
- lib/baykit/bayserver/docker/built_in/built_in_town_docker.rb
|
|
96
97
|
- lib/baykit/bayserver/docker/built_in/built_in_trouble_docker.rb
|
|
97
|
-
- lib/baykit/bayserver/docker/built_in/log_boat.rb
|
|
98
98
|
- lib/baykit/bayserver/docker/built_in/log_item.rb
|
|
99
99
|
- lib/baykit/bayserver/docker/built_in/log_item_factory.rb
|
|
100
100
|
- lib/baykit/bayserver/docker/built_in/log_items.rb
|
|
@@ -110,9 +110,12 @@ files:
|
|
|
110
110
|
- lib/baykit/bayserver/docker/reroute.rb
|
|
111
111
|
- lib/baykit/bayserver/docker/secure.rb
|
|
112
112
|
- lib/baykit/bayserver/docker/send_file/directory_train.rb
|
|
113
|
+
- lib/baykit/bayserver/docker/send_file/file_content.rb
|
|
113
114
|
- lib/baykit/bayserver/docker/send_file/file_content_handler.rb
|
|
115
|
+
- lib/baykit/bayserver/docker/send_file/file_store.rb
|
|
114
116
|
- lib/baykit/bayserver/docker/send_file/send_file_docker.rb
|
|
115
117
|
- lib/baykit/bayserver/docker/send_file/send_file_ship.rb
|
|
118
|
+
- lib/baykit/bayserver/docker/send_file/wait_file_ship.rb
|
|
116
119
|
- lib/baykit/bayserver/docker/town.rb
|
|
117
120
|
- lib/baykit/bayserver/docker/trouble.rb
|
|
118
121
|
- lib/baykit/bayserver/docker/warp.rb
|
|
@@ -135,6 +138,7 @@ files:
|
|
|
135
138
|
- lib/baykit/bayserver/protocol/protocol_handler_store.rb
|
|
136
139
|
- lib/baykit/bayserver/rudders/io_rudder.rb
|
|
137
140
|
- lib/baykit/bayserver/rudders/rudder.rb
|
|
141
|
+
- lib/baykit/bayserver/rudders/rudder_base.rb
|
|
138
142
|
- lib/baykit/bayserver/ships/ship.rb
|
|
139
143
|
- lib/baykit/bayserver/sink.rb
|
|
140
144
|
- lib/baykit/bayserver/taxi/taxi.rb
|
|
@@ -144,7 +148,6 @@ files:
|
|
|
144
148
|
- lib/baykit/bayserver/tours/read_file_taxi.rb
|
|
145
149
|
- lib/baykit/bayserver/tours/req_content_handler.rb
|
|
146
150
|
- lib/baykit/bayserver/tours/send_file_train.rb
|
|
147
|
-
- lib/baykit/bayserver/tours/send_file_yacht.rb
|
|
148
151
|
- lib/baykit/bayserver/tours/tour.rb
|
|
149
152
|
- lib/baykit/bayserver/tours/tour_handler.rb
|
|
150
153
|
- lib/baykit/bayserver/tours/tour_req.rb
|
|
@@ -173,9 +176,11 @@ files:
|
|
|
173
176
|
- lib/baykit/bayserver/util/md5_password.rb
|
|
174
177
|
- lib/baykit/bayserver/util/message.rb
|
|
175
178
|
- lib/baykit/bayserver/util/mimes.rb
|
|
179
|
+
- lib/baykit/bayserver/util/nio_selector.rb
|
|
176
180
|
- lib/baykit/bayserver/util/object_factory.rb
|
|
177
181
|
- lib/baykit/bayserver/util/object_store.rb
|
|
178
182
|
- lib/baykit/bayserver/util/postman.rb
|
|
183
|
+
- lib/baykit/bayserver/util/rb_selector.rb
|
|
179
184
|
- lib/baykit/bayserver/util/reusable.rb
|
|
180
185
|
- lib/baykit/bayserver/util/selector.rb
|
|
181
186
|
- lib/baykit/bayserver/util/simple_buffer.rb
|
|
@@ -186,13 +191,11 @@ files:
|
|
|
186
191
|
- lib/baykit/bayserver/util/url_encoder.rb
|
|
187
192
|
- lib/baykit/bayserver/util/valve.rb
|
|
188
193
|
- lib/baykit/bayserver/version.rb
|
|
189
|
-
- lib/baykit/bayserver/watercraft/boat.rb
|
|
190
|
-
- lib/baykit/bayserver/watercraft/yacht.rb
|
|
191
194
|
homepage: https://baykit.yokohama
|
|
192
195
|
licenses:
|
|
193
196
|
- MIT
|
|
194
197
|
metadata: {}
|
|
195
|
-
post_install_message:
|
|
198
|
+
post_install_message:
|
|
196
199
|
rdoc_options: []
|
|
197
200
|
require_paths:
|
|
198
201
|
- lib
|
|
@@ -207,8 +210,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
207
210
|
- !ruby/object:Gem::Version
|
|
208
211
|
version: '0'
|
|
209
212
|
requirements: []
|
|
210
|
-
rubygems_version: 3.
|
|
211
|
-
signing_key:
|
|
213
|
+
rubygems_version: 3.4.19
|
|
214
|
+
signing_key:
|
|
212
215
|
specification_version: 4
|
|
213
216
|
summary: BayServer core module
|
|
214
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,30 +0,0 @@
|
|
|
1
|
-
module Baykit
|
|
2
|
-
module BayServer
|
|
3
|
-
module Agent
|
|
4
|
-
class Letter
|
|
5
|
-
ACCEPTED = 1
|
|
6
|
-
CONNECTED = 2
|
|
7
|
-
READ = 3
|
|
8
|
-
WROTE = 4
|
|
9
|
-
CLOSEREQ = 5
|
|
10
|
-
|
|
11
|
-
attr :type
|
|
12
|
-
attr :state
|
|
13
|
-
attr :n_bytes
|
|
14
|
-
attr :address
|
|
15
|
-
attr :err
|
|
16
|
-
attr :client_rudder
|
|
17
|
-
|
|
18
|
-
def initialize(type, st, client_rd, n, adr, err)
|
|
19
|
-
@type = type
|
|
20
|
-
@state = st
|
|
21
|
-
@client_rudder = client_rd
|
|
22
|
-
@n_bytes = n
|
|
23
|
-
@err = err
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|