mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.3 KiB
58 lines
1.3 KiB
module WEBrick
|
|
class ServerError < StandardError
|
|
end
|
|
|
|
class SimpleServer
|
|
def self.start: [T] () { () -> T } -> T
|
|
end
|
|
|
|
class Daemon
|
|
def self.start: () -> void
|
|
| [T] () { () -> T } -> T
|
|
end
|
|
|
|
class GenericServer
|
|
@shutdown_pipe: [IO, IO]?
|
|
|
|
attr_reader status: :Stop | :Running | :Shutdown
|
|
|
|
attr_reader config: Hash[Symbol, untyped]
|
|
|
|
attr_reader logger: BasicLog
|
|
|
|
attr_reader tokens: Thread::SizedQueue
|
|
|
|
attr_reader listeners: Array[TCPServer| OpenSSL::SSL::SSLServer]
|
|
|
|
def initialize: (?Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
|
|
|
def []: (Symbol key) -> untyped
|
|
|
|
def listen: (String address, Integer port) -> void
|
|
|
|
def start: () ?{ (TCPSocket) -> void } -> void
|
|
|
|
def stop: () -> void
|
|
|
|
def shutdown: () -> void
|
|
|
|
def run: (TCPSocket sock) -> void
|
|
|
|
private
|
|
|
|
def accept_client: (TCPServer svr) -> TCPSocket?
|
|
|
|
def start_thread: (TCPSocket sock) ?{ (TCPSocket) -> void } -> Thread
|
|
|
|
def call_callback: (Symbol callback_name, *untyped args) -> untyped
|
|
|
|
def setup_shutdown_pipe: () -> [IO, IO]
|
|
|
|
def cleanup_shutdown_pipe: ([IO, IO]? shutdown_pipe) -> void
|
|
|
|
def alarm_shutdown_pipe: [T] () { (IO) -> T } -> T?
|
|
|
|
def cleanup_listener: () -> void
|
|
end
|
|
end
|