class Scheduler(Thread):

    ## Init ##
    def __init__(self, daemon=1):

    ## Event Methods ##
    def wait(self, seconds=None):

    ## Attributes ##
    def runningTasks(self):
    def running(self, name, default=None):
    def hasRunning(self, name):
    def setRunning(self, handle):
    def delRunning(self, name):
    def scheduledTasks(self):
    def scheduled(self, name, default=None):
    def hasScheduled(self, name):
    def setScheduled(self, handle):
    def delScheduled(self, name):
    def onDemandTasks(self):
    def onDemand(self, name, default=None):
    def hasOnDemand(self, name):
    def setOnDemand(self, handle):
    def delOnDemand(self, name):
    def nextTime(self):
    def setNextTime(self, time):
    def isRunning(self):

    ## Adding Tasks ##
    def addTimedAction(self, time, task, name):
    def addActionOnDemand(self, task, name):
    def addDailyAction(self, hour, minute, task, name):
    def addPeriodicAction(self, start, period, task, name):

    ## Task methods ##
    def unregisterTask(self, name):
    def runTaskNow(self, name):
    def demandTask(self, name):
    def stopTask(self, name):
    def stopAllTasks(self):
    def disableTask(self, name):
    def enableTask(self, name):
    def runTask(self, handle):
    def scheduleTask(self, handle):

    ## Misc Methods ##
    def notifyCompletion(self, handle):
    def notify(self):
    def stop(self):

    ## Main Method ##
    def run(self):