protobuf產生rpcserver代碼

來源:互聯網
上載者:User

近排玩起了protobuf,看了陳碩protobuf rpc和eventrpc rpc,寫點什麼下來,方便以後查看。google官方共用的一個協議編碼器。可以使用它來產生rpc協議。

定義例子:

package sudoku;message SudokuRequest {  required string checkerboard = 1;}//請求包格式message SudokuResponse {  optional bool solved = 1 [default=false];  optional string checkerboard = 2;}//回複包格式service SudokuService {  rpc Solve (SudokuRequest) returns (SudokuResponse);}//rpc伺服器類定義option cc_generic_services = true;//是否generate rpc伺服器類代碼

rpc伺服器介面類SudokuService

類SudukuService繼承::google::protobuf::Service,成員函數如下:

GetDescriptor返回一個ServiceDescriptor類型;

CallMethod負責轉化SudokuRequest和SudukuResponse,在已有的方法集中調用相應的方法

GetRequestPrototype和GetResponsePrototype根據所給的方法返回請求和響應Message的執行個體

rpc stub類SudokuService_Stub

類SudukuService_Stub繼承自類SudukuService,與類SudukuService相比,它多了一個channel函數和RpcChannel成員,其中RpcChannel成員是給用戶端發送請求給服務端用的。

參考:

http://code.google.com/apis/protocolbuffers/docs/reference/cpp-generated.html#service

http://code.google.com/apis/protocolbuffers/docs/reference/cpp/google.protobuf.service.html

http://www.codedump.info/?p=169

http://blog.csdn.net/solstice/article/details/6319512

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.