Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > drb/extservライブラリ > DRb::ExtServクラス

class DRb::ExtServ

クラスの継承リスト: DRb::ExtServ < DRb::DRbUndumped < Object < Kernel < BasicObject

要約

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

目次

特異メソッド
new
インスタンスメソッド
alive? front server stop_service

特異メソッド

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 で同じ名前のサービスを要求すると、 別のプロセスが起動します。