# File: EventGroup.py
# Author: Carl Allendorph
# Date: 05NOV2014
#
# Description:
#   This file contains the implementation of a Event Group Inspector


import gdb
from .List import ListInspector
from .Task import TaskInspector


class EventGroupInspector:
    EvtGrpType = gdb.lookup_type("EventGroup_t")

    def __init__(self, handle):
        self._evtgrp = gdb.Value(handle).cast(EventGroupInspector.EvtGrpType)

    def GetTasksWaiting(self):
        taskListObj = self._evtgrp["xTasksWaitingForBits"]
        taskList = ListInspector(taskListObj)
        return taskList.GetElements(TaskInspector.TCBType)

    def GetEventBits(self):
        """Get the Event Flag Bits
        @return L{gdb.Value} of EventBits_t
        """
        return self._evtgrp["uxEventBits"]