comparison roundup/hyperdb.py @ 3743:e754cc14e76a

fix unstable ordering of detectors [SF#1585378]
author Richard Jones <richard@users.sourceforge.net>
date Thu, 09 Nov 2006 03:08:22 +0000
parents 01ea89743311
children c3af8c6a6b5b
comparison
equal deleted inserted replaced
3742:a9f6eb633452 3743:e754cc14e76a
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 # 17 #
18 # $Id: hyperdb.py,v 1.127 2006-08-30 09:35:31 schlatterbeck Exp $ 18 # $Id: hyperdb.py,v 1.128 2006-11-09 03:08:22 richard Exp $
19 19
20 """Hyperdatabase implementation, especially field types. 20 """Hyperdatabase implementation, especially field types.
21 """ 21 """
22 __docformat__ = 'restructuredtext' 22 __docformat__ = 'restructuredtext'
23 23
1194 # 1194 #
1195 # Detector interface 1195 # Detector interface
1196 # 1196 #
1197 def audit(self, event, detector, priority = 100): 1197 def audit(self, event, detector, priority = 100):
1198 """Register an auditor detector""" 1198 """Register an auditor detector"""
1199 self.auditors[event].append((priority, detector)) 1199 self.auditors[event].append((priority, detector.__name__, detector))
1200 1200
1201 def fireAuditors(self, event, nodeid, newvalues): 1201 def fireAuditors(self, event, nodeid, newvalues):
1202 """Fire all registered auditors""" 1202 """Fire all registered auditors"""
1203 for prio, audit in self.auditors[event]: 1203 for prio, name, audit in self.auditors[event]:
1204 audit(self.db, self, nodeid, newvalues) 1204 audit(self.db, self, nodeid, newvalues)
1205 1205
1206 def react(self, event, detector, priority = 100): 1206 def react(self, event, detector, priority = 100):
1207 """Register a reactor detector""" 1207 """Register a reactor detector"""
1208 self.reactors[event].append((priority, detector)) 1208 self.reactors[event].append((priority, detector.__name__, detector))
1209 1209
1210 def fireReactors(self, event, nodeid, oldvalues): 1210 def fireReactors(self, event, nodeid, oldvalues):
1211 """Fire all registered reactors""" 1211 """Fire all registered reactors"""
1212 for prio, react in self.reactors[event]: 1212 for prio, name, react in self.reactors[event]:
1213 react(self.db, self, nodeid, oldvalues) 1213 react(self.db, self, nodeid, oldvalues)
1214 1214
1215 # 1215 #
1216 # import / export support 1216 # import / export support
1217 # 1217 #

Roundup Issue Tracker: http://roundup-tracker.org/