proto_tool.h 974 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef __PROTO_TOOL_H
  2. #define __PROTO_TOOL_H
  3. #include <istream>
  4. #include <google/protobuf/message.h>
  5. class proto_tool {
  6. public:
  7. // 必须关闭拷贝构造和赋值构造,只能通过 get_instance 函数来进行操作唯一的实例。
  8. proto_tool(const proto_tool&)=delete;
  9. proto_tool& operator =(const proto_tool&)= delete;
  10. ~proto_tool()=default;
  11. private:
  12. // 父类的构造函数必须保护,子类的构造函数必须私有。
  13. proto_tool()=default;
  14. public:
  15. //读取protobuf 配置文件,转化为protobuf参数形式
  16. //input: prototxt_path :prototxt文件路径
  17. //ouput: parameter: protobuf参数,这里是消息基类,实际调用时传入对应的子类即可。
  18. static bool read_proto_param(std::string prototxt_path, ::google::protobuf::Message& protobuf_parameter);
  19. static bool write_proto_param(std::string prototxt_path, ::google::protobuf::Message& protobuf_parameter);
  20. };
  21. #endif //__PROTO_TOOL_H