#queueHandler.py
#A part of NonVisual Desktop Access (NVDA)
#Copyright (C) 2006-2018 NV Access Limited
#This file is covered by the GNU General Public License.
#See the file COPYING for more details.

import types
from queue import Queue
import globalVars
from logHandler import log
import watchdog
import core

eventQueue = Queue()
eventQueue.__name__ = "eventQueue"
generators = {}
lastGeneratorObjID = 0


def registerGeneratorObject(generatorObj):
    global generators, lastGeneratorObjID
    if not isinstance(generatorObj, types.GeneratorType):
        raise TypeError('Arg 2 must be a generator object, not %s' %
                        type(generatorObj))
    lastGeneratorObjID += 1
    log.debug("Adding generator %d" % lastGeneratorObjID)
    generators[lastGeneratorObjID] = generatorObj
    core.requestPump()
    return lastGeneratorObjID