MCPcopy Create free account
hub / github.com/catboost/catboost / StartSend

Method StartSend

library/cpp/netliba/v12/ib_cs.cpp:289–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287 return true;
288 }
289 void StartSend(TPtrArg<TIBPeer> peer, const TGUID& packetGuid, const TGUID& connectionGuid, TIBMsgHandle msgHandle, TRopeDataPacket* data) {
290 int sz = data->GetSize();
291 if (sz <= TCmdDataTiny::GetMaxDataSize()) {
292 TCmdDataTiny dataTiny;
293 dataTiny.Header.Command = CMD_DATA_TINY;
294 dataTiny.Header.Size = (ui16)sz;
295 dataTiny.Header.PacketGuid = packetGuid;
296 dataTiny.Header.ConnectionGuid = connectionGuid;
297 TBlockChainIterator bc(data->GetChain());
298 bc.Read(dataTiny.Data, sz);
299
300 peer->PostSend(BP, &dataTiny, sizeof(dataTiny.Header) + sz, TCompleteInfo::CI_DATA_TINY, msgHandle);
301 //printf("Send CMD_DATA_TINY\n");
302 } else {
303 MemPool->CopyData(data, msgHandle, peer, CopyResults);
304 peer->SendQueue.push_back(TQueuedSend(packetGuid, msgHandle));
305 {
306 TQueuedSend& msg = peer->SendQueue.back();
307 TCmdDataInit dataInit;
308 dataInit.Command = CMD_DATA_INIT;
309 dataInit.PacketGuid = msg.PacketGuid;
310 dataInit.Size = data->GetSize();
311 dataInit.ConnectionGuid = connectionGuid;
312 peer->PostSend(BP, &dataInit, sizeof(dataInit), TCompleteInfo::CI_IGNORE, 0);
313 //printf("Send CMD_DATA_INIT\n");
314 }
315 }
316 ++peer->SendCount;
317 }
318 void SendCompleted(TPtrArg<TIBPeer> peer, TIBMsgHandle msgHandle) {
319 SendResults.push_back(TIBSendResult(msgHandle, true));
320 if (--peer->SendCount < MAX_SEND_COUNT) {

Callers

nothing calls this directly

Calls 7

TQueuedSendClass · 0.70
GetSizeMethod · 0.45
ReadMethod · 0.45
PostSendMethod · 0.45
CopyDataMethod · 0.45
push_backMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected