Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  wikifarm  Login

ShootingStar::Channel

ShootingStar::Channelクラス

チャンネルを管理するクラスです。あ、3.0で仕様が変わったっぽい。

チャンネルは@@channelsで管理。チャンネルに接続してきたものは各チャンネルごとに@waitersで管理。

@observersは3.0で新登場。その名の通りオブサーバを管理(単なるSet。Arrayでもいいかも)。

メソッド

Channel::new(channel_path)

新しいチャンネルを生成します。channel_pathはチャンネル探索用のキーになります。

Channel#transmit(id, params)

チャンネルに登録されているサーバに送信を行わせます。 その前に、params[:event]の値があれば、登録されているobserverにイベントを通知します。

Channel#join(server)

接続してきたserverをチャンネルに参加させます。

Channel#leave(server)

チャンネルからserverを離脱させます。

Channel#observe(observer)

チャンネルにobserverを登録します。 登録されたobserverはChannel#trasmitがあったときに同時にイベントが通知されます。

Channel#ignore(observer)

チャンネルに登録されているobserverを登録解除します。 実際には@observersからobserverをdeleteするだけです。

Channel::[channel_path]

channel_pathをキーにチャンネルを取り出します。

Channel::list()

channelのキー(要するにchannel_path)のリストを返します。

Channel::sweep()

joinしているものがいないチャンネルをまとめて削除します。

Channel::cleanup(channel_path)

特定のチャンネルchannel_pathにjoinしているものがいなければ削除します。

Last modified:2007/06/25 00:58:46
Keyword(s):
References: