Home | History | Annotate | Download | only in api
      1 /*
      2     Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
      3 
      4     This library is free software; you can redistribute it and/or
      5     modify it under the terms of the GNU Library General Public
      6     License as published by the Free Software Foundation; either
      7     version 2 of the License, or (at your option) any later version.
      8 
      9     This library is distributed in the hope that it will be useful,
     10     but WITHOUT ANY WARRANTY; without even the implied warranty of
     11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12     Library General Public License for more details.
     13 
     14     You should have received a copy of the GNU Library General Public License
     15     along with this library; see the file COPYING.LIB.  If not, write to
     16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17     Boston, MA 02110-1301, USA.
     18 */
     19 
     20 #ifndef qscriptconverter_p_h
     21 #define qscriptconverter_p_h
     22 
     23 #include <JavaScriptCore/JavaScript.h>
     24 #include <QtCore/qstring.h>
     25 
     26 /*
     27   \internal
     28   \class QScriptConverter
     29   QScriptValue and QScriptEngine helper class. This class's responsibility is to convert values
     30   between JS values and Qt/C++ values.
     31 
     32   This is a nice way to inline these functions in both QScriptValue and QScriptEngine.
     33 */
     34 class QScriptConverter {
     35 public:
     36     static QString toString(const JSStringRef str)
     37     {
     38         return QString(reinterpret_cast<const QChar*>(JSStringGetCharactersPtr(str)), JSStringGetLength(str));
     39     }
     40     static JSStringRef toString(const QString& str)
     41     {
     42         return JSStringCreateWithUTF8CString(str.toUtf8().constData());
     43     }
     44     static JSStringRef toString(const char* str)
     45     {
     46         return JSStringCreateWithUTF8CString(str);
     47     }
     48 };
     49 
     50 #endif // qscriptconverter_p_h
     51