drb-1.3.2b2 版
オブジェクトと識別子の変換器。
to_obj(id)
識別子からオブジェクトに変換する。
to_id(obj)
オブジェクトから識別子に変換する。
参照渡しのためのMix-inクラス
dump(dummy)
dumpを失敗させる。TypeError例外を発生する。
DRbServerが見つからないエラー。おそらくDRbServerが準備されていない。
RuntimeError
ローカルがMarshal.loadできない例外を受けたときに代わりに発生する例外。
RuntimeError
new(unknown)
unknown
Marshal.loadできないために代わりに作られたDRbUnknownオブジェクト。
Marshal.loadできないためオブジェクトが渡されたときに代わりに生成される オブジェクト。
new(err, buf)
Marsahl.loadが失敗したときに例外と元の直列化したオブジェクトから DRbUnknownを作る。
load(s)
DRbUnknownがMarshal.dumpされ、loadされるときに呼ばれるメソッド。 元の直列化したオブジェクトをもう一度loadを試し、loadに成功すれば そのオブジェクトを返す。失敗すればDRbUnknownを返す。
_dump(lv)
Marshal.dumpで呼ばれ直列化したオブジェクトをそのまま返す。
reload
もう一度loadする
exception
DRbUnknownError例外を発生させる
通信にかかわるユーティリティ。内部で使用される。
parse_uri(uri)
URIからホスト、ポートを取り出す
dump(obj, soc)
objを直列化してsocに送る
load(soc)
socから直列化されたオブジェクトを取り出す
send_request(soc, ref, msg_id, *arg, &b)
socにメッセージを送信する
recv_request(soc)
socからのメッセージを受信する
send_reply(soc, succ, result)
socにメソッドの結果を送信する
recv_reply(soc)
socからメソッドの結果を受信する
ro_to_obj(ro)
参照オブジェクトからオブジェクトへ変換する
リモートオブジェクトを参照するオブジェクト
new(obj, uri=nil)
objへの参照オブジェクトを作る。objがnilでuriが指定された場合uriのDRbServerの frontオブジェクトへの参照となる
__drbref
サーバ内でオブジェクトを特定するための識別子を返す。内部で使用。
method_missing(msg_id, *a, &b)
メソッドがないときに呼ばれ、リモートオブジェクトにメッセージを転送する
to_s
undefされており、リモートのメソッドが起動される
to_a
undefされており、リモートのメソッドが起動される
respond_to?
undefされており、リモートのメソッドが起動される
DRbObjectがリモートメソッドを起動するために使用するライブラリ。内部で使用。
DRbProtocol (Mix-in)
new(remote_uri)
remote_uriで指定するサーバとの通信を準備する
send_message(ref, msg_id, *arg, &block)
リモートへメッセージを送信し、評価結果を受信する。
untaint_remote
privateメソッド。remote_uriをuntaintする
dRubyのRMIを提供するサーバスレッド。 1.2系でDRbモジュールの機能だったのものの多くがDRbServerに移された。 一つのプロセスで同時に複数のDRbServerを利用できる。
default_argc_limit(argc)
メソッドの引数の数の上限を設定する。 以降のDRbServerの生成から有効となる
default_load_limit(sz)
直列化されたオブジェクトのサイズの上限を設定する。 以降のDRbServerの生成から有効となる
default_acl(acl)
デフォルトのACLを設定する。 以降のDRbServerの生成から有効となる
new(uri=nil, front=nil, acl=nil, idconv=nil)
DRbServerを生成しサーバスレッドを起動する。 アプリケーションで最初に生成されたDRbServerがprimary_serverとなる。
uri はDRbServer自身のURIとなる。uriにはnilや省略された形式のURIを 与えることができる。ポート番号を省略するとシステムが自動的に割り当てた ポートを使用する。 frontはURIに関連付けられるオブジェクトである。 ACLやid_convをカスタマイズする場合、それぞれacl, idconvで指定する。
uri
完全なURIを返す
thread
サーバスレッドを返す
front
URIに関連付けられるfrontオブジェクトを返す
argc_limit
メソッドの引数の数の上限を返す
argc_limit=
メソッドの引数の数の上限を設定する
load_limit
直列化されたオブジェクトのサイズの上限を返す
load_limit=
直列化されたオブジェクトのサイズの上限を設定する
alive?
サーバスレッドが生きているか返す
stop_service
サーバスレッドを停止する
to_obj(ref)
識別子に対応するオブジェクトを返す
to_id(obj)
オブジェクトに対応する識別子を返す
kill_sub_thread
サーバスレッドに起動されたスレッドを全て停止する
run
メインループ
allow?(s)
ソケットsからのアクセスを許すかどうか返す。 アクセスの制御を変更したいときはこれをoverrideする。
insecure_methods?(msg_id)
危険なメソッドかどうか調べる。 真の場合メソッドを起動しない
fake_yield(argv)
内部使用
obj_send(obj, msg_id, *argv)
リモートより要求されたobjへのメソッドを起動する。 内部使用
proc
RMIの要求を処理する。 内部使用
1.3より多くの機能はDRbServerへ移され、DRbのメソッドはプライマリサーバ、 カレントサーバへ転送するものが多くなった。
start_service(uri=nil, front=nil, acl=nil)
DRbServerを生成しサーバスレッドを起動する。
primary_server
プライマリサーバを返す
current_server
カレントサーバを返す。 現在のスレッドが関連しているDRbServerを関連がなければプライマリサーバを返す 現在のスレッドがRMIによって起動されたものであれば、そのRMIを受理した サーバがカレントサーバである。
stop_service
プライマリサーバのサーバスレッドを停止する
uri
カレントサーバのURIを返す
front
カレントサーバのfrontオブジェクトを返す
to_obj(ref)
カレントサーバの変換方法で識別子に対応するオブジェクトを返す
to_id(ref)
カレントサーバの変換方法でオブジェクトに対応する識別子を返す
thread
プライマリサーバのスレッドを返す
install_id_conv(idconv)
DRbServer.default_id_conv(idconv)
install_acl(acl)
DRbServer.default_acl(acl)