summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttp1configuration.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Create qdoc macros for C++ class docs 2.1: qHash()Marc Mutz2024-11-271-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a family of qdoc macros to document the various qHash() overloads we have. This patch does not change the \relates of the qHash() functions, they remain as inconsistent as they have been. Created QTBUG-129815 to clean things up. Since this author expects the \relates to change in the future, there are different \qhash commands, and all except \qhashbuiltin take the class name as an argument, for use in a centrally-choreographed fix for QTBUG-129815. As drive-by's, fix: - missing documentation about Key having to support qHash() in the associative Qt containers - drop noexcept and default arguments from \fn lines that needed to have their argument names changed - move the QStringView overload from qhash.cpp to qstringview.cpp (as it \relates to the former) Fixes: QTBUG-129574 Pick-to: 6.8 6.5 Change-Id: I8e8c2edc27422cbe5823f56baf3a24d7f7050836 Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Jaishree Vyas <[email protected]>
* Create qdoc macros for C++ class docs 1.2: member-swap(), simplified phrasingMarc Mutz2024-11-081-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have some patterns for how to document certain functions, but we also vary the sentences a lot, and you have to look up one documentation piece and copy it, essentially. If we ever want to change them, we end up with shotgun surgery. So apply DRY to the documentation and start a collection of macros to help with repetitive C++ class documentation tasks. The first macro is for member-swap(), and this second patch is for documentation that used the simplified phrasing ("Swaps this X with \a other."), which this patch adopts as the text for \memberswap, too, because it doesn't repeat the macro argument, making it easier to find a grammatically-fitting argument than in the traditional phrasing. This doesn't change the documentation, except as follows: * standardizes on simpified instead of traditional phrasing for docs that already use the \memberswap macro * adds the "very fast and never fails" blurb, if it was missing * changes the function's argument name to `other`, as required by the macro. Task-number: QTBUG-129573 Pick-to: 6.8 6.7 6.5 6.2 Change-Id: I1123e783ce0da76c5997ff74007d77504ac5b334 Reviewed-by: Topi Reiniö <[email protected]> Reviewed-by: Ivan Solovev <[email protected]>
* QHttp1Configuration: fix UB (inactive union member access)Marc Mutz2023-01-181-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Any QHttp1Configuration object created has 'ShortData data' as active member. std::exchange()ing or qt_ptr_swap()ping 'Private *d', then, is accessing the inactive member of the union, and that's UB. Fix by swapping and copying the whole union, as opposed to any of its members, and, in the move constructor, activating Private *d. This is now safe, as assigning to 'd' ends 'data's life-time and starts 'd's. Even if we assign a well-formed object to a moved-from object, we either swap or copy the whole union, so SEP. For self-move-assignment in the moved-from state (Hinnant Criterion), we're using std::swap() on the whole union, so SEP. In addition, activating `Private *d` in moved-from objects means that a future ~Public's use of unconditional 'delete d' won't invoke UB, either. Thanks to Peppe for insisting on fixing this. Pick-to: 6.5 Change-Id: Ic1323b8416d6b17ae21768c625de1daba0944133 Reviewed-by: Mårten Nordheim <[email protected]>
* QHttp1Configuration: make fit for releaseMarc Mutz2022-12-091-33/+62
| | | | | | | | | | | | | | | | - inline move special member functions and swap() - add qHash() overload (EqualityComparable types should be QtHashable) - unexport this non-polymoprphic class, export only individual members - don't use a heap-allocated Private just to hold a single number - use inline storage until we actually need to use external state - limit the max. connections to 255 to fit into an 8-bit value - document min/max of the numberOfConnectionsPerHost() property - use qsizetype instead of un-Qt-ish unsigned int Task-number: QTBUG-108215 Task-number: QTBUG-25280 Change-Id: Ia9841f2dbabd13219ffd813aff3947aa0c8bdc0c Reviewed-by: Mårten Nordheim <[email protected]>
* QNetworkAccessManager: Configurable number of HTTP1 TCP connectionsMarkus Goetz2022-12-091-0/+125
Introduces new class QHttp1Configuration. [ChangeLog][QtNetwork][QHttp1Configuration] New class. Fixes: QTBUG-25280 Fixes: QTBUG-108215 Change-Id: Ide6cee23946e5001befb8fab34edf10b8a66e02b Reviewed-by: Mårten Nordheim <[email protected]>