public function checkTrackTokens($userId, \Gems_Tracker_Token $fromToken = null, \Gems_Tracker_Token $skipToken = null)
    {
        // Execute any defined functions
        $count = $this->handleTrackCalculation($userId);

        $engine = $this->getTrackEngine();

        $this->db->beginTransaction();
        // Check for validFrom and validUntil dates that have changed.
        if ($fromToken) {
            $count += $engine->checkTokensFrom($this, $fromToken, $userId, $skipToken);
        } elseif ($this->_checkStart) {
            $count += $engine->checkTokensFrom($this, $this->_checkStart, $userId);
        } else {
            $count += $engine->checkTokensFromStart($this, $userId);
        }
        $this->db->commit();

        // Update token completion count and possible enddate
        $this->_checkTrackCount($userId);

        return $count;
    }