static void jdwp_tracker_ready(asocket* s) { JdwpTracker* t = (JdwpTracker*)s; if (t->need_initial) { apacket::payload_type data; data.resize(s->get_max_payload()); data.resize(jdwp_process_list_msg(&data[0], data.size())); t->need_initial = false; s->peer->enqueue(s->peer, std::move(data)); } }
static void jdwp_tracker_ready( asocket* s ) { JdwpTracker* t = (JdwpTracker*) s; if (t->need_update) { apacket* p = get_apacket(); t->need_update = 0; p->len = jdwp_process_list_msg((char*)p->data, sizeof(p->data)); s->peer->enqueue(s->peer, p); } }
static void jdwp_process_list_updated(void) { std::string data; data.resize(1024); data.resize(jdwp_process_list_msg(&data[0], data.size())); for (auto& t : _jdwp_trackers) { if (t->peer) { // The tracker might not have been connected yet. apacket::payload_type payload(data.begin(), data.end()); t->peer->enqueue(t->peer, std::move(payload)); } } }
static void jdwp_process_list_updated(void) { char buffer[1024]; int len; JdwpTracker* t = _jdwp_trackers_list.next; len = jdwp_process_list_msg(buffer, sizeof(buffer)); for ( ; t != &_jdwp_trackers_list; t = t->next ) { apacket* p = get_apacket(); asocket* peer = t->socket.peer; memcpy(p->data, buffer, len); p->len = len; peer->enqueue( peer, p ); } }