Google Protocol Buffer使用
關鍵語義
語義 | 名稱 |
emun | 枚舉類 |
message | java類定義 |
optional,require,repeated | 資料類型,對象引用 |
import | 引用其他proto檔案 |
package | 對應生成java類的包名 |
optional java_package | 定義編譯後産生的檔案所在包結構的,即編寫生成後的java檔案所在的目錄(多層次結構) |
optional java_outer_classname | 編譯生成的java檔案名稱 |
sevice | 暫時不知道功能,後續查閱後補充 |
類型轉換對應關系
protoc類型 | Java類型 |
double | double |
float | float |
int32 | int |
int64 | long |
uint32 | int |
uint64 | long |
sint32 | int |
sint64 | long |
fixed32 | int |
fixed64 | long |
sfixed32 | int |
sfixed64 | long |
bool | boolean |
string | String |
bytes | ByteString |
編譯指令
protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR --java_out=DST_DIR --python_out=DST_DIR path/to/file.proto
--proto_path=IMPORT_PATH 預設目前目錄
--cpp_out 生成的c++檔案目錄
--java_out 生成的java檔案目錄
--pytho_out 生成的python檔案目錄
總結
protocol buffer的使用還是相對簡單點,唯一麻煩的就是多了一個預編譯的過程,将.proto檔案轉換成java檔案或c++檔案。但有的時候,這些過程是必須的。