mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-11-10 21:22:20 +03:00
Custom variant type for packetheader
Summary: Make a custom variant type for PacketHeader. By not relying on boost::variant this reduces the code size of the implementation. This uses a combination of a union type as well as a enum type to emulate a variant Reviewed By: yangchi Differential Revision: D17187589 fbshipit-source-id: 00c2b9b8dd3f3e73af766d84888b13b9d867165a
This commit is contained in:
committed by
Facebook Github Bot
parent
c8da36d755
commit
04baa15a04
@@ -104,10 +104,9 @@ ReadAckFrame decodeAckFrame(
|
||||
// and ack delay, the sender has to use something, so they use the default
|
||||
// ack delay. To keep it consistent the protocol specifies using the same
|
||||
// ack delay for all the long header packets.
|
||||
uint8_t ackDelayExponentToUse = folly::variant_match(
|
||||
header,
|
||||
[](const LongHeader&) { return kDefaultAckDelayExponent; },
|
||||
[¶ms](auto&) { return params.peerAckDelayExponent; });
|
||||
uint8_t ackDelayExponentToUse = (header.getHeaderForm() == HeaderForm::Long)
|
||||
? kDefaultAckDelayExponent
|
||||
: params.peerAckDelayExponent;
|
||||
DCHECK_LT(ackDelayExponentToUse, sizeof(ackDelay->first) * 8);
|
||||
// ackDelayExponentToUse is guaranteed to be less than the size of uint64_t
|
||||
uint64_t delayOverflowMask = 0xFFFFFFFFFFFFFFFF;
|
||||
@@ -986,7 +985,7 @@ folly::Expected<ParsedLongHeader, TransportErrorCode> parseLongHeaderVariants(
|
||||
LongHeader(
|
||||
type,
|
||||
std::move(parsedLongHeaderInvariant.invariant),
|
||||
std::move(token),
|
||||
token ? token->moveToFbString().toStdString() : std::string(),
|
||||
std::move(originalDstConnId)),
|
||||
PacketLength(0, 0));
|
||||
}
|
||||
@@ -1037,7 +1036,7 @@ folly::Expected<ParsedLongHeader, TransportErrorCode> parseLongHeaderVariants(
|
||||
LongHeader(
|
||||
type,
|
||||
std::move(parsedLongHeaderInvariant.invariant),
|
||||
std::move(token)),
|
||||
token ? token->moveToFbString().toStdString() : std::string()),
|
||||
PacketLength(pktLen->first, pktLen->second));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user