Changeset 95
- Timestamp:
- 04/11/02 12:15:11 (6 years ago)
- Files:
-
- trunk/RBJabber/RBJabber/JabberSubject.py (modified) (2 diffs)
- trunk/RBJabber/RBJabber/SubjectObserver/CategorySubject.py (modified) (3 diffs)
- trunk/RBJabber/RBJabber/SubjectObserver/Subject.py (modified) (4 diffs)
- trunk/RBJabber/RBJabber/Test.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBJabber/RBJabber/JabberSubject.py
r94 r95 43 43 44 44 class FromJIDSubjectMixin(CategorySubjectBaseMixin): 45 def AddObserver(self, category, observer, bUpdate ):45 def AddObserver(self, category, observer, bUpdate=0): 46 46 super(FromJIDSubjectMixin, self).AddObserver(JID.JID(category), observer, bUpdate) 47 47 48 def RemoveObserver(self, category, observer, bUpdate ):48 def RemoveObserver(self, category, observer, bUpdate=0): 49 49 super(FromJIDSubjectMixin, self).RemoveObserver(JID.JID(category), observer, bUpdate) 50 50 … … 55 55 for value in UpdateDict.itervalues(): 56 56 for obs in self._ObserverList(value.from_.noresource()): 57 subject._GetBid(obs (), UpdateDict)57 subject._GetBid(obs, UpdateDict) 58 58 for obs in self._ObserverList(value.from_): 59 subject._GetBid(obs (), UpdateDict)59 subject._GetBid(obs, UpdateDict) 60 60 61 61 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBJabber/RBJabber/SubjectObserver/CategorySubject.py
r93 r95 36 36 37 37 from Subject import Subject 38 import weakref 38 from Foundation import WeakBind 39 39 40 40 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 52 52 53 53 def AddObserver(self, category, observer, bUpdate=0): 54 result = self._WrapObserver(observer)54 result = WeakBind.BindCallable(observer) 55 55 self._observers.setdefault(category,[]).append(result) 56 56 if bUpdate: self.UpdateObserver(result, self._cachedUpdates) … … 58 58 59 59 def RemoveObserver(self, observer): 60 result = self._WrapObserver(observer)60 result = WeakBind.BindCallable(observer) 61 61 for observers in self._observers.itervalues(): 62 62 try: trunk/RBJabber/RBJabber/SubjectObserver/Subject.py
r88 r95 36 36 37 37 from Foundation import WeakBind 38 import weakref39 38 40 39 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 53 52 54 53 def AddObserver(self, observer, bUpdate=0): 55 result = self._WrapObserver(observer)54 result = WeakBind.BindCallable(observer) 56 55 self._observers.append(result) 57 56 if bUpdate: self.UpdateObserver(result, self._cachedUpdates) … … 59 58 60 59 def RemoveObserver(self, observer): 61 result = self._WrapObserver(observer)60 result = WeakBind.BindCallable(observer) 62 61 try: 63 62 while 1: self._observers.remove(result) … … 69 68 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70 69 71 def _WrapObserver(self, observer):72 return WeakBind.BindCallable(observer)73 74 70 def _ObserverList(self): 75 71 self._observers = filter(None, self._observers) trunk/RBJabber/RBJabber/Test.py
r89 r95 41 41 from iqBrowseResponse import iqBrowseResponse 42 42 from iqRosterQuery import iqRosterQuery 43 from JabberSubject import FromJIDSubject 43 44 from SubscribeApproveResponse import SubscribeApproveResponse 44 45 from pprint import pprint … … 141 142 jc.stream.AddObserver('presence', _printPresence) 142 143 144 def OnShanePresence(stream, presence): print "HELLO SHANE!!!" 145 js = FromJIDSubject() 146 jc.stream.AddObserver('presence', js) 147 js.AddObserver('shane.holloway@www.runeblade.com', OnShanePresence) 148 143 149 pm = PresenceMap(jc) 144 150 router = MessageRouterByType(jc) … … 163 169 iqBrowseResponse(jc) 164 170 SubscribeApproveResponse(jc) 171 165 172 while 1: process(1) 166 173 except KeyboardInterrupt:
