{# 序列化器模板 #} {% if part == 'header' %} #pragma once #include #include /** * 序列化器 * 将{{ target_message.full_name }}消息序列化为字节流 */ class Serializer { public: Serializer(); // 序列化 std::vector serialize( const {{ target_message.system_name }}{{ target_message.message_type }}& message); private: {% if serialization.value == 'json' %} // JSON序列化 std::string serializeJson( const {{ target_message.system_name }}{{ target_message.message_type }}& message); {% endif %} }; {% else %} #include "serializer.h" #include {% if serialization.value == 'json' %} #include using json = nlohmann::json; {% endif %} Serializer::Serializer() { } std::vector Serializer::serialize( const {{ target_message.system_name }}{{ target_message.message_type }}& message) { {% if serialization.value == 'json' %} std::string json_str = serializeJson(message); return std::vector(json_str.begin(), json_str.end()); {% else %} // 默认二进制序列化 std::vector buffer; // TODO: 实现二进制序列化逻辑 return buffer; {% endif %} } {% if serialization.value == 'json' %} std::string Serializer::serializeJson( const {{ target_message.system_name }}{{ target_message.message_type }}& message) { json j; {% for field in target_message.fields %} j["{{ field.name }}"] = message.{{ field.name }}; {% endfor %} return j.dump(); } {% endif %} {% endif %}