MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / getNextTransferCoding

Method getNextTransferCoding

Libraries/HttpClient/HttpClient.cpp:1107–1154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1105}
1106
1107bool SC::HttpClientResponse::getNextTransferCoding(HttpClientTransferCodingIterator& iterator,
1108 HttpClientTransferCoding& transferCoding) const
1109{
1110 transferCoding = {};
1111
1112 for (;;)
1113 {
1114 if (not iterator.hasHeaderValue or iterator.valueOffset >= iterator.headerValue.sizeInBytes())
1115 {
1116 if (not findNextHeader("Transfer-Encoding", iterator.headerIterator, iterator.headerValue))
1117 {
1118 iterator.hasHeaderValue = false;
1119 return false;
1120 }
1121 iterator.valueOffset = 0;
1122 iterator.hasHeaderValue = true;
1123 }
1124
1125 const Span<const char> bytes = iterator.headerValue.toCharSpan();
1126 while (iterator.valueOffset < bytes.sizeInBytes() and
1127 (bytes[iterator.valueOffset] == ',' or bytes[iterator.valueOffset] == ' ' or
1128 bytes[iterator.valueOffset] == '\t'))
1129 {
1130 iterator.valueOffset += 1;
1131 }
1132
1133 const size_t tokenStart = iterator.valueOffset;
1134 while (iterator.valueOffset < bytes.sizeInBytes() and bytes[iterator.valueOffset] != ',')
1135 {
1136 iterator.valueOffset += 1;
1137 }
1138
1139 const StringSpan token = trimAsciiWhiteSpace({bytes.data() + tokenStart, iterator.valueOffset - tokenStart});
1140 if (iterator.valueOffset < bytes.sizeInBytes() and bytes[iterator.valueOffset] == ',')
1141 {
1142 iterator.valueOffset += 1;
1143 }
1144
1145 if (token.sizeInBytes() == 0)
1146 {
1147 continue;
1148 }
1149
1150 transferCoding.name = token;
1151 transferCoding.type = HttpClientTransferCoding::parseName(token);
1152 return true;
1153 }
1154}
1155
1156bool SC::HttpClientResponse::hasContentCoding(HttpClientContentCoding::Type type) const
1157{

Callers 1

responseHeaderHelpersMethod · 0.80

Calls 3

trimAsciiWhiteSpaceFunction · 0.70
sizeInBytesMethod · 0.45
dataMethod · 0.45

Tested by 1

responseHeaderHelpersMethod · 0.64