git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove debug
[enigma2.git]
/
lib
/
python
/
Components
/
Element.py
diff --git
a/lib/python/Components/Element.py
b/lib/python/Components/Element.py
index 019155c6490482abfbb8cb7933a809edb87afc75..baab4cfb46d30284be8d3836d61e346e49a8b5bf 100644
(file)
--- a/
lib/python/Components/Element.py
+++ b/
lib/python/Components/Element.py
@@
-4,6
+4,17
@@
from Tools.CList import CList
# Render Converter Converter Source
# a bidirectional connection
# Render Converter Converter Source
# a bidirectional connection
+
+def cached(f):
+ name = f.__name__
+ def wrapper(self):
+ if self.cache is None:
+ return f(self)
+ if name not in self.cache:
+ self.cache[name] = (True, f(self))
+ return self.cache[name][1]
+ return wrapper
+
class Element(object):
CHANGED_DEFAULT = 0 # initial "pull" state
CHANGED_ALL = 1 # really everything changed
class Element(object):
CHANGED_DEFAULT = 0 # initial "pull" state
CHANGED_ALL = 1 # really everything changed
@@
-16,7
+27,7
@@
class Element(object):
self.master = None
self.source = None
self.__suspended = True
self.master = None
self.source = None
self.__suspended = True
- self.c
learCache()
+ self.c
ache = None
def connectDownstream(self, downstream):
self.downstream_elements.append(downstream)
def connectDownstream(self, downstream):
self.downstream_elements.append(downstream)
@@
-52,17
+63,14
@@
class Element(object):
# default action: push downstream
def changed(self, *args, **kwargs):
# default action: push downstream
def changed(self, *args, **kwargs):
- self.c
learCache()
+ self.c
ache = { }
self.downstream_elements.changed(*args, **kwargs)
self.downstream_elements.changed(*args, **kwargs)
- self.c
learCache()
+ self.c
ache = None
def reconnectUpstream(self, new_upstream):
assert self.source is not None
self.source = new_upstream
def reconnectUpstream(self, new_upstream):
assert self.source is not None
self.source = new_upstream
- def clearCache(self):
- self.cache = None
-
def setSuspend(self, suspended):
changed = self.__suspended != suspended
if not self.__suspended and suspended:
def setSuspend(self, suspended):
changed = self.__suspended != suspended
if not self.__suspended and suspended: