Showing the changes to libraries/script-engine/src/qtscript/ScriptEngineQtScript.h (1 of 5 files). Show all
Unified · Split
| @@ -25,7 +25,6 @@ · 24 unmodified lines | ||
| 25 | 25 | #include <QtCore/QString> |
| 26 | 26 | |
| 27 | 27 | #include <QtScript/QScriptEngine> |
| 28 | −#include <QtScriptTools/QScriptEngineDebugger> | |
| 29 | 28 | |
| 30 | 29 | #include "../ScriptEngine.h" |
| 31 | 30 | #include "../ScriptManager.h" |
| @@ -97,19 +96,14 @@ public: // ScriptEngine implementation · 65 unmodified lines | ||
| 97 | 96 | virtual ScriptValue uncaughtException() const override; |
| 98 | 97 | virtual QStringList uncaughtExceptionBacktrace() const override; |
| 99 | 98 | virtual int uncaughtExceptionLineNumber() const override; |
| 99 | + virtual void updateMemoryCost(const qint64& deltaSize) override; | |
| 100 | + virtual void requestCollectGarbage() override { collectGarbage(); } | |
| 100 | 101 | |
| 101 | 102 | // helper to detect and log warnings when other code invokes QScriptEngine/BaseScriptEngine in thread-unsafe ways |
| 102 | 103 | inline bool IS_THREADSAFE_INVOCATION(const QString& method) { return ScriptEngine::IS_THREADSAFE_INVOCATION(method); } |
| 103 | 104 | |
| 104 | 105 | protected: // brought over from BaseScriptEngine |
| 105 | − /**jsdoc | |
| 106 | − * @function Script.makeError | |
| 107 | − * @param {object} [other] - Other. | |
| 108 | − * @param {string} [type="Error"] - Error. | |
| 109 | − * @returns {object} Object. | |
| 110 | − * @deprecated This function is deprecated and will be removed. | |
| 111 | − */ | |
| 112 | − Q_INVOKABLE QScriptValue makeError(const QScriptValue& other = QScriptValue(), const QString& type = "Error"); | |
| 106 | + QScriptValue makeError(const QScriptValue& other = QScriptValue(), const QString& type = "Error"); | |
| 113 | 107 | |
| 114 | 108 | // if the currentContext() is valid then throw the passed exception; otherwise, immediately emit it. |
| 115 | 109 | // note: this is used in cases where C++ code might call into JS API methods directly |
| @@ -126,23 +120,9 @@ public: · 10 unmodified lines | ||
| 126 | 120 | // NOTE - these are NOT intended to be public interfaces available to scripts, the are only Q_INVOKABLE so we can |
| 127 | 121 | // properly ensure they are only called on the correct thread |
| 128 | 122 | |
| 129 | − /**jsdoc | |
| 130 | − * @function Script.registerGlobalObject | |
| 131 | − * @param {string} name - Name. | |
| 132 | − * @param {object} object - Object. | |
| 133 | − * @deprecated This function is deprecated and will be removed. | |
| 134 | − */ | |
| 135 | 123 | /// registers a global object by name |
| 136 | 124 | Q_INVOKABLE virtual void registerGlobalObject(const QString& name, QObject* object) override; |
| 137 | 125 | |
| 138 | − /**jsdoc | |
| 139 | − * @function Script.registerGetterSetter | |
| 140 | − * @param {string} name - Name. | |
| 141 | − * @param {function} getter - Getter. | |
| 142 | − * @param {function} setter - Setter. | |
| 143 | − * @param {string} [parent=""] - Parent. | |
| 144 | − * @deprecated This function is deprecated and will be removed. | |
| 145 | − */ | |
| 146 | 126 | /// registers a global getter/setter |
| 147 | 127 | Q_INVOKABLE void registerGetterSetter(const QString& name, QScriptEngine::FunctionSignature getter, |
| 148 | 128 | QScriptEngine::FunctionSignature setter, const QString& parent = QString("")); |
| @@ -152,13 +132,6 @@ public: · 3 unmodified lines | ||
| 152 | 132 | ScriptEngine::FunctionSignature setter, |
| 153 | 133 | const QString& parent = QString("")) override; |
| 154 | 134 | |
| 155 | − /**jsdoc | |
| 156 | − * @function Script.registerFunction | |
| 157 | − * @param {string} name - Name. | |
| 158 | − * @param {function} function - Function. | |
| 159 | − * @param {number} [numArguments=-1] - Number of arguments. | |
| 160 | − * @deprecated This function is deprecated and will be removed. | |
| 161 | − */ | |
| 162 | 135 | /// register a global function |
| 163 | 136 | Q_INVOKABLE void registerFunction(const QString& name, QScriptEngine::FunctionSignature fun, int numArguments = -1); |
| 164 | 137 | |
| @@ -167,14 +140,6 @@ public: · 2 unmodified lines | ||
| 167 | 140 | ScriptEngine::FunctionSignature fun, |
| 168 | 141 | int numArguments = -1) override; |
| 169 | 142 | |
| 170 | − /**jsdoc | |
| 171 | − * @function Script.registerFunction | |
| 172 | − * @param {string} parent - Parent. | |
| 173 | − * @param {string} name - Name. | |
| 174 | − * @param {function} function - Function. | |
| 175 | − * @param {number} [numArguments=-1] - Number of arguments. | |
| 176 | − * @deprecated This function is deprecated and will be removed. | |
| 177 | − */ | |
| 178 | 143 | /// register a function as a method on a previously registered global object |
| 179 | 144 | Q_INVOKABLE void registerFunction(const QString& parent, const QString& name, QScriptEngine::FunctionSignature fun, |
| 180 | 145 | int numArguments = -1); |
| @@ -185,34 +150,14 @@ public: · 4 unmodified lines | ||
| 185 | 150 | ScriptEngine::FunctionSignature fun, |
| 186 | 151 | int numArguments = -1) override; |
| 187 | 152 | |
| 188 | − /**jsdoc | |
| 189 | − * @function Script.registerEnum | |
| 190 | − * @param {string} name - Name. | |
| 191 | − * @param {object} enum - Enum. | |
| 192 | − * @deprecated This function is deprecated and will be removed. | |
| 193 | − */ | |
| 194 | 153 | // WARNING: This function must be called after a registerGlobalObject that creates the namespace this enum is located in, or |
| 195 | 154 | // the globalObject won't function. E.g., if you have a Foo object and a Foo.FooType enum, Foo must be registered first. |
| 196 | 155 | /// registers a global enum |
| 197 | 156 | Q_INVOKABLE virtual void registerEnum(const QString& enumName, QMetaEnum newEnum) override; |
| 198 | 157 | |
| 199 | − /**jsdoc | |
| 200 | − * @function Script.registerValue | |
| 201 | − * @param {string} name - Name. | |
| 202 | − * @param {object} value - Value. | |
| 203 | − * @deprecated This function is deprecated and will be removed. | |
| 204 | − */ | |
| 205 | 158 | /// registers a global object by name |
| 206 | 159 | Q_INVOKABLE void registerValue(const QString& valueName, QScriptValue value); |
| 207 | 160 | |
| 208 | − /**jsdoc | |
| 209 | − * @function Script.evaluate | |
| 210 | − * @param {string} program - Program. | |
| 211 | − * @param {string} filename - File name. | |
| 212 | − * @param {number} [lineNumber=-1] - Line number. | |
| 213 | − * @returns {object} Object. | |
| 214 | − * @deprecated This function is deprecated and will be removed. | |
| 215 | − */ | |
| 216 | 161 | /// evaluate some code in the context of the ScriptEngineQtScript and return the result |
| 217 | 162 | Q_INVOKABLE virtual ScriptValue evaluate(const QString& program, |
| 218 | 163 | const QString& fileName) override; // this is also used by the script tool widget |
| @@ -220,177 +165,10 @@ public: · 1 unmodified line | ||
| 220 | 165 | |
| 221 | 166 | Q_INVOKABLE virtual ScriptValue evaluate(const ScriptProgramPointer& program) override; |
| 222 | 167 | |
| 223 | − /**jsdoc | |
| 224 | − * @function Script.evaluateInClosure | |
| 225 | − * @param {object} locals - Locals. | |
| 226 | − * @param {object} program - Program. | |
| 227 | − * @returns {object} Object. | |
| 228 | − * @deprecated This function is deprecated and will be removed. | |
| 229 | − */ | |
| 230 | 168 | Q_INVOKABLE virtual ScriptValue evaluateInClosure(const ScriptValue& locals, const ScriptProgramPointer& program) override; |
| 231 | 169 | |
| 232 | − /**jsdoc | |
| 233 | − * Checks whether the application was compiled as a debug build. | |
| 234 | − * @function Script.isDebugMode | |
| 235 | − * @returns {boolean} <code>true</code> if the application was compiled as a debug build, <code>false</code> if it was | |
| 236 | − * compiled as a release build. | |
| 237 | − */ | |
| 238 | − Q_INVOKABLE bool isDebugMode() const; | |
| 239 | − | |
| 240 | − //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
| 241 | − // MODULE related methods | |
| 242 | − | |
| 243 | − /**jsdoc | |
| 244 | − * Prints a message to the program log and emits {@link Script.printedMessage}. | |
| 245 | − * <p>Alternatively, you can use {@link print} or one of the {@link console} API methods.</p> | |
| 246 | − * @function Script.print | |
| 247 | − * @param {string} message - The message to print. | |
| 248 | − */ | |
| 249 | − Q_INVOKABLE void print(const QString& message); | |
| 250 | − | |
| 251 | − //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
| 252 | − // Entity Script Related methods | |
| 253 | − | |
| 254 | − /**jsdoc | |
| 255 | − * Manually runs the JavaScript garbage collector which reclaims memory by disposing of objects that are no longer | |
| 256 | − * reachable. | |
| 257 | − * @function Script.requestGarbageCollection | |
| 258 | − */ | |
| 259 | − Q_INVOKABLE void requestGarbageCollection() { collectGarbage(); } | |
| 260 | − | |
| 261 | − bool isRunning() const { return _isRunning; } // used by ScriptWidget | |
| 262 | − | |
| 263 | − bool isDebuggable() const { return _debuggable; } | |
| 264 | − | |
| 265 | − void disconnectNonEssentialSignals(); | |
| 266 | − | |
| 267 | 170 | // NOTE - this is used by the TypedArray implementation. we need to review this for thread safety |
| 268 | − ArrayBufferClass* getArrayBufferClass() { return _arrayBufferClass; } | |
| 269 | − | |
| 270 | − /**jsdoc | |
| 271 | − * @function Script.updateMemoryCost | |
| 272 | − * @param {number} deltaSize - Delta size. | |
| 273 | − * @deprecated This function is deprecated and will be removed. | |
| 274 | − */ | |
| 275 | − virtual void updateMemoryCost(const qint64& deltaSize) override; | |
| 276 | − | |
| 277 | −signals: | |
| 278 | − | |
| 279 | − /**jsdoc | |
| 280 | − * Triggered frequently at a system-determined interval. | |
| 281 | − * @function Script.update | |
| 282 | − * @param {number} deltaTime - The time since the last update, in s. | |
| 283 | − * @returns {Signal} | |
| 284 | − * @example <caption>Report script update intervals.</caption> | |
| 285 | − * Script.update.connect(function (deltaTime) { | |
| 286 | − * print("Update: " + deltaTime); | |
| 287 | − * }); | |
| 288 | − */ | |
| 289 | − void update(float deltaTime); | |
| 290 | − | |
| 291 | − /**jsdoc | |
| 292 | − * @function Script.finished | |
| 293 | − * @param {string} filename - File name. | |
| 294 | − * @param {object} engine - Engine. | |
| 295 | − * @returns {Signal} | |
| 296 | − * @deprecated This signal is deprecated and will be removed. | |
| 297 | − */ | |
| 298 | − void finished(const QString& fileNameString, ScriptEngineQtScriptPointer); | |
| 299 | − | |
| 300 | − /**jsdoc | |
| 301 | − * @function Script.cleanupMenuItem | |
| 302 | − * @param {string} menuItem - Menu item. | |
| 303 | − * @returns {Signal} | |
| 304 | − * @deprecated This signal is deprecated and will be removed. | |
| 305 | − */ | |
| 306 | − void cleanupMenuItem(const QString& menuItemString); | |
| 307 | − | |
| 308 | − /**jsdoc | |
| 309 | − * Triggered when the script prints a message to the program log via {@link print}, {@link Script.print}, | |
| 310 | − * {@link console.log}, {@link console.debug}, {@link console.group}, {@link console.groupEnd}, {@link console.time}, or | |
| 311 | − * {@link console.timeEnd}. | |
| 312 | − * @function Script.printedMessage | |
| 313 | − * @param {string} message - The message. | |
| 314 | − * @param {string} scriptName - The name of the script that generated the message. | |
| 315 | − * @returns {Signal} | |
| 316 | − */ | |
| 317 | − void printedMessage(const QString& message, const QString& scriptName); | |
| 318 | − | |
| 319 | − /**jsdoc | |
| 320 | − * Triggered when the script generates an error, {@link console.error} or {@link console.exception} is called, or | |
| 321 | − * {@link console.assert} is called and fails. | |
| 322 | − * @function Script.errorMessage | |
| 323 | − * @param {string} message - The error message. | |
| 324 | − * @param {string} scriptName - The name of the script that generated the error message. | |
| 325 | − * @returns {Signal} | |
| 326 | − */ | |
| 327 | − void errorMessage(const QString& message, const QString& scriptName); | |
| 328 | − | |
| 329 | − /**jsdoc | |
| 330 | − * Triggered when the script generates a warning or {@link console.warn} is called. | |
| 331 | − * @function Script.warningMessage | |
| 332 | − * @param {string} message - The warning message. | |
| 333 | − * @param {string} scriptName - The name of the script that generated the warning message. | |
| 334 | − * @returns {Signal} | |
| 335 | − */ | |
| 336 | − void warningMessage(const QString& message, const QString& scriptName); | |
| 337 | − | |
| 338 | − /**jsdoc | |
| 339 | − * Triggered when the script generates an information message or {@link console.info} is called. | |
| 340 | − * @function Script.infoMessage | |
| 341 | − * @param {string} message - The information message. | |
| 342 | − * @param {string} scriptName - The name of the script that generated the information message. | |
| 343 | − * @returns {Signal} | |
| 344 | − */ | |
| 345 | − void infoMessage(const QString& message, const QString& scriptName); | |
| 346 | − | |
| 347 | − /**jsdoc | |
| 348 | − * Triggered when the running state of the script changes, e.g., from running to stopping. | |
| 349 | − * @function Script.runningStateChanged | |
| 350 | − * @returns {Signal} | |
| 351 | − */ | |
| 352 | − void runningStateChanged(); | |
| 353 | − | |
| 354 | − /**jsdoc | |
| 355 | − * @function Script.clearDebugWindow | |
| 356 | − * @returns {Signal} | |
| 357 | − * @deprecated This signal is deprecated and will be removed. | |
| 358 | − */ | |
| 359 | − void clearDebugWindow(); | |
| 360 | − | |
| 361 | − /**jsdoc | |
| 362 | − * @function Script.loadScript | |
| 363 | − * @param {string} scriptName - Script name. | |
| 364 | − * @param {boolean} isUserLoaded - Is user loaded. | |
| 365 | − * @returns {Signal} | |
| 366 | − * @deprecated This signal is deprecated and will be removed. | |
| 367 | − */ | |
| 368 | − void loadScript(const QString& scriptName, bool isUserLoaded); | |
| 369 | − | |
| 370 | − /**jsdoc | |
| 371 | − * @function Script.reloadScript | |
| 372 | − * @param {string} scriptName - Script name. | |
| 373 | − * @param {boolean} isUserLoaded - Is user loaded. | |
| 374 | − * @returns {Signal} | |
| 375 | − * @deprecated This signal is deprecated and will be removed. | |
| 376 | − */ | |
| 377 | − void reloadScript(const QString& scriptName, bool isUserLoaded); | |
| 378 | − | |
| 379 | − /**jsdoc | |
| 380 | − * Triggered when the script has stopped. | |
| 381 | − * @function Script.doneRunning | |
| 382 | − * @returns {Signal} | |
| 383 | − */ | |
| 384 | − void doneRunning(); | |
| 385 | − | |
| 386 | − /**jsdoc | |
| 387 | − * @function Script.entityScriptDetailsUpdated | |
| 388 | − * @returns {Signal} | |
| 389 | − * @deprecated This signal is deprecated and will be removed. | |
| 390 | − */ | |
| 391 | − // Emitted when an entity script is added or removed, or when the status of an entity | |
| 392 | − // script is updated (goes from RUNNING to ERROR_RUNNING_SCRIPT, for example) | |
| 393 | − void entityScriptDetailsUpdated(); | |
| 171 | + inline ArrayBufferClass* getArrayBufferClass() { return _arrayBufferClass; } | |
| 394 | 172 | |
| 395 | 173 | public: // not for public use, but I don't like how Qt strings this along with private friend functions |
| 396 | 174 | virtual ScriptValue create(int type, const void* ptr) override; |
| @@ -409,15 +187,6 @@ protected: · 12 unmodified lines | ||
| 409 | 187 | const QScriptEngine::ValueOwnership& ownership = QScriptEngine::AutoOwnership); |
| 410 | 188 | |
| 411 | 189 | protected: |
| 412 | − | |
| 413 | − /**jsdoc | |
| 414 | − * @function Script.executeOnScriptThread | |
| 415 | − * @param {function} function - Function. | |
| 416 | − * @param {ConnectionType} [type=2] - Connection type. | |
| 417 | − * @deprecated This function is deprecated and will be removed. | |
| 418 | − */ | |
| 419 | − Q_INVOKABLE void executeOnScriptThread(std::function<void()> function, const Qt::ConnectionType& type = Qt::QueuedConnection ); | |
| 420 | − | |
| 421 | 190 | QPointer<ScriptManager> _manager; |
| 422 | 191 | |
| 423 | 192 | int _nextCustomType = 0; |
| @@ -425,13 +194,6 @@ protected: · 1 unmodified line | ||
| 425 | 194 | ScriptValue _undefinedValue; |
| 426 | 195 | mutable ScriptContextQtPointer _currContext; |
| 427 | 196 | |
| 428 | − std::atomic<bool> _isRunning { false }; | |
| 429 | − | |
| 430 | − bool _isThreaded { false }; | |
| 431 | − QScriptEngineDebugger* _debugger { nullptr }; | |
| 432 | − bool _debuggable { false }; | |
| 433 | − qint64 _lastUpdate; | |
| 434 | − | |
| 435 | 197 | ArrayBufferClass* _arrayBufferClass; |
| 436 | 198 | |
| 437 | 199 | ScriptContextQtAgent* _contextAgent{ nullptr }; |