1 Star 0 Fork 32

Gaven / QPerf

forked from pcd / QPerf 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
架构与设计.md 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
pcd 提交于 2021-04-11 07:49 . :pencil:更新类图。

:apple: 类设计

图1 主要类图

Image 主要类图

:wrench:主要类说明

:hammer:BaseState 状态基类

网络性能测试工具的状态抽象。此类是应用设计模式-状态模式的一个变体,解决各状态之间的业务耦合,各状态类可组合使用。

:hammer:StateFactory 状态类创建工厂

封装各个状态的实现类。包括:InitServerStateStartServerStateInitClientStateInitServerStateStopState等的对象实例创建。

:hammer:PointerFactory 远端节点类创建工厂

封装各个远端节点实现类。包括:FakeServerPointerFakeClientPointerPFPointer

:hammer:BasePointer 远端节点基类

表示对远端节点的业务封装,一个远端节点可能是真实存在的,也可能是虚拟的(FakeClientPointerFakeServerPointer

:hammer:Context 上下文

封装类的调用关系。控制状态切换。依赖BasePointerBaseState。使用PointerFactoryStateFactory 创建需要的实例。

:hammer:BaseTunnel 隧道基类

对通信隧道的封装,通信隧道可能是TcpServerTcpClientUdp的任一种封装。

:hammer:PFPointer 真实远端节点类

封装真实的远端节点的类,内部实现对实际远端测试的命令隧道、数据隧道的业务封装。

:hammer:BaseCtrl 控制器基类

程序的控制入口,封装内部的一系列类的使用。

:hammer:ServerCtrl 服务端控制器

服务端的控制器实现。

:hammer:ClientCtrl 客户端控制器

客户端的控制器实现。

:hammer:CtrlFactoryProducer 控制器抽象类创建工厂
:hammer:AbstractCtrlFactory 控制器的工厂抽象
:hammer:CtrlFactory 控制器工厂实现

:fire:状态机设计

图2 服务端状态机设计

Image 服务端状态机

图3 客户端状态机设计

Image 客户端状态机

图4 服务端时序图

Image 服务端时序图

图5 客户端时序图

Image 客户端时序图

C++
1
https://gitee.com/WaitingForMe/qperf.git
git@gitee.com:WaitingForMe/qperf.git
WaitingForMe
qperf
QPerf
master

搜索帮助