Summary:
When using msvc and compiling quic with C++20 there's a weird issue that the Looper is initialized with the wrong callbacks.
I suspect that this is because the constructor was creating the lambda as part of the header file.
Moving the constructor code to the cpp file fixed the issue
Reviewed By: hanidamlaj, kvtsoy
Differential Revision: D65994029
fbshipit-source-id: 9c5f47b62d0e0c74b5bce05f926e437e6aa2a3ab
Summary:
There are many files in this diff, but the relevant ones are:
* quic/api/QuicSocket.h
* quic/api/QuicSocketLite.h
* quic/api/QuicTransportBase.h
* quic/api/QuicTransportBaseLite.cpp
* quic/observer/SocketObserverContainer.h
The purpose of this is to include the observer functionality within the Lite class. Ideally, we'd remove it from the Lite class, but that's going to require some more detailed changes to the interfaces we're using, because observers are used quite a lot within common code (for example, AckHandlers.cpp).
I'll make those changes some time after the QuicTransportBase split, as they're going to take a while.
Reviewed By: jbeshay, mjoras, kvtsoy
Differential Revision: D65685667
fbshipit-source-id: feb07bcf35d6af2e5c2b538ff463b01b67c6aff9
Summary:
Our main use case for this right now is on the client side. So don't waste time doing all the callbacks per packet.
Also make it so the read callbacks don't update the loopers and check for closed streams every packet, defer that to the upper layer. In practice this means that when both options are on, these callbacks (besides the read callbacks) / checks / looper updates only happen once per read event.
Reviewed By: kvtsoy
Differential Revision: D65037206
fbshipit-source-id: 71119c9d2d857fcde747ea68676375d44b52c82f
Summary: If the peer sends higher stream limits in the settings, these callbacks may be invoked before the app has a chance to set the connection callback.
Reviewed By: sharmafb
Differential Revision: D64214648
fbshipit-source-id: 6a8a9b8d4d9e02a2baad672d69a43ba61daba918
Summary:
I have need of these in the proxygen WebTransport implementation, and don't want the full dependency on QuicSocket.
Also refactored WriteCallback into StreamWriteCallback and ConnWriteCallback, leaving the original WriteCallback as both for now.
Reviewed By: hanidamlaj
Differential Revision: D63486821
fbshipit-source-id: 4b16ad871c4deac4e262c12835ad5c457e9240da