class DRb::ExtServ

要約

DRb::ExtServManager で使われるサービスを定義しているクラスです。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

特異メソッド

new(there, name, server=nil) -> DRb::ExtServ[permalink][rdoc]

DRb::ExtServ オブジェクトを生成し、サービスを DRb::ExtServManager オブジェクトに登録します。

there で指定した URI の front オブジェクト(これは DRb::ExtServManager のインスタンスであるべきです)に name という名前でサービスを登録します。

there, name は Object::ARGV の末尾2つを渡してください。

server には drb の通信に用いる DRb::DRbServer オブジェクトを指定します。省略した場合は DRb.#primary_server を用います。 DRb::ExtServ#front が返すオブジェクトはこのサーバの DRb::DRbServer#front が用いられます。

[PARAM] there:
サービスを管理しているプロセスの drb URI
[PARAM] name:
サービスの名前
[PARAM] server:
DRb::DRbServer オブジェクト

インスタンスメソッド

alive? -> bool[permalink][rdoc]

サービスが起動しているならば真を返します。

リモート側からこのメソッドを呼ぶのはあまり意味がありません。サービスを停止するとリモートメソッド呼び出しができなくなるためです。

front -> object[permalink][rdoc]

サービスの窓口となるオブジェクトを返します。

実際には、DRb::ExtServ.new の server で指定した DRb::DRbServer オブジェクトの DRb::DRbServer#front が返されます。

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

通信に利用しているサーバを返します。

DRb::ExtServ.new で指定した DRb::DRbServer を返します。

stop_service -> true[permalink][rdoc]

サービスを停止します。

DRb::ExtServManager オブジェクトにサービスの停止を伝達し、 DRb::DRbServer#stop_service でサーバを停止します。

このメソッドはリモートから起動することができます。サーバが停止するため、停止したサービスのリモートオブジェクトは利用できなくなります。また、サーバの停止により接続を待ち受けているスレッドが停止します。

サービス停止後、 DRb::ExtServManager#service で同じ名前のサービスを要求すると、別のプロセスが起動します。