vdi-cloud/terminal/kiosk-shell/src/desktop_service.h

46 lines
1.4 KiB
C++
Raw 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.

// 桌面服务适配层
//
// 职责:登录认证、桌面列表、连接票据。
// 当前为本地演示实现(账号非空即通过;Windows 桌面走 Moonlight,
// Ubuntu/麒麟未分配连接信息)。后续接入管理平台时替换/扩展本类为
// API 适配器(/api/v1/terminal/session/login|desktops|connect-ticket),
// 页面与状态机不感知数据来源变化。
#ifndef KIOSK_SHELL_DESKTOP_SERVICE_H
#define KIOSK_SHELL_DESKTOP_SERVICE_H
#include <QString>
#include <functional>
#include <vector>
#include "desktop_session.h"
namespace vdi {
class DesktopService {
public:
using AuthCallback = std::function<void(const AuthResult&)>;
using DesktopListCallback = std::function<void(std::vector<DesktopInfo>, const QString& error)>;
using TicketCallback = std::function<void(const ConnectionTicket&, const QString& error)>;
// 异步认证(本地实现立即回调;API 版本将走 HTTPS)
void login(const QString& username, const QString& password, AuthCallback callback);
// 拉取当前用户可用的桌面列表
void listDesktops(DesktopListCallback callback);
// 为指定桌面申请连接票据
void createTicket(const QString& desktopId, TicketCallback callback);
void logout();
QString currentUser() const { return currentUser_; }
private:
QString currentUser_;
};
} // namespace vdi
#endif // KIOSK_SHELL_DESKTOP_SERVICE_H