public abstract class TSD<T> extends Object
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 void |
advertise(org.piax.gtrans.tsd.ServiceInfo<T> info)
ServiceInfoを広告する。
|
protected void |
advertiseAll(PeerId peerId,
ObjectId receiver)
peerId, receiverの区分で登録されているすべてのlocalServiceを広告する。
|
void |
cancelDiscovery(PeerId peerId,
ObjectId receiver)
peerId, receiverの区分でセットしたタイマーをキャンセルする。
|
protected void |
checkDiscarding(PeerId peerId,
ObjectId receiver)
削除タイミングをTSDListenerに通知する。
|
abstract void |
fin() |
protected void |
found(org.piax.gtrans.tsd.ServiceInfo<T> serv)
ServiceInfoが発見されたことを通知する。
|
TSDListener |
getDiscoveryListener(PeerId peerId,
ObjectId receiver) |
void |
registerService(PeerId peerId,
ObjectId receiver,
T info) |
void |
scheduleDiscovery(PeerId peerId,
ObjectId receiver,
long delay,
long period)
peerId, receiverの区分で、discoveryTasksのタイマー登録をする。
|
void |
setDiscoveryListener(PeerId peerId,
ObjectId receiver,
TSDListener listener) |
void |
unregisterAllServices(PeerId peerId,
ObjectId receiver) |
void |
unregisterService(PeerId peerId,
ObjectId receiver,
T info) |
protected static final Timer timer
public abstract void fin()
public void setDiscoveryListener(PeerId peerId, ObjectId receiver, TSDListener listener)
public TSDListener getDiscoveryListener(PeerId peerId, ObjectId receiver)
protected abstract void advertise(org.piax.gtrans.tsd.ServiceInfo<T> info) throws IOException
info - the information to advertise.IOException - an I/O error.protected void advertiseAll(PeerId peerId, ObjectId receiver)
peerId - the peer id.receiver - the object id of the receiver.public void scheduleDiscovery(PeerId peerId, ObjectId receiver, long delay, long period)
peerId - the peer id.receiver - the object id of the receiver.delay - the delay to start execution.period - the period to execute.public void cancelDiscovery(PeerId peerId, ObjectId receiver)
peerId - the peer id.receiver - the object id of the receiver.protected void found(org.piax.gtrans.tsd.ServiceInfo<T> serv)
serv - the service info.Copyright © 2017. All rights reserved.