proto_tool.h 1.0 KB

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