comparison idavoll/memory_storage.py @ 139:8f6956b9a688

Follow API change in Twisted Xish, while still being compatible with Twisted Xish 0.1.0.
author Ralph Meijer <ralphm@ik.nu>
date Wed, 27 Apr 2005 19:45:41 +0000
parents ffc3c706b0fb
children 812300cdbc22
comparison
equal deleted inserted replaced
138:635e433810ef 139:8f6956b9a688
147 self._itemlist = [] 147 self._itemlist = []
148 148
149 def store_items(self, items, publisher): 149 def store_items(self, items, publisher):
150 for data in items: 150 for data in items:
151 id = data["id"] 151 id = data["id"]
152 item = (data.toXml(), publisher) 152 data = data.toXml()
153 if isinstance(data, str):
154 data = data.decode('utf-8')
155 item = (data, publisher)
153 if id in self._items: 156 if id in self._items:
154 self._itemlist.remove(self._items[id]) 157 self._itemlist.remove(self._items[id])
155 self._items[id] = item 158 self._items[id] = item
156 self._itemlist.append(item) 159 self._itemlist.append(item)
157 160
174 def get_items(self, max_items=None): 177 def get_items(self, max_items=None):
175 if max_items: 178 if max_items:
176 list = self._itemlist[-max_items:] 179 list = self._itemlist[-max_items:]
177 else: 180 else:
178 list = self._itemlist 181 list = self._itemlist
179 return defer.succeed([unicode(item[0], 'utf-8') for item in list]) 182 return defer.succeed([item[0] for item in list])
180 183
181 def get_items_by_id(self, item_ids): 184 def get_items_by_id(self, item_ids):
182 items = [] 185 items = []
183 for item_id in item_ids: 186 for item_id in item_ids:
184 try: 187 try:
185 item = self._items[item_id] 188 item = self._items[item_id]
186 except KeyError: 189 except KeyError:
187 pass 190 pass
188 else: 191 else:
189 items.append(unicode(item[0], 'utf-8')) 192 items.append(item[0])
190 return defer.succeed(items) 193 return defer.succeed(items)
191 194
192 def purge(self): 195 def purge(self):
193 self._items = {} 196 self._items = {}
194 self._itemlist = [] 197 self._itemlist = []