https://developers.google.com/protocol-buffers/docs/overview
Protobuf是一種可以實現內存與外存交換的協議接口。可以理解爲一種通信協議.caffe就是使用了這種協議.
protobuf使用前,先編寫proto文件,這是描述我們需要配置參數的數據結構。例如:
// See README.txt for information and build instructions.
package tutorial;
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
message Person {
required string name = 1;
required int32 id = 2; // Unique ID number for this person.
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
// Our address book file is just one of these.
message AddressBook {
repeated Person person = 1;
}
然後用protobuf工具生成接口代碼:
protoc –cpp_out=. addressbook.proto
運行後生成了兩個文件:addressbook.pb.cc 和addressbook.pb.h
包含了操作參數,序列化,反序列化的接口函數.(add_person(), add_phone(), set_number(), set_email(),SerializeToOstream(),ParseFromIstream()等)