Implement unregister command for jsonrpc and dbus daemon

This commit is contained in:
AsamK 2021-11-12 16:07:35 +01:00
parent b78573021d
commit c73c58723c
11 changed files with 98 additions and 9 deletions

View file

@ -68,6 +68,7 @@ public class DbusManagerImpl implements Manager {
private final Set<ReceiveMessageHandler> weakHandlers = new HashSet<>();
private final Set<ReceiveMessageHandler> messageHandlers = new HashSet<>();
private final List<Runnable> closedListeners = new ArrayList<>();
private DBusSigHandler<Signal.MessageReceivedV2> dbusMsgHandler;
private DBusSigHandler<Signal.ReceiptReceivedV2> dbusRcptHandler;
private DBusSigHandler<Signal.SyncMessageReceivedV2> dbusSyncHandler;
@ -583,6 +584,13 @@ public class DbusManagerImpl implements Manager {
throw new UnsupportedOperationException();
}
@Override
public void addClosedListener(final Runnable listener) {
synchronized (closedListeners) {
closedListeners.add(listener);
}
}
@Override
public void close() throws IOException {
synchronized (this) {
@ -595,6 +603,10 @@ public class DbusManagerImpl implements Manager {
weakHandlers.clear();
messageHandlers.clear();
}
synchronized (closedListeners) {
closedListeners.forEach(Runnable::run);
closedListeners.clear();
}
}
private SendMessageResults handleMessage(