// Call this function each time the transport list has changed. void update_transports() { std::string transports = list_transports(false); device_tracker* tracker = device_tracker_list; while (tracker != nullptr) { device_tracker* next = tracker->next; // This may destroy the tracker if the connection is closed. device_tracker_send(tracker, transports); tracker = next; } }
static void device_tracker_ready(asocket* socket) { device_tracker* tracker = reinterpret_cast<device_tracker*>(socket); // We want to send the device list when the tracker connects // for the first time, even if no update occurred. if (tracker->update_needed > 0) { tracker->update_needed = 0; std::string transports = list_transports(false); device_tracker_send(tracker, transports); } }
/* call this function each time the transport list has changed */ void update_transports(void) { char buffer[1024]; int len; device_tracker* tracker; len = list_transports_msg(buffer, sizeof(buffer)); tracker = device_tracker_list; while (tracker != NULL) { device_tracker* next = tracker->next; /* note: this may destroy the tracker if the connection is closed */ device_tracker_send(tracker, buffer, len); tracker = next; } }
static void device_tracker_ready( asocket* socket ) { device_tracker* tracker = (device_tracker*) socket; /* we want to send the device list when the tracker connects * for the first time, even if no update occured */ if (tracker->update_needed > 0) { char buffer[1024]; int len; tracker->update_needed = 0; len = list_transports_msg(buffer, sizeof(buffer)); device_tracker_send(tracker, buffer, len); } }