diff options
author | Alan Young <consult.awy@gmail.com> | 2016-04-18 16:37:46 (GMT) |
---|---|---|
committer | Alan Young <consult.awy@gmail.com> | 2016-04-20 16:29:51 (GMT) |
commit | 9d50093bee736d2b7b43756e9a41cfafbd568ee2 (patch) | |
tree | 50923023315027b6a099f7349506868d58b4d736 /src/com/isode/stroke/signals/SignalConnection.java | |
parent | 82f43f69b1cdb1d2f6cd11c64a71dc99c8533d5a (diff) | |
download | stroke-9d50093bee736d2b7b43756e9a41cfafbd568ee2.zip stroke-9d50093bee736d2b7b43756e9a41cfafbd568ee2.tar.bz2 |
Rework Signals for time and space optimizations
Each Signal* class extends BaseSignal. Each Slot* class extends
BaseSlot.
BaseSignal manages the set of binds associated with it via addBind() and
getBinds() which are called from Signal*. It is optimized for the cases
of zero or one bind, only allocating a HashMap to hold a larger set when
needed.
The interaction with SignalConnection to handle disconnection is
effected via a callback interface rather than another Signal.
Change-Id: Ifa44c1eb40b778c303db947a6e74fe20d1b41a90
Diffstat (limited to 'src/com/isode/stroke/signals/SignalConnection.java')
-rw-r--r-- | src/com/isode/stroke/signals/SignalConnection.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/com/isode/stroke/signals/SignalConnection.java b/src/com/isode/stroke/signals/SignalConnection.java index 452c80b..30bbf82 100644 --- a/src/com/isode/stroke/signals/SignalConnection.java +++ b/src/com/isode/stroke/signals/SignalConnection.java @@ -1,15 +1,22 @@ /* - * Copyright (c) 2010, Isode Limited, London, England. + * Copyright (c) 2010-2015, Isode Limited, London, England. * All rights reserved. */ package com.isode.stroke.signals; - public class SignalConnection { - public final Signal onDestroyed = new Signal(); - + interface DisconnectListener { + void onSignalConnectionDisconnect(SignalConnection connection); + } + + private final DisconnectListener listener; + + SignalConnection(DisconnectListener listener) { + this.listener = listener; + } + public void disconnect() { - onDestroyed.emit(); + listener.onSignalConnectionDisconnect(this); } } |