drb-1.3.2b2 版
オブジェクトと識別子の変換器。
to_obj(id)識別子からオブジェクトに変換する。
to_id(obj)オブジェクトから識別子に変換する。
参照渡しのためのMix-inクラス
dump(dummy)dumpを失敗させる。TypeError例外を発生する。
DRbServerが見つからないエラー。おそらくDRbServerが準備されていない。
RuntimeError
ローカルがMarshal.loadできない例外を受けたときに代わりに発生する例外。
RuntimeError
new(unknown)unknownMarshal.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する
exceptionDRbUnknownError例外を発生させる
通信にかかわるユーティリティ。内部で使用される。
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_sundefされており、リモートのメソッドが起動される
to_aundefされており、リモートのメソッドが起動される
respond_to?undefされており、リモートのメソッドが起動される
DRbObjectがリモートメソッドを起動するために使用するライブラリ。内部で使用。
DRbProtocol (Mix-in)
new(remote_uri)remote_uriで指定するサーバとの通信を準備する
send_message(ref, msg_id, *arg, &block)リモートへメッセージを送信し、評価結果を受信する。
untaint_remoteprivateメソッド。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サーバスレッドを返す
frontURIに関連付けられる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へのメソッドを起動する。 内部使用
procRMIの要求を処理する。 内部使用
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)