void MSG_QUEUE::msg_queue_poll(MSG_CHANNEL& channel) { if (msgs.empty()) return; if (log_flags.app_msg_send) { msg_printf(NULL, MSG_INFO, "[app_msg_send] poll: %d msgs queued for %s:", (int)msgs.size(), name ); } if (channel.send_msg(msgs[0].c_str())) { if (log_flags.app_msg_send) { msg_printf(NULL, MSG_INFO, "[app_msg_send] poll: delayed sent %s", msgs[0].c_str() ); } msgs.erase(msgs.begin()); last_block = 0; } for (unsigned int i=0; i<msgs.size(); i++) { if (log_flags.app_msg_send) { msg_printf(NULL, MSG_INFO, "[app_msg_send] poll: deferred: %s", msgs[i].c_str() ); } } }
void MSG_QUEUE::msg_queue_send(const char* msg, MSG_CHANNEL& channel) { if (msgs.empty() && channel.send_msg(msg)) { if (log_flags.app_msg_send) { msg_printf(NULL, MSG_INFO, "[app_msg_send] sent %s to %s", msg, name); } last_block = 0; return; } if (log_flags.app_msg_send) { msg_printf(NULL, MSG_INFO, "[app_msg_send] deferred %s to %s", msg, name); } msgs.push_back(std::string(msg)); if (!last_block) last_block = gstate.now; }