パッケージ org.piax.gtrans.tsd
クラス TSD<T>
java.lang.Object
org.piax.gtrans.tsd.TSD<T>
- 直系の既知のサブクラス:
BroadcastTSD,MulticastTSD
public abstract class TSD<T> extends Object
Transport Service Discovery (TSD) のためのテンプレートクラス。
TSDは、mDNS のプロトコルに従って、近傍のピアとサービス情報の交換を行う仕組みを提供する。 サービス情報として、ピアのアドレス情報、つまり peerId, endpoint の組を交換することが主な用途であるが、 これ以外にも一般のオブジェクトを扱うことができる。
このようにTSDは汎用性を持った近傍との情報交換のクラスであるが、交換したいサービス毎にインスタンスを生成 することは非効率であるため、サービスを交換したいアプリが共通のTSDを使うようにしている。 サービスを交換するアプリの識別にはObjectIdを用いる。交換されるサービス情報にはこのObjectIdが付与 されて、同じObjectIdを持つリモートアプリに通知される。
TSDを使ってピア情報を交換する代表的なアプリに、gtransのDiscoverableがある。Bluetooth以外の TCP/IP通信はTSDを使って、Discoverable にしている。
TSDの実装には、UDPのマルチキャストを使う MulticastTSDとブロードキャストを使うBroadcastTSDの2つがある。
-
フィールドの概要
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 TSD() -
メソッドの概要
修飾子とタイプ メソッド 説明 protected abstract voidadvertise(org.piax.gtrans.tsd.ServiceInfo<T> info)ServiceInfoを広告する。protected voidadvertiseAll(PeerId peerId, ObjectId receiver)peerId, receiverの区分で登録されているすべてのlocalServiceを広告する。voidcancelDiscovery(PeerId peerId, ObjectId receiver)peerId, receiverの区分でセットしたタイマーをキャンセルする。protected voidcheckDiscarding(PeerId peerId, ObjectId receiver)削除タイミングをTSDListenerに通知する。abstract voidfin()protected voidfound(org.piax.gtrans.tsd.ServiceInfo<T> serv)ServiceInfoが発見されたことを通知する。TSDListenergetDiscoveryListener(PeerId peerId, ObjectId receiver)voidregisterService(PeerId peerId, ObjectId receiver, T info)voidscheduleDiscovery(PeerId peerId, ObjectId receiver, long delay, long period)peerId, receiverの区分で、discoveryTasksのタイマー登録をする。voidsetDiscoveryListener(PeerId peerId, ObjectId receiver, TSDListener listener)voidunregisterAllServices(PeerId peerId, ObjectId receiver)voidunregisterService(PeerId peerId, ObjectId receiver, T info)
-
フィールド詳細
-
timer
schedule timer for TSD
-
-
コンストラクタの詳細
-
TSD
public TSD()
-
-
メソッドの詳細
-
fin
public abstract void fin() -
setDiscoveryListener
-
getDiscoveryListener
-
advertise
ServiceInfoを広告する。 このメソッドは下位層で実装する。- パラメータ:
info- the information to advertise.- 例外:
IOException- an I/O error.
-
registerService
-
unregisterService
-
unregisterAllServices
-
advertiseAll
peerId, receiverの区分で登録されているすべてのlocalServiceを広告する。- パラメータ:
peerId- the peer id.receiver- the object id of the receiver.
-
scheduleDiscovery
peerId, receiverの区分で、discoveryTasksのタイマー登録をする。- パラメータ:
peerId- the peer id.receiver- the object id of the receiver.delay- the delay to start execution.period- the period to execute.
-
cancelDiscovery
peerId, receiverの区分でセットしたタイマーをキャンセルする。- パラメータ:
peerId- the peer id.receiver- the object id of the receiver.
-
found
ServiceInfoが発見されたことを通知する。 このメソッドは下位層から呼ばれる。- パラメータ:
serv- the service info.
-
checkDiscarding
削除タイミングをTSDListenerに通知する。- パラメータ:
peerId- the peer id.receiver- receiver object id.
-