Go to
the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QSCRIPTENGINEAGENT_H
00025 #define QSCRIPTENGINEAGENT_H
00026
00027 #include <QtCore/qobjectdefs.h>
00028
00029 #include <QtCore/qvariant.h>
00030 #include <QtCore/qscopedpointer.h>
00031
00032 QT_BEGIN_HEADER
00033
00034 QT_BEGIN_NAMESPACE
00035
00036 QT_MODULE(Script)
00037
00038 class QScriptEngine;
00039 class QScriptValue;
00040
00041 class QScriptEngineAgentPrivate;
00042 class Q_SCRIPT_EXPORT QScriptEngineAgent
00043 {
00044 public:
00045 enum Extension {
00046 DebuggerInvocationRequest
00047 };
00048
00049 QScriptEngineAgent(QScriptEngine *engine);
00050 virtual ~QScriptEngineAgent();
00051
00052 virtual void scriptLoad(qint64 id, const QString &program,
00053 const QString &fileName, int baseLineNumber);
00054 virtual void scriptUnload(qint64 id);
00055
00056 virtual void contextPush();
00057 virtual void contextPop();
00058
00059 virtual void functionEntry(qint64 scriptId);
00060 virtual void functionExit(qint64 scriptId,
00061 const QScriptValue &returnValue);
00062
00063 virtual void positionChange(qint64 scriptId,
00064 int lineNumber, int columnNumber);
00065
00066 virtual void exceptionThrow(qint64 scriptId,
00067 const QScriptValue &exception,
00068 bool hasHandler);
00069 virtual void exceptionCatch(qint64 scriptId,
00070 const QScriptValue &exception);
00071
00072 virtual bool supportsExtension(Extension extension) const;
00073 virtual QVariant extension(Extension extension,
00074 const QVariant &argument = QVariant());
00075
00076 QScriptEngine *engine() const;
00077
00078 protected:
00079 QScriptEngineAgent(QScriptEngineAgentPrivate &dd, QScriptEngine *engine);
00080 QScopedPointer<QScriptEngineAgentPrivate> d_ptr;
00081
00082 private:
00083 Q_DECLARE_PRIVATE(QScriptEngineAgent)
00084 Q_DISABLE_COPY(QScriptEngineAgent)
00085 };
00086
00087 QT_END_NAMESPACE
00088
00089 QT_END_HEADER
00090
00091 #endif