Signals now use a priority queue instead of a deque
This commit is contained in:
parent
9b74966e2c
commit
eba941be7c
|
@ -15,16 +15,14 @@ class Map(dict):
|
|||
dict.__init__(self)
|
||||
|
||||
|
||||
def set(self,key,item,right=False):
|
||||
def set(self,key,item):
|
||||
key = key.upper()
|
||||
# Make a new deque if the key doesn't exist
|
||||
if self.has(key) == False:
|
||||
self[key] = deque()
|
||||
|
||||
if right == False:
|
||||
self[key].appendleft(item)
|
||||
self[key] = [item]
|
||||
else:
|
||||
self[key].append(item)
|
||||
self[key] = self[key] + [item]
|
||||
self[key].sort()
|
||||
|
||||
|
||||
def get(self,key,all=False):
|
||||
|
|
|
@ -13,10 +13,10 @@ signals = Map()
|
|||
status = dict()
|
||||
|
||||
|
||||
def register(signal,func):
|
||||
def register(signal,func,priority=10):
|
||||
if signals.has(signal) == False:
|
||||
status[signal] = False
|
||||
signals.set(signal,func)
|
||||
signals.set(signal,(priority,func))
|
||||
|
||||
|
||||
def remove(signal,func):
|
||||
|
@ -35,7 +35,7 @@ def emit(signal,args=None):
|
|||
i = 0
|
||||
status[signal] = True
|
||||
|
||||
for func in funcs:
|
||||
for priority,func in funcs:
|
||||
if status[signal] == True:
|
||||
if not args==None:
|
||||
func(args)
|
||||
|
|
|
@ -117,6 +117,7 @@ class Insert(Statement):
|
|||
if not i == 0:
|
||||
qs+=","
|
||||
qs+="?"
|
||||
#self.values[i] = str(self.values[i])
|
||||
self.statement+=qs + ")"
|
||||
Statement.execute(self, self.values)
|
||||
|
||||
|
|
|
@ -157,4 +157,12 @@ class Manager:
|
|||
|
||||
|
||||
global manager
|
||||
manager = Manager()
|
||||
manager = Manager()
|
||||
|
||||
|
||||
def call(name,args=None):
|
||||
global manager
|
||||
disable()
|
||||
result = manager.run(name,args)
|
||||
enable()
|
||||
return result
|
|
@ -2,3 +2,5 @@
|
|||
|
||||
rm -r ./*/*.pyc
|
||||
rm -r ./*/*/*.pyc
|
||||
#rm -r ./*/*.pyo
|
||||
#rm -r ./*/*/*.pyo
|
||||
|
|
|
@ -44,7 +44,7 @@ def init():
|
|||
|
||||
settings.set("clinex", 0)
|
||||
settings.set("cliney", 0)
|
||||
register("write", insert)
|
||||
register("write", insert,9)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ class Plugin(plugin.Plugin):
|
|||
def __init__(self):
|
||||
plugin.Plugin.__init__(self)
|
||||
self.help = "Use to execute sql commands"
|
||||
self.usage = "sql [table]"
|
||||
self.usage = "sql [insert, select, table]"
|
||||
|
||||
|
||||
def createTable(self,args):
|
||||
|
|
|
@ -14,7 +14,7 @@ class Plugin(plugin.Plugin):
|
|||
def __init__(self):
|
||||
plugin.Plugin.__init__(self)
|
||||
self.help = "Used to show the current state of settings"
|
||||
self.usage = "lsset [settings key]"
|
||||
self.usage = "lsset [key]"
|
||||
|
||||
|
||||
def run(self, args=None):
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# Basic plugin class
|
||||
|
||||
__author__="bjschuma"
|
||||
__date__ ="$Feb 7, 2010 7:19:45 PM$"
|
||||
|
||||
|
||||
from bt import plugin
|
||||
from bt.message import write
|
||||
from bt import signal
|
||||
|
||||
|
||||
class Plugin(plugin.Plugin):
|
||||
def __init__(self):
|
||||
plugin.Plugin.__init__(self)
|
||||
self.help = ""
|
||||
|
||||
|
||||
def run(self, args=None):
|
||||
if args==None or len(args)==0:
|
||||
write(signal.signals.keys())
|
||||
else:
|
||||
write(signal.signals.get(args[0],True))
|
||||
|
|
@ -28,8 +28,8 @@ class Plugin(plugin.Plugin):
|
|||
def open(self):
|
||||
#settings.set("guirunning",False)
|
||||
if settings.get("guirunning") == True:
|
||||
signal.register("run",self.loop)
|
||||
signal.register("quit",self.close)
|
||||
signal.register("run",self.loop,9)
|
||||
signal.register("quit",self.close,9)
|
||||
else:
|
||||
settings.set("guirunning",False)
|
||||
|
||||
|
|
Loading…
Reference in New Issue