Check the consistency of all columns.

        Parameters
        ----------
        varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing
            new :py:class:`RowStatus`  Managed Object Instance value being set
            on table row

        Other Parameters
        ----------------
        \*\*context:

            Query parameters:

            * `cbFun` (callable) - user-supplied callable that is invoked to
              pass the new value of the Managed Object Instance or an error.

        Notes
        -----
        The callback functions (e.g. `cbFun`) have the same signature as this
        method where `varBind` contains the new Managed Object Instance value.

        In case of an error, the `error` key in the `context` dict will contain
        an exception object.

        Assume that row consistency check has been triggered by RowStatus
        columnar object transition into `active` state.

def _checkColumns(self, varBind, **context):
        """Check the consistency of all columns.

        Parameters
        ----------
        varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing
            new :py:class:`RowStatus`  Managed Object Instance value being set
            on table row

        Other Parameters
        ----------------
        \*\*context:

            Query parameters:

            * `cbFun` (callable) - user-supplied callable that is invoked to
              pass the new value of the Managed Object Instance or an error.

        Notes
        -----
        The callback functions (e.g. `cbFun`) have the same signature as this
        method where `varBind` contains the new Managed Object Instance value.

        In case of an error, the `error` key in the `context` dict will contain
        an exception object.

        Assume that row consistency check has been triggered by RowStatus
        columnar object transition into `active` state.
        """
        name, val = varBind

        (debug.logger & debug.FLAG_INS and
         debug.logger('%s: _checkColumns(%s, %r)' % (self, name, val)))

        cbFun = context['cbFun']

        # RowStatus != active
        if val != 1:
            cbFun(varBind, **context)
            return

        count = [len(self._vars)]

        def _cbFun(varBind, **context):
            count[0] -= 1

            name, val = varBind

            if count[0] >= 0:
                exc = context.get('error')
                if exc or not val.hasValue():
                    count[0] = -1  # ignore the rest of callbacks
                    exc = error.InconsistentValueError(msg='Inconsistent column %s: %s' % (name, exc))
                    cbFun(varBind, **dict(context, error=exc))
                    return

            if not count[0]:
                cbFun(varBind, **context)
                return

        colLen = len(self.name) + 1

        for colName, colObj in self._vars.items():
            instName = colName + name[colLen:]

            colObj.readGet((instName, None), **dict(context, cbFun=_cbFun))

            debug.logger & debug.FLAG_INS and debug.logger(
                '%s: _checkColumns: checking instance %s' % (self, instName))