318956f6eef167a9771e853d88b59543571ec5ea
[watersofshiloah] / src / index.py
1 import logging
2
3 from util import go_utils
4 import backend
5
6
7 _moduleLogger = logging.getLogger(__name__)
8
9
10 class AudioIndex(object):
11
12         def __init__(self):
13                 self._backend = backend.Backend()
14                 self._indexing = go_utils.AsyncPool()
15
16         def start(self):
17                 self._indexing.start()
18
19         def stop(self):
20                 self._indexing.stop()
21
22         def download(self, func, on_success, on_error, *args, **kwds):
23                 self._indexing.clear_tasks()
24                 self._indexing.add_task(
25                         getattr(self._backend, func),
26                         args,
27                         kwds,
28                         on_success,
29                         on_error,
30                 )