Iterate over Managed Objects fulfilling SNMP query.

        Returns
        -------
        :py:class:`list` - List of Managed Objects Instances to respond with or
            `None` to indicate that not all objects have been gathered
            so far.

def _getManagedObjectsInstances(self, varBinds, **context):
        """Iterate over Managed Objects fulfilling SNMP query.

        Returns
        -------
        :py:class:`list` - List of Managed Objects Instances to respond with or
            `None` to indicate that not all objects have been gathered
            so far.
        """
        rspVarBinds = context['rspVarBinds']
        varBindsMap = context['varBindsMap']

        rtrVarBinds = []

        for idx, varBind in enumerate(varBinds):
            name, val = varBind
            if (exval.noSuchObject.isSameTypeWith(val) or
                    exval.noSuchInstance.isSameTypeWith(val)):
                varBindsMap[len(rtrVarBinds)] = varBindsMap.pop(idx, idx)
                rtrVarBinds.append(varBind)

            else:
                rspVarBinds[varBindsMap.pop(idx, idx)] = varBind

        if rtrVarBinds:
            snmpEngine = context['snmpEngine']

            # Need to unwind stack, can't recurse any more
            def callLater(*args):
                snmpEngine.transportDispatcher.unregisterTimerCbFun(callLater)
                mgmtFun = context['mgmtFun']
                mgmtFun(*varBinds, **context)

            snmpEngine.transportDispatcher.registerTimerCbFun(callLater, 0.01)

        else:
            return rspVarBinds