示例#1
0
 def updatePersistentCache(self, ext, isFullSync):
     if ext.pop('__cache', None) is not None:
         if not self.__persistentCache.data:
             desc, cacheData = self.__persistentCache.data = self.__persistentCache.get(
             )
             if accountDataPersistentHash(cacheData) != desc:
                 LOG_ERROR('Local account data cache is corrupted: resync')
                 self._resynchronize()
                 return False
             self.__persistentCache.data = cacheData
             self.__persistentCache.isDirty = False
         else:
             cacheData = self.__persistentCache.data
         if cacheData is None:
             LOG_ERROR(
                 "Incorrect cache state while syncing data: server said to use cache but I don't have any"
             )
             self._resynchronize()
             return False
         accountDataMergePersistent(ext, cacheData)
         if synchronizeDicts(accountDataGetDiffForPersistent(ext),
                             self.__persistentCache.data)[1]:
             self.__persistentCache.isDirty = True
     else:
         if self.__persistentCache.data is None:
             self.__persistentCache.data = {}
         synchronizeDicts(accountDataGetDiffForPersistent(ext),
                          self.__persistentCache.data)
         self.__persistentCache.isDirty = True
     return True
示例#2
0
 def updatePersistentCache(self, ext, isFullSync):
     if ext.pop('__cache', None) is not None:
         if not self.__persistentCache.data:
             desc, cacheData = self.__persistentCache.data = self.__persistentCache.get()
             if accountDataPersistentHash(cacheData) != desc:
                 LOG_ERROR('Local account data cache is corrupted: resync')
                 self._resynchronize()
                 return False
             self.__persistentCache.data = cacheData
             self.__persistentCache.isDirty = False
         else:
             cacheData = self.__persistentCache.data
         if cacheData is None:
             LOG_ERROR("Incorrect cache state while syncing data: server said to use cache but I don't have any")
             self._resynchronize()
             return False
         accountDataMergePersistent(ext, cacheData)
         if synchronizeDicts(accountDataGetDiffForPersistent(ext), self.__persistentCache.data)[1]:
             self.__persistentCache.isDirty = True
     else:
         if self.__persistentCache.data is None:
             self.__persistentCache.data = {}
         synchronizeDicts(accountDataGetDiffForPersistent(ext), self.__persistentCache.data)
         self.__persistentCache.isDirty = True
     return True
示例#3
0
 def __savePersistentCache(self):
     if self.__persistentCache.isDirty and self.__persistentCache.data:
         self.__persistentCache.data = accountDataExtractPersistent(
             self.__persistentCache.data)
         self.__persistentCache.save(
             accountDataPersistentHash(self.__persistentCache.data),
             self.__persistentCache.data)
         self.__persistentCache.isDirty = False
示例#4
0
 def __savePersistentCache(self):
     if self.__persistentCache.isDirty and self.__persistentCache.data:
         self.__persistentCache.data = accountDataExtractPersistent(self.__persistentCache.data)
         self.__persistentCache.save(accountDataPersistentHash(self.__persistentCache.data), self.__persistentCache.data)
         self.__persistentCache.isDirty = False