2004-02-14 05:28:02 +03:00
|
|
|
=begin
|
|
|
|
multiple DRbServer
|
2011-05-15 15:55:52 +04:00
|
|
|
Copyright (c) 1999-2002 Masatoshi SEKI
|
2004-02-14 05:28:02 +03:00
|
|
|
=end
|
|
|
|
|
|
|
|
=begin
|
|
|
|
How to play.
|
|
|
|
|
|
|
|
Terminal 1
|
2011-05-15 15:55:52 +04:00
|
|
|
| % ruby drbm.rb
|
2004-02-14 05:28:02 +03:00
|
|
|
| druby://yourhost:7640 druby://yourhost:7641
|
|
|
|
|
|
|
|
Terminal 2
|
|
|
|
| % ruby drbmc.rb druby://yourhost:7640 druby://yourhost:7641
|
|
|
|
| [#<DRb::DRbObject .... @uri="druby://yourhost:7640">, "FOO"]
|
|
|
|
| [#<DRb::DRbObject .... @uri="druby://yourhost:7641">, "FOO"]
|
|
|
|
|
|
|
|
=end
|
|
|
|
|
|
|
|
require 'drb/drb'
|
|
|
|
|
|
|
|
class Hoge
|
|
|
|
include DRbUndumped
|
|
|
|
def initialize(s)
|
|
|
|
@str = s
|
|
|
|
end
|
2011-05-15 15:55:52 +04:00
|
|
|
|
2004-02-14 05:28:02 +03:00
|
|
|
def to_s
|
|
|
|
@str
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class Foo
|
|
|
|
def initialize(s='FOO')
|
|
|
|
@hoge = Hoge.new(s)
|
|
|
|
end
|
|
|
|
|
|
|
|
def hello
|
|
|
|
@hoge
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class Bar < Foo
|
|
|
|
def initialize(foo)
|
|
|
|
@hoge = foo.hello
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if __FILE__ == $0
|
|
|
|
foo = Foo.new
|
|
|
|
s1 = DRb::DRbServer.new('druby://:7640', foo)
|
|
|
|
s2 = DRb::DRbServer.new('druby://:7641', Bar.new(foo))
|
|
|
|
|
|
|
|
puts "#{s1.uri} #{s2.uri}"
|
|
|
|
|
2004-06-27 19:36:32 +04:00
|
|
|
s1.thread.join
|
|
|
|
s2.thread.join
|
2004-02-14 05:28:02 +03:00
|
|
|
end
|
|
|
|
|