import main
from twisted.internet.task import LoopingCall


def event(name, eventType):
    if "local" not in main.counters.keys():
        main.counters["local"] = {}
    if "global" not in main.counters.keys():
        main.counters["global"] = {}
    if name not in main.counters["local"].keys():
        main.counters["local"][name] = {}
    if eventType not in main.counters["local"][name].keys():
        main.counters["local"][name][eventType] = 0

    if eventType not in main.counters["global"]:
        main.counters["global"][eventType] = 0

    main.counters["local"][name][eventType] += 1
    main.counters["global"][eventType] += 1
    main.runningSample += 1


def getEvents(name=None):
    if name is None:
        if "global" in main.counters.keys():
            return main.counters["global"]
        else:
            return None
    else:
        if name in main.counters["local"].keys():
            return main.counters["local"][name]
        else:
            return None


def takeSample():
    main.lastMinuteSample = main.runningSample
    main.runningSample = 0


def setupCounterLoop():
    lc = LoopingCall(takeSample)
    lc.start(60)
