Module: DRb
- Defined in:
- lib/drb/drb.rb,
lib/drb/gw.rb,
lib/drb/eq.rb,
lib/drb/ssl.rb,
lib/drb/unix.rb,
lib/drb/extserv.rb,
lib/drb/observer.rb,
lib/drb/extservm.rb,
lib/drb/timeridconv.rb,
lib/drb/invokemethod.rb
Overview
for ruby-1.8.0
Defined Under Namespace
Modules: DRbObservable, DRbProtocol, DRbUndumped Classes: DRbArray, DRbBadScheme, DRbBadURI, DRbConn, DRbConnError, DRbError, DRbIdConv, DRbMessage, DRbObject, DRbRemoteError, DRbSSLSocket, DRbServer, DRbServerNotFound, DRbTCPSocket, DRbUNIXSocket, DRbURIOption, DRbUnknown, DRbUnknownError, ExtServ, ExtServManager, GW, GWIdConv, TimerIdConv
Instance Attribute Summary collapse
-
#primary_server ⇒ Object
The primary local dRuby server.
Instance Method Summary collapse
-
#config ⇒ Object
Get the configuration of the current server.
-
#current_server ⇒ Object
Get the 'current' server.
- #fetch_server(uri) ⇒ Object
-
#front ⇒ Object
Get the front object of the current server.
-
#here?(uri) ⇒ Boolean
Is
uri
the URI for the current local server?. -
#install_acl(acl) ⇒ Object
Set the default acl.
-
#install_id_conv(idconv) ⇒ Object
Set the default id conv object.
- #regist_server(server) ⇒ Object
- #remove_server(server) ⇒ Object
-
#start_service(uri = nil, front = nil, config = nil) ⇒ Object
Start a dRuby server locally.
-
#stop_service ⇒ Object
Stop the local dRuby server.
-
#thread ⇒ Object
Get the thread of the primary server.
-
#to_id(obj) ⇒ Object
Get a reference id for an object using the current server.
-
#to_obj(ref) ⇒ Object
Convert a reference into an object using the current server.
-
#uri ⇒ Object
Get the URI defining the local dRuby space.
Instance Attribute Details
#primary_server ⇒ Object
The primary local dRuby server.
This is the server created by the #start_service call.
1635 1636 1637 |
# File 'lib/drb/drb.rb', line 1635 def primary_server @primary_server end |
Instance Method Details
#config ⇒ Object
Get the configuration of the current server.
If there is no current server, this returns the default configuration. See #current_server and DRbServer::make_config.
1684 1685 1686 1687 1688 |
# File 'lib/drb/drb.rb', line 1684 def config current_server.config rescue DRbServer.make_config end |
#current_server ⇒ Object
Get the 'current' server.
In the context of execution taking place within the main thread of a dRuby server (typically, as a result of a remote call on the server or one of its objects), the current server is that server. Otherwise, the current server is the primary server.
If the above rule fails to find a server, a DRbServerNotFound error is raised.
1648 1649 1650 1651 1652 1653 |
# File 'lib/drb/drb.rb', line 1648 def current_server drb = Thread.current['DRb'] server = (drb && drb['server']) ? drb['server'] : @primary_server raise DRbServerNotFound unless server return server end |
#fetch_server(uri) ⇒ Object
1756 1757 1758 |
# File 'lib/drb/drb.rb', line 1756 def fetch_server(uri) @server[uri] end |
#front ⇒ Object
Get the front object of the current server.
This raises a DRbServerNotFound error if there is no current server. See #current_server.
1695 1696 1697 |
# File 'lib/drb/drb.rb', line 1695 def front current_server.front end |
#here?(uri) ⇒ Boolean
Is uri
the URI for the current local server?
1675 1676 1677 |
# File 'lib/drb/drb.rb', line 1675 def here?(uri) (current_server.uri rescue nil) == uri end |
#install_acl(acl) ⇒ Object
Set the default acl.
See DRb::DRbServer.default_acl.
1737 1738 1739 |
# File 'lib/drb/drb.rb', line 1737 def install_acl(acl) DRbServer.default_acl(acl) end |
#install_id_conv(idconv) ⇒ Object
Set the default id conv object.
See DRbServer#default_id_conv.
1729 1730 1731 |
# File 'lib/drb/drb.rb', line 1729 def install_id_conv(idconv) DRbServer.default_id_conv(idconv) end |
#regist_server(server) ⇒ Object
1743 1744 1745 1746 1747 1748 |
# File 'lib/drb/drb.rb', line 1743 def regist_server(server) @server[server.uri] = server Thread.exclusive do @primary_server = server unless @primary_server end end |
#remove_server(server) ⇒ Object
1751 1752 1753 |
# File 'lib/drb/drb.rb', line 1751 def remove_server(server) @server.delete(server.uri) end |
#start_service(uri = nil, front = nil, config = nil) ⇒ Object
Start a dRuby server locally.
The new dRuby server will become the primary server, even if another server is currently the primary server.
uri
is the URI for the server to bind to. If nil, the server will bind to random port on the default local host name and use the default dRuby protocol.
front
is the server???s front object. This may be nil.
config
is the configuration for the new server. This may be nil.
See DRbServer::new.
1627 1628 1629 |
# File 'lib/drb/drb.rb', line 1627 def start_service(uri=nil, front=nil, config=nil) @primary_server = DRbServer.new(uri, front, config) end |
#stop_service ⇒ Object
Stop the local dRuby server.
This operates on the primary server. If there is no primary server currently running, it is a noop.
1660 1661 1662 1663 |
# File 'lib/drb/drb.rb', line 1660 def stop_service @primary_server.stop_service if @primary_server @primary_server = nil end |
#thread ⇒ Object
Get the thread of the primary server.
This returns nil if there is no primary server. See #primary_server.
1721 1722 1723 |
# File 'lib/drb/drb.rb', line 1721 def thread @primary_server ? @primary_server.thread : nil end |
#to_id(obj) ⇒ Object
Get a reference id for an object using the current server.
This raises a DRbServerNotFound error if there is no current server. See #current_server.
1712 1713 1714 |
# File 'lib/drb/drb.rb', line 1712 def to_id(obj) current_server.to_id(obj) end |
#to_obj(ref) ⇒ Object
Convert a reference into an object using the current server.
This raises a DRbServerNotFound error if there is no current server. See #current_server.
1704 1705 1706 |
# File 'lib/drb/drb.rb', line 1704 def to_obj(ref) current_server.to_obj(ref) end |
#uri ⇒ Object
Get the URI defining the local dRuby space.
This is the URI of the current server. See #current_server.
1669 1670 1671 |
# File 'lib/drb/drb.rb', line 1669 def uri current_server.uri end |