1 | /**************************************************************************** |
2 | ** |
3 | ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). |
4 | ** Contact: http://www.qt-project.org/legal |
5 | ** |
6 | ** This file is part of the QtScript module of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:LGPL-ONLY$ |
9 | ** GNU Lesser General Public License Usage |
10 | ** This file may be used under the terms of the GNU Lesser |
11 | ** General Public License version 2.1 as published by the Free Software |
12 | ** Foundation and appearing in the file LICENSE.LGPL included in the |
13 | ** packaging of this file. Please review the following information to |
14 | ** ensure the GNU Lesser General Public License version 2.1 requirements |
15 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
16 | ** |
17 | ** If you have questions regarding the use of this file, please contact |
18 | ** us via http://www.qt-project.org/. |
19 | ** |
20 | ** $QT_END_LICENSE$ |
21 | ** |
22 | ****************************************************************************/ |
23 | |
24 | #ifndef QSCRIPTENGINEAGENT_H |
25 | #define QSCRIPTENGINEAGENT_H |
26 | |
27 | #include <QtCore/qobjectdefs.h> |
28 | |
29 | #include <QtCore/qvariant.h> |
30 | #include <QtCore/qscopedpointer.h> |
31 | |
32 | QT_BEGIN_HEADER |
33 | |
34 | QT_BEGIN_NAMESPACE |
35 | |
36 | QT_MODULE(Script) |
37 | |
38 | class QScriptEngine; |
39 | class QScriptValue; |
40 | |
41 | class QScriptEngineAgentPrivate; |
42 | class Q_SCRIPT_EXPORT QScriptEngineAgent |
43 | { |
44 | public: |
45 | enum Extension { |
46 | DebuggerInvocationRequest |
47 | }; |
48 | |
49 | QScriptEngineAgent(QScriptEngine *engine); |
50 | virtual ~QScriptEngineAgent(); |
51 | |
52 | virtual void scriptLoad(qint64 id, const QString &program, |
53 | const QString &fileName, int baseLineNumber); |
54 | virtual void scriptUnload(qint64 id); |
55 | |
56 | virtual void contextPush(); |
57 | virtual void contextPop(); |
58 | |
59 | virtual void functionEntry(qint64 scriptId); |
60 | virtual void functionExit(qint64 scriptId, |
61 | const QScriptValue &returnValue); |
62 | |
63 | virtual void positionChange(qint64 scriptId, |
64 | int lineNumber, int columnNumber); |
65 | |
66 | virtual void exceptionThrow(qint64 scriptId, |
67 | const QScriptValue &exception, |
68 | bool hasHandler); |
69 | virtual void exceptionCatch(qint64 scriptId, |
70 | const QScriptValue &exception); |
71 | |
72 | virtual bool supportsExtension(Extension extension) const; |
73 | virtual QVariant extension(Extension extension, |
74 | const QVariant &argument = QVariant()); |
75 | |
76 | QScriptEngine *engine() const; |
77 | |
78 | protected: |
79 | QScriptEngineAgent(QScriptEngineAgentPrivate &dd, QScriptEngine *engine); |
80 | QScopedPointer<QScriptEngineAgentPrivate> d_ptr; |
81 | |
82 | private: |
83 | Q_DECLARE_PRIVATE(QScriptEngineAgent) |
84 | Q_DISABLE_COPY(QScriptEngineAgent) |
85 | }; |
86 | |
87 | QT_END_NAMESPACE |
88 | |
89 | QT_END_HEADER |
90 | |
91 | #endif |
92 | |