int broadcastAllocationResponse(const UniqueID& unique_id, NodeID allocated_node_id) { Allocation msg; msg.unique_id.resize(msg.unique_id.capacity()); copy(unique_id.begin(), unique_id.end(), msg.unique_id.begin()); msg.node_id = allocated_node_id.get(); trace(TraceAllocationResponse, msg.node_id); return allocation_pub_.broadcast(msg); }
void publishFollowupAllocationResponse() { Allocation msg; msg.unique_id = current_unique_id_; UAVCAN_ASSERT(msg.unique_id.size() < msg.unique_id.capacity()); UAVCAN_TRACE("AllocationRequestManager", "Intermediate response with %u bytes of unique ID", unsigned(msg.unique_id.size())); trace(TraceAllocationFollowupResponse, msg.unique_id.size()); const int res = allocation_pub_.broadcast(msg); if (res < 0) { trace(TraceError, res); allocation_pub_.getNode().registerInternalFailure("Dynamic allocation broadcast"); } }