Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3753)

Unified Diff: chrome/common/extensions/docs/server2/persistent_object_store_fake.py

Issue 1151283007: Docserver overhaul: Gitiles away from me. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove inform_users template to fix presubmit failure (it's now a redirect) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/persistent_object_store_fake.py
diff --git a/chrome/common/extensions/docs/server2/persistent_object_store_fake.py b/chrome/common/extensions/docs/server2/persistent_object_store_fake.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d244bad31d936ee970842760d47bb4924034fd8
--- /dev/null
+++ b/chrome/common/extensions/docs/server2/persistent_object_store_fake.py
@@ -0,0 +1,48 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import cPickle
+import logging
+
+from future import Future
+from object_store import ObjectStore
+
+
+class PersistentObjectStoreFake(ObjectStore):
+ '''Stores or retrieves data in memory. Not really persistent.
+ '''
+ # Static storage shared across all fake object stores.
+ DATA = {}
+
+ def __init__(self, namespace):
+ if namespace not in PersistentObjectStoreFake.DATA:
+ PersistentObjectStoreFake.DATA[namespace] = {}
+ self._data = PersistentObjectStoreFake.DATA[namespace]
+
+ def SetMulti(self, mapping):
+ self._data.update(mapping)
+ return Future(value=True)
+
+ def GetMulti(self, keys):
+ result = dict((key, self._data[key]) for key in keys if key in self._data)
+ return Future(value=result)
+
+ def DelMulti(self, keys):
+ for key in keys:
+ del self._data[key]
+
+ @classmethod
+ def LoadFromFile(cls, filename):
+ with open(filename, 'r') as f:
+ cls.DATA = cPickle.load(f)
+ for k, v in cls.DATA.iteritems():
+ cls.DATA[k] = cPickle.loads(v)
+ logging.info('Loaded %s keys from %s.' % (len(cls.DATA), filename))
+
+ @classmethod
+ def SaveToFile(cls, filename):
+ data = dict((k, cPickle.dumps(v)) for k, v, in cls.DATA.iteritems())
+ with open(filename, 'w') as f:
+ cPickle.dump(data, f)
+ logging.info('Saved %s keys to %s.' % (len(cls.DATA), filename))

Powered by Google App Engine
This is Rietveld 408576698