blob: 9e2ce227307e7f9e3abd175379cf70ca5d5be9f8 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtSCriptTools module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 or any later version approved by the KDE Free
** Qt Foundation. The licenses are as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "qscriptdebuggercommandschedulerfrontend_p.h"
#include "qscriptdebuggercommandschedulerinterface_p.h"
#include "qscriptdebuggercommand_p.h"
QT_BEGIN_NAMESPACE
QScriptDebuggerCommandSchedulerFrontend::QScriptDebuggerCommandSchedulerFrontend(
QScriptDebuggerCommandSchedulerInterface *scheduler,
QScriptDebuggerResponseHandlerInterface *responseHandler)
: m_scheduler(scheduler), m_responseHandler(responseHandler)
{
}
QScriptDebuggerCommandSchedulerFrontend::~QScriptDebuggerCommandSchedulerFrontend()
{
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleCommand(const QScriptDebuggerCommand &command)
{
return m_scheduler->scheduleCommand(command, m_responseHandler);
}
/*!
Instructs the front-end to break at the next script statement, and
returns a unique identifier associated with this command.
When the next script statement is encountered, the client will be
notified, and the front-end will be ready to accept commands.
\sa scheduleContinue()
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleInterrupt()
{
return scheduleCommand(QScriptDebuggerCommand::interruptCommand());
}
/*!
Instructs the front-end to continue evaluation, and returns a unique
identifier associated with this command.
\sa scheduleBreak()
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleContinue()
{
return scheduleCommand(QScriptDebuggerCommand::continueCommand());
}
/*!
Instructs the front-end to step into the next script statement, and
returns a unique identifier associated with this command.
Evaluation will automatically be continued, and the client()'s event()
function will be called when the statement has been stepped into.
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleStepInto(int count)
{
return scheduleCommand(QScriptDebuggerCommand::stepIntoCommand(count));
}
/*!
Instructs the front-end to step over the next script statement, and
returns a unique identifier associated with this command.
Evaluation will automatically be continued, and the client()'s event()
function will be called when the statement has been stepped over.
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleStepOver(int count)
{
return scheduleCommand(QScriptDebuggerCommand::stepOverCommand(count));
}
/*!
Instructs the front-end to step out of the current script function, and
returns a unique identifier associated with this command.
Evaluation will automatically be continued, and the client()'s
event() function will be called when the script function has been
stepped out of.
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleStepOut()
{
return scheduleCommand(QScriptDebuggerCommand::stepOutCommand());
}
/*!
Instructs the front-end to continue evaluation until the location
specified by the given \a fileName and \a lineNumber is reached.
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleRunToLocation(const QString &fileName, int lineNumber)
{
return scheduleCommand(QScriptDebuggerCommand::runToLocationCommand(fileName, lineNumber));
}
/*!
Instructs the front-end to continue evaluation until the location
specified by the given \a scriptId and \a lineNumber is reached.
*/
int QScriptDebuggerCommandSchedulerFrontend::scheduleRunToLocation(qint64 scriptId, int lineNumber)
{
return scheduleCommand(QScriptDebuggerCommand::runToLocationCommand(scriptId, lineNumber));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleForceReturn(int contextIndex, const QScriptDebuggerValue &value)
{
return scheduleCommand(QScriptDebuggerCommand::forceReturnCommand(contextIndex, value));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleSetBreakpoint(const QString &fileName, int lineNumber)
{
return scheduleCommand(QScriptDebuggerCommand::setBreakpointCommand(fileName, lineNumber));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleSetBreakpoint(const QScriptBreakpointData &data)
{
return scheduleCommand(QScriptDebuggerCommand::setBreakpointCommand(data));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleDeleteBreakpoint(int id)
{
return scheduleCommand(QScriptDebuggerCommand::deleteBreakpointCommand(id));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleDeleteAllBreakpoints()
{
return scheduleCommand(QScriptDebuggerCommand::deleteAllBreakpointsCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetBreakpoints()
{
return scheduleCommand(QScriptDebuggerCommand::getBreakpointsCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetBreakpointData(int id)
{
return scheduleCommand(QScriptDebuggerCommand::getBreakpointDataCommand(id));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleSetBreakpointData(int id, const QScriptBreakpointData &data)
{
return scheduleCommand(QScriptDebuggerCommand::setBreakpointDataCommand(id, data));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetScripts()
{
return scheduleCommand(QScriptDebuggerCommand::getScriptsCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetScriptData(qint64 id)
{
return scheduleCommand(QScriptDebuggerCommand::getScriptDataCommand(id));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleScriptsCheckpoint()
{
return scheduleCommand(QScriptDebuggerCommand::scriptsCheckpointCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetScriptsDelta()
{
return scheduleCommand(QScriptDebuggerCommand::getScriptsDeltaCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleResolveScript(const QString &fileName)
{
return scheduleCommand(QScriptDebuggerCommand::resolveScriptCommand(fileName));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetBacktrace()
{
return scheduleCommand(QScriptDebuggerCommand::getBacktraceCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetContextCount()
{
return scheduleCommand(QScriptDebuggerCommand::getContextCountCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetContextState(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getContextStateCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetContextInfo(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getContextInfoCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetContextId(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getContextIdCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetThisObject(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getThisObjectCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetActivationObject(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getActivationObjectCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetScopeChain(int contextIndex)
{
return scheduleCommand(QScriptDebuggerCommand::getScopeChainCommand(contextIndex));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleContextsCheckpoint()
{
return scheduleCommand(QScriptDebuggerCommand::contextsCheckpoint());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetPropertyExpressionValue(
int contextIndex, int lineNumber, const QStringList &path)
{
return scheduleCommand(QScriptDebuggerCommand::getPropertyExpressionValue(contextIndex, lineNumber, path));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetCompletions(int contextIndex, const QStringList &path)
{
return scheduleCommand(QScriptDebuggerCommand::getCompletions(contextIndex, path));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleEvaluate(int contextIndex,
const QString &program,
const QString &fileName,
int lineNumber)
{
return scheduleCommand(QScriptDebuggerCommand::evaluateCommand(contextIndex, program, fileName, lineNumber));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleNewScriptValueIterator(const QScriptDebuggerValue &object)
{
return scheduleCommand(QScriptDebuggerCommand::newScriptValueIteratorCommand(object));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleGetPropertiesByIterator(int id, int count)
{
return scheduleCommand(QScriptDebuggerCommand::getPropertiesByIteratorCommand(id, count));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleDeleteScriptValueIterator(int id)
{
return scheduleCommand(QScriptDebuggerCommand::deleteScriptValueIteratorCommand(id));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleScriptValueToString(const QScriptDebuggerValue &value)
{
return scheduleCommand(QScriptDebuggerCommand::scriptValueToStringCommand(value));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleSetScriptValueProperty(const QScriptDebuggerValue &object,
const QString &name,
const QScriptDebuggerValue &value)
{
return scheduleCommand(QScriptDebuggerCommand::setScriptValuePropertyCommand(object, name, value));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleClearExceptions()
{
return scheduleCommand(QScriptDebuggerCommand::clearExceptionsCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleNewScriptObjectSnapshot()
{
return scheduleCommand(QScriptDebuggerCommand::newScriptObjectSnapshotCommand());
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleScriptObjectSnapshotCapture(int id, const QScriptDebuggerValue &object)
{
return scheduleCommand(QScriptDebuggerCommand::scriptObjectSnapshotCaptureCommand(id, object));
}
int QScriptDebuggerCommandSchedulerFrontend::scheduleDeleteScriptObjectSnapshot(int id)
{
return scheduleCommand(QScriptDebuggerCommand::deleteScriptObjectSnapshotCommand(id));
}
QT_END_NAMESPACE