要約
DRb::ExtServManager で使われるサービスを定義しているクラスです。
目次
- 特異メソッド
- インスタンスメソッド
継承しているメソッド
特異メソッド
new(there, name, server=nil) -> DRb::ExtServ
[permalink][rdoc][edit]-
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][edit]-
サービスが起動しているならば真を返します。
リモート側からこのメソッドを呼ぶのはあまり意味がありません。サービスを停止するとリモートメソッド呼び出しができなくなるためです。
front -> object
[permalink][rdoc][edit]-
サービスの窓口となるオブジェクトを返します。
実際には、DRb::ExtServ.new の server で指定した DRb::DRbServer オブジェクトの DRb::DRbServer#front が返されます。
server -> DRb::DRbServer
[permalink][rdoc][edit]-
通信に利用しているサーバを返します。
DRb::ExtServ.new で指定した DRb::DRbServer を返します。
stop_service -> true
[permalink][rdoc][edit]-
サービスを停止します。
DRb::ExtServManager オブジェクトにサービスの停止を伝達し、 DRb::DRbServer#stop_service でサーバを停止します。
このメソッドはリモートから起動することができます。サーバが停止するため、停止したサービスのリモートオブジェクトは利用できなくなります。また、サーバの停止により接続を待ち受けているスレッドが停止します。
サービス停止後、 DRb::ExtServManager#service で同じ名前のサービスを要求すると、別のプロセスが起動します。