1 import logging
2 log = logging.getLogger("dataproviders.SimpleFactory")
3
4 import conduit
5 import conduit.dataproviders.DataProvider as DataProvider
6
8 """
9 Encapsulate the emit_added/emit_removed tracking logic and allow
10 it to be shared with multiple dataprovider factories
11 """
12
16
18 log.info("Item Added: %s" % key)
19 cat = self.get_category(key, **kwargs)
20 idxs = []
21 for klass in self.get_dataproviders(key, **kwargs):
22 args = self.get_args(key, **kwargs)
23 idx = self.emit_added(klass, args, cat)
24 idxs.append(idx)
25 self.items[key] = idxs
26
28 if key in self.items:
29 for idx in self.items[key]:
30 self.emit_removed(idx)
31 del(self.items[key])
32
34 """ Return a category to contain these dataproviders """
35 raise NotImplementedError
36
38 """ Return a list of dataproviders for this class of device """
39 raise NotImplementedError
40
42 raise NotImplementedError
43
45 raise NotImplementedError
46