On 26 March 2012 12:45, Henrik Sperre Johansen <[email protected]> wrote: > On 26.03.2012 00:08, Igor Stasenko wrote: >> >> On 25 March 2012 21:49, Stéphane Ducasse<[email protected]> >> wrote: >>> >>> Hi guys >>> >>> I'm starting to look at how we can remove SystemChangeNotifier to only >>> use SystemAnnouncement. >>> Now >>> Is there an equivalent to >>> SystemChangeNotifier uniqueInstance doSilently: [……] >>> >>> for Announcement? >>> > Not implemented (yet?). > > >> well, you can implement disabling announcer for a while.. >> >> announcer disableWhile: [... >> >> ... any announces here wont be delivered ..]. >> >> easy > > Following the original posts, the API should be suspendWhile: > http://www.cincomsmalltalk.com/userblogs/vbykov/blogView?showComments=true&printTitle=Advanced_Announcements,_part_3&entry=3311267425 > > And the reason I haven't done more than think about it, is respecting Igor's > security concerns about subscription modifications by external users really > complicates doing things like this in a good way... > The above announcer disableWhile: certainly break them in the most blatant > way possible :P > +100
yes.. now since i remember our discussion about it.. yes.. i am still against it. because it just violating the principle of least authority: - any guy who thinks he is a position to suspend announcements can do it, but since he doesn't knows who else subscribed to them, he simply can ruin the logic of other event consumers... I think we should think about other approach: In case of system changes notifier , a "do silently" was do not log the changes. That means that if we could have a logger plugged into system announcer, one should tell a system logger to ignore system notifications and do not log them for a while, instead of making system notifier suspending all subscriptions, leading to unknown consequences for the rest of event listeners! If guy wants to suspend logging, he should tell logger to suspend it.. like that, no other facilities will be affected. -- Best regards, Igor Stasenko.
