17#ifndef DAISI_PATH_PLANNING_MESSAGE_SERIALIZER_H_
18#define DAISI_PATH_PLANNING_MESSAGE_SERIALIZER_H_
20#include "path_planning/consensus/paxos/message/types.h"
21#include "solanet/serializer/serialize.h"
24namespace daisi::path_planning::message {
32template <
typename T> std::string serialize(
const T &msg);
40template <
typename T> T deserialize(
const std::string &msg);
44extern template std::string serialize<consensus::PaxosMessage>(
const consensus::PaxosMessage &msg);
45extern template consensus::PaxosMessage deserialize<consensus::PaxosMessage>(
46 const std::string &msg);
48extern template std::string serialize<StationAGVMessage>(
const StationAGVMessage &msg);
49extern template StationAGVMessage deserialize<StationAGVMessage>(
const std::string &msg);
51extern template std::string serialize<MiscMessage>(
const MiscMessage &msg);
52extern template MiscMessage deserialize<MiscMessage>(
const std::string &msg);
54extern template std::string serialize<FieldMessage>(
const FieldMessage &msg);
55extern template FieldMessage deserialize<FieldMessage>(
const std::string &msg);
57extern template std::string serialize<consensus::Request>(
const consensus::Request &msg);
58extern template consensus::Request deserialize<consensus::Request>(
const std::string &msg);
60extern template std::string serialize<consensus::Response>(
const consensus::Response &msg);
61extern template consensus::Response deserialize<consensus::Response>(
const std::string &msg);
63extern template std::string serialize<consensus::ReplicationMessage>(
64 const consensus::ReplicationMessage &msg);
65extern template consensus::ReplicationMessage deserialize<consensus::ReplicationMessage>(
66 const std::string &msg);