Mercurial > libervia-backend
comparison sat/bridge/pb.py @ 2840:0f277708e2ae
bridge (pb): added bridgeDeactivateSignals and bridgeReactivateSignals methods:
those methods stop and restart signals propagation, they are used on mobile OS when the frontend is paused.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 09 Mar 2019 16:23:00 +0100 |
parents | 003b8b4b56a7 |
children | eb9fa72eb62b |
comparison
equal
deleted
inserted
replaced
2839:76f714b12d21 | 2840:0f277708e2ae |
---|---|
67 if to_remove: | 67 if to_remove: |
68 for handler in to_remove: | 68 for handler in to_remove: |
69 log.debug(u"Removing signal handler for dead frontend") | 69 log.debug(u"Removing signal handler for dead frontend") |
70 self.signals_handlers.remove(handler) | 70 self.signals_handlers.remove(handler) |
71 | 71 |
72 def _bridgeDeactivateSignals(self): | |
73 if hasattr(self, "signals_paused"): | |
74 log.warning(u"bridge signals already deactivated") | |
75 if self.signals_handler: | |
76 self.signals_paused.extend(self.signals_handler) | |
77 else: | |
78 self.signals_paused = self.signals_handlers | |
79 self.signals_handlers = [] | |
80 log.debug(u"bridge signals have been deactivated") | |
81 | |
82 def _bridgeReactivateSignals(self): | |
83 try: | |
84 self.signals_handlers = self.signals_paused | |
85 except AttributeError: | |
86 log.debug(u"signals were already activated") | |
87 else: | |
88 del self.signals_paused | |
89 log.debug(u"bridge signals have been reactivated") | |
72 | 90 |
73 ##METHODS_PART## | 91 ##METHODS_PART## |
74 | 92 |
75 | 93 |
76 class Bridge(object): | 94 class Bridge(object): |
101 log.debug("Adding signal {name} to PB bridge".format(name=name)) | 119 log.debug("Adding signal {name} to PB bridge".format(name=name)) |
102 setattr( | 120 setattr( |
103 self, name, lambda *args, **kwargs: self.sendSignal(name, *args, **kwargs) | 121 self, name, lambda *args, **kwargs: self.sendSignal(name, *args, **kwargs) |
104 ) | 122 ) |
105 | 123 |
124 def bridgeDeactivateSignals(self): | |
125 """Stop sending signals to bridge | |
126 | |
127 Mainly used for mobile frontends, when the frontend is paused | |
128 """ | |
129 self.root._bridgeDeactivateSignals() | |
130 | |
131 def bridgeReactivateSignals(self): | |
132 """Send again signals to bridge | |
133 | |
134 Should only be used after bridgeDeactivateSignals has been called | |
135 """ | |
136 self.root._bridgeReactivateSignals() | |
106 | 137 |
107 def actionNew(self, action_data, id, security_limit, profile): | 138 def actionNew(self, action_data, id, security_limit, profile): |
108 self.sendSignal("actionNew", action_data, id, security_limit, profile) | 139 self.sendSignal("actionNew", action_data, id, security_limit, profile) |
109 | 140 |
110 def connected(self, profile, jid_s): | 141 def connected(self, profile, jid_s): |