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

Method StartSend

library/cpp/netliba/v6/ib_cs.cpp:282–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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