2025-05-26 09:04:11 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "GetInterfaceData.h"
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief IDL文件生成类,用于根据接口数据生成IDL文件
|
|
|
|
|
*/
|
|
|
|
|
class GenIDL
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
/**
|
|
|
|
|
* @brief 生成IDL文件
|
|
|
|
|
* @param interfaceData 接口数据
|
|
|
|
|
* @return 是否生成成功
|
|
|
|
|
*/
|
|
|
|
|
static bool generateIDL(const AllInterfaceData &interfaceData);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取IDL文件路径
|
|
|
|
|
* @return IDL文件完整路径
|
|
|
|
|
*/
|
|
|
|
|
static std::string &getIDLFilePath() { return idlFilePath; }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 创建构型目录
|
|
|
|
|
* @return 是否创建成功
|
|
|
|
|
*/
|
|
|
|
|
static bool createConfigDirectory(const std::string &configName);
|
|
|
|
|
|
2025-06-18 16:01:06 +08:00
|
|
|
|
/**
|
|
|
|
|
* @brief 清除IDL文件路径
|
|
|
|
|
*/
|
|
|
|
|
static void clearIDLFilePath() { idlFilePath = ""; }
|
|
|
|
|
|
2025-05-26 09:04:11 +08:00
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* @brief 生成IDL文件内容
|
|
|
|
|
* @param interfaceData 接口数据
|
|
|
|
|
* @return IDL文件内容
|
|
|
|
|
*/
|
|
|
|
|
static std::string generateIDLContent(const AllInterfaceData &interfaceData);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 生成结构体定义
|
|
|
|
|
* @param structData 结构体数据
|
|
|
|
|
* @return 结构体定义字符串
|
|
|
|
|
*/
|
|
|
|
|
static std::string generateStructDefinition(const StructInterfaceData &structData);
|
|
|
|
|
|
|
|
|
|
static std::string idlFilePath; ///< IDL文件完整路径
|
|
|
|
|
};
|