MCPcopy Create free account
hub / github.com/cryptonomex/graphene / send_queueable_message

Method send_queueable_message

libraries/net/peer_connection.cpp:331–361  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

329 }
330
331 void peer_connection::send_queueable_message(std::unique_ptr<queued_message>&& message_to_send)
332 {
333 VERIFY_CORRECT_THREAD();
334 _total_queued_messages_size += message_to_send->get_size_in_queue();
335 _queued_messages.emplace(std::move(message_to_send));
336 if (_total_queued_messages_size > GRAPHENE_NET_MAXIMUM_QUEUED_MESSAGES_IN_BYTES)
337 {
338 elog("send queue exceeded maximum size of ${max} bytes (current size ${current} bytes)",
339 ("max", GRAPHENE_NET_MAXIMUM_QUEUED_MESSAGES_IN_BYTES)("current", _total_queued_messages_size));
340 try
341 {
342 close_connection();
343 }
344 catch (const fc::exception& e)
345 {
346 elog("Caught error while closing connection: ${exception}", ("exception", e));
347 }
348 return;
349 }
350
351 if( _send_queued_messages_done.valid() && _send_queued_messages_done.canceled() )
352 FC_THROW_EXCEPTION(fc::exception, "Attempting to send a message on a connection that is being shut down");
353
354 if (!_send_queued_messages_done.valid() || _send_queued_messages_done.ready())
355 {
356 //dlog("peer_connection::send_message() is firing up send_queued_message_task");
357 _send_queued_messages_done = fc::async([this](){ send_queued_messages_task(); }, "send_queued_messages_task");
358 }
359 //else
360 // dlog("peer_connection::send_message() doesn't need to fire up send_queued_message_task, it's already running");
361 }
362
363 void peer_connection::send_message(const message& message_to_send, size_t message_send_time_field_offset)
364 {

Callers

nothing calls this directly

Calls 1

get_size_in_queueMethod · 0.80

Tested by

no test coverage detected