Files
2026-06-30 15:14:37 +08:00

65 lines
1.9 KiB
Go
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.
package ctr
// Client Ctr 客户端接口(Service 层调用)
//
// 职责:
// 1. 定义 Service 层可调用的所有方法
// 2. 解耦 Service 和 Ctr 实现
// 3. 便于单元测试 Mock
//
// 使用示例:
//
// type NetworkService struct {
// ctrClient ctr.Client
// }
//
// func (s *NetworkService) CreateNetwork(req *model.Network) error {
// return s.ctrClient.CreateNetwork(req.ID, req.Subnet, listenPort)
// }
type Client interface {
// ========== 网络生命周期管理 ==========
// CreateNetwork 创建网络
// networkID: 组网 ID(雪花算法 uint64
// subnet: 子网段(例如:"10.0.0.0/24"
// listenPort: WireGuard 监听端口(例如:51820 + hash(networkID)
// meshMode: 组网模式("native" | "enhanced"
CreateNetwork(networkID uint64, subnet string, listenPort int, meshMode string) error
// DeleteNetwork 删除网络
DeleteNetwork(networkID uint64) error
// ========== Peer 管理 ==========
// AddPeer 添加 Peer
// publicKey: Peer 的公钥
// allowedIP: Peer 的允许 IP(例如:"10.0.0.2/32"
AddPeer(networkID uint64, publicKey, allowedIP string) error
// RemovePeer 移除 Peer
RemovePeer(networkID uint64, publicKey string) error
// ========== 状态查询 ==========
// GetStatus 获取网络状态
// 返回 WGStatus 和 CoreStatus(如果 Core 存在)
GetStatus(networkID uint64) (*NetworkStatus, error)
// ========== 模式切换(P3 阶段) ==========
// SwitchMode 切换传输模式(原生→增强)
// mode: "native" | "enhanced"
// ✅ P3-1 阶段实现
SwitchMode(networkID uint64, mode string) error
// ========== 配置同步(P3 阶段) ==========
// UpdateCoreConfig 更新 Core 配置(策略修改后同步)
// config: 新的配置对象(根据策略类型决定)
// ✅ P3-1 阶段实现
UpdateCoreConfig(networkID uint64, config interface{}) error
}
// 确保 Ctr 实现了 Client 接口
var _ Client = (*Ctr)(nil)