1
0
forked from BRT/arc
arc/database/dao/WifiConnectionDAO.h

34 lines
1.9 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QString>
#include <QList>
// Реквизиты подключения устройства по Wi-Fi. Связь с устройством — по android_id
// (= devices.id), т.е. одна запись на физический аппарат, независимо от транспорта.
struct WifiConnection {
QString androidId; // = devices.id
QString ip; // последний известный IP телефона в Wi-Fi
int port = 0; // порт для adb connect (5555 для legacy tcpip)
QString code; // одноразовый pairing-код (пусто для legacy tcpip)
QString mac; // нормализованный MAC wlan0 — для поиска нового IP по ARP при смене DHCP
QString updatedAt; // ISO-время последнего обновления
};
// DAO таблицы wifi_connections. Задел под будущий авто-реконнект по Wi-Fi:
// хранит ip/port/code per-device, чтобы переподключать устройство без повторного
// поиска. В текущей итерации — только хранилище (воркер реконнекта отложен).
class WifiConnectionDAO {
public:
// Вставка/обновление по android_id (PRIMARY KEY).
static bool upsert(const QString &androidId, const QString &ip, int port,
const QString &code = {}, const QString &mac = {});
// Запись по android_id (пустой androidId в результате → не найдено).
[[nodiscard]] static WifiConnection getByAndroidId(const QString &androidId);
// Все сохранённые реквизиты.
[[nodiscard]] static QList<WifiConnection> getAll();
static bool remove(const QString &androidId);
};