def METHOD_NAME(self, getDo, parentId, zoneId=None, classType=None):
    """
    Args:
        parentId: any distributed object id.
        zoneId: a uint32, defaults to None (all zones).  Try zone 2 if
            you're not sure which zone to use (0 is a bad/null zone and
            1 has had reserved use in the past as a no messages zone, while
            2 has traditionally been a global, uber, misc stuff zone).
        dclassType: a distributed class type filter, defaults to None
            (no filter).
    If dclassName is None then all objects in the zone are returned;
    otherwise the list is filtered to only include objects of that type.
    """
    parent=self._table.get(parentId)
    if parent is None:
        return []
    if zoneId is None:
        r = []
        for zone in parent.values():
            for obj in zone:
                r.append(obj)
    else:
        r = parent.get(zoneId, [])
    if classType is not None:
        a = []
        for doId in r:
            obj = getDo(doId)
            if isinstance(obj, classType):
                a.append(doId)
        r = a
    return r