REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 4.12 KB
Close
//proc/thread-self/root/opt/alt/ruby18/share/ri/1.8/system/GServer/cdesc-GServer.yaml
Text
Base64
--- !ruby/object:RI::ClassDescription attributes: - !ruby/object:RI::Attribute comment: name: audit rw: RW - !ruby/object:RI::Attribute comment: name: debug rw: RW - !ruby/object:RI::Attribute comment: name: host rw: R - !ruby/object:RI::Attribute comment: name: maxConnections rw: R - !ruby/object:RI::Attribute comment: name: port rw: R - !ruby/object:RI::Attribute comment: name: stdlog rw: RW class_methods: - !ruby/object:RI::MethodSummary name: in_service? - !ruby/object:RI::MethodSummary name: new - !ruby/object:RI::MethodSummary name: stop comment: - !ruby/struct:SM::Flow::P body: GServer implements a generic server, featuring thread pool management, simple logging, and multi-server management. See HttpServer in <tt>xmlrpc/httpserver.rb</tt> in the Ruby standard library for an example of GServer in action. - !ruby/struct:SM::Flow::P body: Any kind of application-level server can be implemented using this class. It accepts multiple simultaneous connections from clients, up to an optional maximum number. Several <em>services</em> (i.e. one service per TCP port) can be run simultaneously, and stopped at any time through the class method <tt>GServer.stop(port)</tt>. All the threading issues are handled, saving you the effort. All events are optionally logged, but you can provide your own event handlers if you wish. - !ruby/struct:SM::Flow::H level: 3 text: Example - !ruby/struct:SM::Flow::P body: "Using GServer is simple. Below we implement a simple time server, run it, query it, and shut it down. Try this code in <tt>irb</tt>:" - !ruby/struct:SM::Flow::VERB body: " require 'gserver'\n\n #\n # A server that returns the time in seconds since 1970.\n #\n class TimeServer < GServer\n def initialize(port=10001, *args)\n super(port, *args)\n end\n def serve(io)\n io.puts(Time.now.to_i)\n end\n end\n\n # Run the server with logging enabled (it's a separate thread).\n server = TimeServer.new\n server.audit = true # Turn logging on.\n server.start\n\n # *** Now point your browser to http://localhost:10001 to see it working ***\n\n # See if it's still running.\n GServer.in_service?(10001) # -> true\n server.stopped? # -> false\n\n # Shut the server down gracefully.\n server.shutdown\n\n # Alternatively, stop it immediately.\n GServer.stop(10001)\n # or, of course, "server.stop".\n" - !ruby/struct:SM::Flow::P body: All the business of accepting connections and exception handling is taken care of. All we have to do is implement the method that actually serves the client. - !ruby/struct:SM::Flow::H level: 3 text: Advanced - !ruby/struct:SM::Flow::P body: As the example above shows, the way to use GServer is to subclass it to create a specific server, overriding the <tt>serve</tt> method. You can override other methods as well if you wish, perhaps to collect statistics, or emit more detailed logging. - !ruby/struct:SM::Flow::VERB body: " connecting\n disconnecting\n starting\n stopping\n" - !ruby/struct:SM::Flow::P body: The above methods are only called if auditing is enabled. - !ruby/struct:SM::Flow::P body: You can also override <tt>log</tt> and <tt>error</tt> if, for example, you wish to use a more sophisticated logging system. constants: - !ruby/object:RI::Constant comment: name: DEFAULT_HOST value: "\"127.0.0.1\"" full_name: GServer includes: [] instance_methods: - !ruby/object:RI::MethodSummary name: connecting - !ruby/object:RI::MethodSummary name: connections - !ruby/object:RI::MethodSummary name: disconnecting - !ruby/object:RI::MethodSummary name: error - !ruby/object:RI::MethodSummary name: join - !ruby/object:RI::MethodSummary name: log - !ruby/object:RI::MethodSummary name: serve - !ruby/object:RI::MethodSummary name: shutdown - !ruby/object:RI::MethodSummary name: start - !ruby/object:RI::MethodSummary name: starting - !ruby/object:RI::MethodSummary name: stop - !ruby/object:RI::MethodSummary name: stopped? - !ruby/object:RI::MethodSummary name: stopping name: GServer superclass: Object
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 17
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cdesc-GServer.yaml
4.12 KB
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
connecting-i.yaml
184 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
connections-i.yaml
177 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
disconnecting-i.yaml
194 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
error-i.yaml
174 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
in_service%3f-c.yaml
202 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
join-i.yaml
163 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
log-i.yaml
167 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
new-c.yaml
254 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
serve-i.yaml
167 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
shutdown-i.yaml
171 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
start-i.yaml
184 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
starting-i.yaml
174 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
stop-c.yaml
188 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
stop-i.yaml
163 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
stopped%3f-i.yaml
171 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
stopping-i.yaml
174 B
lrw-r--r--
2023-07-26 13:47:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).