indexapi.py
70 lines
| 2.1 KiB
| text/x-python
|
PythonLexer
Pulkit Goyal
|
r37204 | # Infinite push | ||
# | ||||
# Copyright 2016 Facebook, Inc. | ||||
# | ||||
# This software may be used and distributed according to the terms of the | ||||
# GNU General Public License version 2 or any later version. | ||||
from __future__ import absolute_import | ||||
class indexapi(object): | ||||
"""Class that manages access to infinitepush index. | ||||
This class is a context manager and all write operations (like | ||||
deletebookmarks, addbookmark etc) should use `with` statement: | ||||
with index: | ||||
index.deletebookmarks(...) | ||||
... | ||||
""" | ||||
def __init__(self): | ||||
"""Initializes the metadata store connection.""" | ||||
def close(self): | ||||
"""Cleans up the metadata store connection.""" | ||||
def __enter__(self): | ||||
return self | ||||
def __exit__(self, exc_type, exc_val, exc_tb): | ||||
pass | ||||
def addbundle(self, bundleid, nodesctx): | ||||
"""Takes a bundleid and a list of node contexts for each node | ||||
in that bundle and records that.""" | ||||
raise NotImplementedError() | ||||
def addbookmark(self, bookmark, node): | ||||
"""Takes a bookmark name and hash, and records mapping in the metadata | ||||
store.""" | ||||
raise NotImplementedError() | ||||
def addmanybookmarks(self, bookmarks): | ||||
"""Takes a dict with mapping from bookmark to hash and records mapping | ||||
in the metadata store.""" | ||||
raise NotImplementedError() | ||||
def deletebookmarks(self, patterns): | ||||
"""Accepts list of bookmarks and deletes them. | ||||
""" | ||||
raise NotImplementedError() | ||||
def getbundle(self, node): | ||||
"""Returns the bundleid for the bundle that contains the given node.""" | ||||
raise NotImplementedError() | ||||
def getnode(self, bookmark): | ||||
"""Returns the node for the given bookmark. None if it doesn't exist.""" | ||||
raise NotImplementedError() | ||||
def getbookmarks(self, query): | ||||
"""Returns bookmarks that match the query""" | ||||
raise NotImplementedError() | ||||
def saveoptionaljsonmetadata(self, node, jsonmetadata): | ||||
"""Saves optional metadata for a given node""" | ||||
raise NotImplementedError() | ||||
class indexexception(Exception): | ||||
pass | ||||