MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / PeekData

Method PeekData

extra/yassl/src/yassl_int.cpp:1202–1228  ·  view source on GitHub ↗

like Fill but keep data in buffer

Source from the content-addressed store, hash-verified

1200
1201// like Fill but keep data in buffer
1202void SSL::PeekData(Data& data)
1203{
1204 if (GetError()) return;
1205 uint dataSz = data.get_length(); // input, data size to fill
1206 size_t elements = buffers_.getData().size();
1207
1208 data.set_length(0); // output, actual data filled
1209 dataSz = min(dataSz, bufferedData());
1210
1211 Buffers::inputList::iterator front = buffers_.useData().begin();
1212
1213 while (elements) {
1214 uint frontSz = (*front)->get_remaining();
1215 uint readSz = min(dataSz - data.get_length(), frontSz);
1216 uint before = (*front)->get_current();
1217
1218 (*front)->read(data.set_buffer() + data.get_length(), readSz);
1219 data.set_length(data.get_length() + readSz);
1220 (*front)->set_current(before);
1221
1222 if (data.get_length() == dataSz)
1223 break;
1224
1225 elements--;
1226 front++;
1227 }
1228}
1229
1230
1231// flush output buffer

Callers 1

receiveDataFunction · 0.80

Calls 10

minFunction · 0.85
set_lengthMethod · 0.80
get_remainingMethod · 0.80
set_bufferMethod · 0.80
set_currentMethod · 0.80
get_lengthMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
get_currentMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected