すべてのバスを介して信号をアナウンスするアプリケーションの魔女を作成しようとしています。バス内の特定のオブジェクトに接続する必要がないという考え。インターフェイスが Introspectable になる可能性があることがわかりましたが、このインターフェイスがバスに登録されているときに、バス オブジェクトに自動的に追加されることがわかりました。問題は、バスで信号を可視化する方法です。
インターフェース:
@BusInterface(name = Door.DOOR_INTF_NAME, announced = "true")
public interface Door {
String DOOR_INTF_NAME = "com.example.Door";
String PERSON_PASSED_THROUGH = "PersonPassedThrough";
@BusSignal(name = PERSON_PASSED_THROUGH, sessionless = true)
void personPassedThrough(String person) throws BusException;
}
発行:
private void doRegisterBusObject(Object obj) {
LocatableBusObject object = (LocatableBusObject) obj;
String location = object.getBusObjectLocation();
if (!location.startsWith("/")) {
location = "/" + location;
}
// Register the object on the local bus
Status status = bus.registerBusObject(object, location);
if (Status.OK != status) {
return;
}
// Have About send a signal a new door is available.
aboutObj.announce(CONTACT_PORT, aboutData);
}
オブジェクトは表示されますが、信号は表示されません。