module DRb

要約

drb ライブラリの名前空間となるモジュール。

目次

モジュール関数

モジュール関数

config -> { Symbol => Object }[permalink][rdoc]

カレントサーバの設定を返します。

カレントサーバが存在しない場合は、デフォルトの設定を返します。

[SEE_ALSO] DRb.#current_server

current_server -> DRb::DRbServer[permalink][rdoc]

「カレントサーバ」を返します。

リモートメソッドが呼び出された場合、そのスレッドでは、その呼び出しを管理しているサーバがカレントサーバとなります。そうでない場合はプライマリサーバとなります。

通常、カレントサーバとプライマリサーバは一致しますが、複数のサーバを異なる URI で起動した場合などにはこの2つが異なる場合があります。

[EXCEPTION] DRb::DRbServerNotFound:
カレントサーバが存在しない場合に発生します

[SEE_ALSO] DRb.#primary_server

front -> object[permalink][rdoc]

カレントサーバのフロントオブジェクトを返します。

[EXCEPTION] DRbServerNotFound:
カレントサーバが存在しない場合に発生します

[SEE_ALSO] DRb.#current_server

here?(uri) -> bool[permalink][rdoc]

uri がカレントサーバに紐付けられたものであれば真を返します。

[SEE_ALSO] DRb.#current_server

install_acl(acl) -> ()[permalink][rdoc]

サーバ起動時の :acl オプションのデフォルト値を指定します。

内部的には DRb::DRbServer.default_acl を呼び出すだけです。

[SEE_ALSO] ACL

install_id_conv(idconv) -> ()[permalink][rdoc]

サーバ起動時の :id_conv オプションのデフォルト値を指定します。

内部的には DRb::DRbServer.default_id_conv を呼び出すだけです。

primary_server -> DRb::DRbServer|nil[permalink][rdoc]

ローカルプロセスのプライマリサーバーを返します。

プライマリサーバとは DRb.#start_service によって起動されるサーバです。

サーバが動いていない場合は nil を返します。

[SEE_ALSO] DRb.#stop_service

primary_server=(server)[permalink][rdoc]

ローカルプロセスのプライマリサーバーを変更します。

通常、プライマリサーバは DRb.#start_service などが設定するものであり、ユーザが変更すべきではありません。このメソッドは dRuby の内部構造を良く理解した上で利用してください。

start_service(uri=nil, front=nil, config_or_acl=nil) -> ()[permalink][rdoc]

dRuby のサービス(サーバ)を起動します。

これで起動したサーバはプロセスのプライマリサーバとなります。すでにプライマリサーバが存在する場合は上書きされます。

uri に URI を文字列で指定すると、それに起動したサービスを bind します。通常は 'druby://<hostname>:<port>' という形式の URI を指定します。このときは TCP が通信手段として使われます。 'drbunix:' のような他のプロトコルを指定することもできます。

front でフロントオブジェクト(URI に結び付けられるオブジェクト)を設定します。

config で Hash で設定を渡します。以下の項目が利用できます。

:idconv

dRuby内部で識別子とオブジェクトを相互に変換するためのオブジェクト。デフォルトは DRb::DRbIdConv のインスタンス。

:verbose

真を指定すると失敗したdRuby経由のメソッドのログを $stdout に出力します。デフォルトは false。

:tcp_acl

サーバに設定する ACL(Access Control List)。詳しくは ACL を見てください。デフォルトは nil(設定しない)。

:load_limit

サーバが受け付けるメッセージの最大バイト数。デフォルトは 26214400(25MB)

:argc_limit

サーバが受け付けるリモートメソッド呼出の引数の最大個数。デフォルトは256。

:auto_load

真に設定すると、 URIで指定されたプロトコルを取り扱うのに必要なDRbのサブライブラリが自動的にロードされます。デフォルトは true。

:safe_level

リモートからのメソッド呼出しメッセージを受け取ったときに対応するローカルオブジェクトのメソッド呼出をする前にスレッドに設定されるセーフレベル($SAFE)の値。デフォルト値は0。

デフォルト値は DRb::DRbServer の以下のクラスメソッドによって変更できます。

config に Hash以外を渡すと、ACL(Access Control List)として取り扱われます。

起動したサーバはただちに接続を待ち受けます。

[PARAM] uri:
起動するサービスを bind する URI の文字列
[PARAM] front:
フロントオブジェクト
[PARAM] config:
オプション設定の Hash
[EXCEPTION] DRb::DRbBadURI:
URI の schema が不正(サポートされていないものである)場合に発生します

[SEE_ALSO] DRb.#primary_server, DRb::DRbServer.new

stop_service -> ()[permalink][rdoc]

ローカルプロセス内の dRuby サーバ(プライマリサーバ)を停止します。

サーバが動いていない場合は何もしません。

thread -> Thread|nil[permalink][rdoc]

プライマリサーバが動作しているスレッドを返します。

プライマリサーバが存在しない場合は nil を返します。

[SEE_ALSO] DRb.#primary_server

uri -> String[permalink][rdoc]

カレントサーバに紐付けられた URI を返します。

[SEE_ALSO] DRb.#current_server