7/include/app.hpp

110 lines
3.1 KiB
C++
Raw Normal View History

2026-06-09 02:34:04 +00:00
#ifndef ODF_MANAGEMENT_APP_HPP
#define ODF_MANAGEMENT_APP_HPP
#include "odf_unit.hpp"
#include "adapter_interface.hpp"
#include "naming_helper.hpp"
#include "config_template.hpp"
#include "project_milestone.hpp"
#include <string>
#include <vector>
/**
* @brief ODF
*
* ODF
*
*/
class App {
public:
/// @brief 构造函数
App();
// ==================== ODF 单元管理 ====================
/**
* @brief ODF
* @param unit
*/
void addOdfUnit(const OdfUnit& unit);
/// @brief 列出所有 ODF 单元摘要
[[nodiscard]] std::string listOdfUnits() const;
// ==================== 适配器接口管理 ====================
/**
* @brief
* @param iface
*/
void addAdapterInterface(const AdapterInterface& iface);
/// @brief 列出所有适配器接口
[[nodiscard]] std::string listAdapterInterfaces() const;
// ==================== 命名工具 ====================
/**
* @brief
* @param code
* @return
*/
[[nodiscard]] static std::string validateNamingFormat(const std::string& code);
/**
* @brief
* @return
*/
[[nodiscard]] static std::string generateSampleNaming();
// ==================== 端口密度计算 ====================
/**
* @brief 1U
* @param rackHeightU U
* @param totalPorts
* @return U /U
*/
[[nodiscard]] static uint32_t calculatePortDensity(uint32_t rackHeightU,
uint32_t totalPorts);
// ==================== 配置模板 ====================
/// @brief 获取所有内置模板摘要
[[nodiscard]] std::string listTemplates() const;
/**
* @brief BOM
* @param templateIndex
* @param cabinetCount
* @return BOM
*/
[[nodiscard]] std::string generateBom(size_t templateIndex, uint32_t cabinetCount) const;
// ==================== 项目里程碑 ====================
/**
* @brief
* @param ms
*/
void addMilestone(const ProjectMilestone& ms);
/// @brief 列出所有里程碑
[[nodiscard]] std::string listMilestones() const;
/**
* @brief
* @return
*/
[[nodiscard]] std::string checkMilestonesConstraint() const;
private:
std::vector<OdfUnit> units_;
std::vector<AdapterInterface> adapters_;
std::vector<ProjectMilestone> milestones_;
std::vector<ConfigTemplate> templates_;
};
#endif // ODF_MANAGEMENT_APP_HPP