Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > drbライブラリ > DRb::DRbProtocolモジュール > add_protocol
add_protocol(prot)
Add a new protocol to the DRbProtocol module.
A protocol must define the following class methods:
Open a client connection to the server at uri, using configuration config. Return a protocol instance for this connection.
Open a server listening at uri, using configuration config. Return a protocol instance for this listener.
Take a URI, possibly containing an option component (e.g. a trailing '?param=val'), and return a [uri, option] tuple.
The DRbProtocol module asks each registered protocol in turn to try to open the URI. Each protocol signals that it does not handle that URI by raising a DRb::DRbBadScheme error. If no protocol recognises the URI, then a DRb::DRbBadURI error is raised. If a protocol accepts the URI, but an error occurs in opening it, a DRb::DRbConnError is raised.
The protocol instance returned by open_server must have the following methods:
Accept a new connection to the server. Returns a protocol instance capable of communicating with the client.
Close the server connection.
Get the URI for this server.
The protocol instance returned by open must have the following methods:
Send a request to ref with the given message id and arguments. This is most easily implemented by calling DRbMessage.send_request, providing a stream that sits on top of the current protocol.
Receive a reply from the server and return it as a [success-boolean, reply-value] pair. This is most easily implemented by calling DRb.recv_reply, providing a stream that sits on top of the current protocol.
Is this connection still alive?
Close this connection.
The protocol instance returned by open_server().accept() must have the following methods:
Receive a request from the client and return a [object, message, args, block] tuple. This is most easily implemented by calling DRbMessage.recv_request, providing a stream that sits on top of the current protocol.
Send a reply to the client. This is most easily implemented by calling DRbMessage.send_reply, providing a stream that sits on top of the current protocol.
Close this connection.