Uploaded image for project: ' AGL Development'
  1. AGL Development
  2. SPEC-1911

Qt-less WAM: replace qt basic data structures


      The scope of this is anything that is not JSON, pluggable, or the QObject signal/slot replacement.

      From original patch:

      #include <QByteArray>
      #include <QDebug>
      #include <QDir>
      #include <QFile>
      #include <QFileInfo>
      #include <QList>
      #include <QMap>
      #include <QMultiMap>
      #include <QPair>
      #include <QString>
      #include <QStringList>
      #include <QTextStream>
      #include <QUrl>
      #include <QVariant>
      #include <QtCore/QDataStream>
      #include <QtCore/QDir>
      #include <QtCore/QFile>
      #include <QtCore/QList>
      #include <QtCore/QMultiMap>
      #include <QtCore/QString>
      #include <QtCore/QUrl>
      #include <QtCore/QUrlQuery>
      #include <QtCore/QVariant>

      • Find mapping of Qt container to STL containers(when Qt started out, standard C++ was significantly weaker. Mapping may not be one to one mapping or even some classes won't be there in STL. )
      QT Standard Library/Boost
      QVector std::vector
      QList — (We should use std::vector)
      QLinkedList std::list
      QMap std::map
      QMultiMap std::multimap
      QHash std::unordered_map
      QMultiHash std::unordered_multimap
      QSet std::unordered_set
      QStringList  -      (Using std::list<std::string>)
      QLatin1String  -      (Using std::string)
      QDir std::experimental::filesystem; (currently with GCC6.4,std::experimental::filesystem is used. After C++17 upgrade, std::filesystem can be used.)
      QPair std::pair
      QVariantMap ?
      QVariant std::variant? 
      It is a C++17 feature and available in GCC7(AGL EEL using GCC6.4). We even can not use it as an experimental feature.
      QString("%1 + %2").arg("A").arg("B") boost::format("%2% %1%") % A % B;
      QStringList.split() boost::split()
      QUrl boost::network::http::uri
      GURL : https://chromium.googlesource.com/chromium/src/+/master/url/gurl.h
      QStringLiteral std::stringstream


      Needs to analyzed and clarify 

      • QVariant/QVariantMap  ->  ? std::variant ? it is C++17 feature and available in GCC 7 (AGL eel using GCC 6.4)
      • QUrl ->? We need functionality like parsing URL  to get port, scheme, host. Currently, for porting activity basic functionality is implemented using our own dummy implementation. Does the use of GURL mean adding chromium as dependecy?


      • Use as much as possible of standard libraries.
      • Solution should work on Flounder (GCC 7.0) and webOS OSE (GCC 6.4).
      • Boost is allowed. That should cover string formatting, std::variant replacement, std::filesystem replacement.
      • The patches should be rebaseable on top of flounder branch (and easily rebaseable to webOS WAM master).

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            nickdiego Nick Yamane
            jdapena Jose Dapena Paz
            0 Vote for this issue
            7 Start watching this issue