Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-125717

A possibility to use existing memory for payload data in Qt HTTP Server

    XMLWordPrintable

Details

    • All
    • 1e27b53dd (dev), 2ff6b4b8a (dev), b63114a3b (dev), 44361306d (6.8), ff6a6e526 (6.8), fb594811b (6.8)
    • Foundation Sprint 110, Foundation Sprint 111, Foundation Sprint 112, Foundation Sprint 113, Foundation Sprint 114, Foundation Sprint 115, Foundation Sprint 116, Foundation Sprint 117

    Description

      A customer reports a need to be able to use data in a pre-allocated memory as a payload in Qt HTTP Server. Currently, Qt HTTP Server make a copy of payload data. If you have large data, e.g. image on a high-resolution camera, there might be problems to allocate so much memory in small-footprint MCU of the device.

      The customer mentioned the following steps to approach this:

      • We use the QIODevice interface to QHttpServerResponder write because I (as I recall) it copies in chunks. When using QByteArray it could copy our 200MB and we were screwed.
      • But to improve performance and avoid copy into the internal QTcpSocket we did a wrapper around the QHttpServerResponder that wrote directly to the internal socket. BUT as of Qt6.5 that socket is hidden for outside use.

      The task would be to assess what could be done with the existing API and if new API would be needed, assess how to make them so that they can be added to a Qt 6.8 baseline on the customer side. The customer needs this on top of Qt 6.8.x.

      Attachments

        Issue Links

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

          Activity

            People

              manordheim Mårten Nordheim
              vminenko Vladimir Minenko
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: