57 lines · 2.3 KB · C
RawDownload
////  ConsoleScriptingInterface.h//  libraries/script-engine/src////  Created by NeetBhagat on 6/1/17.//  Copyright 2014 High Fidelity, Inc.////  ConsoleScriptingInterface is responsible for following functionality//  Printing logs with various tags and grouping on debug Window and Logs/log file.//  Debugging functionalities like Timer start-end, assertion, trace.//  To use these functionalities, use "console" object in Javascript files.//  For examples please refer "scripts/developer/tests/consoleObjectTest.js"////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #pragma once#ifndef hifi_ConsoleScriptingInterface_h#define hifi_ConsoleScriptingInterface_h #include <QtCore/QObject>#include <QtCore/QString>#include <QtCore/QDateTime>#include <QtCore/QList>#include <QtCore/QHash>#include <QtScript/QScriptable> // Scriptable interface of "console" object. Used exclusively in the JavaScript APIclass ConsoleScriptingInterface : public QObject, protected QScriptable {    Q_OBJECTpublic:    static QScriptValue info(QScriptContext* context, QScriptEngine* engine);    static QScriptValue log(QScriptContext* context, QScriptEngine* engine);    static QScriptValue debug(QScriptContext* context, QScriptEngine* engine);    static QScriptValue warn(QScriptContext* context, QScriptEngine* engine);    static QScriptValue error(QScriptContext* context, QScriptEngine* engine);    static QScriptValue exception(QScriptContext* context, QScriptEngine* engine);    static QScriptValue assertion(QScriptContext* context, QScriptEngine* engine);    static QScriptValue group(QScriptContext* context, QScriptEngine* engine);    static QScriptValue groupCollapsed(QScriptContext* context, QScriptEngine* engine);    static QScriptValue groupEnd(QScriptContext* context, QScriptEngine* engine); public slots:    void time(QString labelName);    void timeEnd(QString labelName);    void trace();    void clear(); private:        QHash<QString, QDateTime> _timerDetails;    static QList<QString> _groupDetails;    static void logGroupMessage(QString message, QScriptEngine* engine);    static QString appendArguments(QScriptContext* context);}; #endif // hifi_ConsoleScriptingInterface_h