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