ocarina/src/core/bt/signal.py

49 lines
790 B
Python

#! /usr/bin/python
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__="bjschuma"
__date__ ="$Jan 20, 2010 12:13:21 AM$"
from map import Map
global signals, status
signals = Map()
status = dict()
def register(signal,func,priority=100):
if signals.has(signal) == False:
status[signal] = False
signals.set(signal,(priority,func))
def remove(signal,func):
global signals
signals.remove(signal,func)
def stop(signal):
status[signal] = False
def emit(signal,args=None):
if signals.has(signal) == False:
return
funcs = signals.get(signal,True)
i = 0
status[signal] = True
for priority,func in funcs:
if status[signal] == True:
if not args==None:
func(args)
else:
func()
else:
break
stop(signal)