Markdown2.py And Pygments Test
?
0 簡介
?
Thrift中,TThreadPoolServer是一個使用線程池的服務器。我們可以設定服務器擁有的工作線程數目N,當新的客戶發起連接請求時,首先檢查是否有空閑工作線程,若有則將取出一個空閑線程處理新客戶連接;若無則將新連接放入等待隊列中。這個教程將實現一個簡單的TThreadPoolServer服務器。
?
1 項目文件布局
?
bookstore |-- bookstore.thrift |-- cpp | |-- Makefile | |-- BookQueryClient.cpp | |-- BookQueryServer.cpp `-- gen-cpp|-- BookQuery.cpp|-- BookQuery.h|-- bookstore_constants.cpp|-- bookstore_constants.h|-- bookstore_types.cpp`-- bookstore_types.h項目目錄bookstore下,我們只需要編寫4個文件(以黑體標出),其中bookstore.thrift定義了RPC服務。gen-cpp目錄為Thrift根據bookstore.thrift生成的客戶端與服務器C++類定義。
?
2 創建服務定義文件bookstore.thrift
?
假設我們要實現一個BookStore的圖書查詢RPC服務,其定義如下:
namespace cpp bookstore service BookQuery {string getTitle(1: string isbn);double getPrice(1: string isbn); }getTitle()根據圖書的ISBN號返回string類型書名,getPrice()根據ISBN返回double型圖書價格。
?
3 生成C++服務端與客戶端的類定義
?
使用下面命令生成C++服務端與客戶端的類定義:
bookstore$ thrift --gen cpp bookstore.thrift通過gen-cpp/BookQuery.h文件,可以看到生成的RPC調用接口BookQueryIf擁有兩個API:getTitle()與getPrice()。注意:在bookstore.thrift中我們定義了getTitle()返回一個string,而在生成的接口里,返回值為void,且傳入引用_return。Thrift對返回值為string類型的RPC都會做相似的處理。
class BookQueryIf { public:virtual ~BookQueryIf() {}virtual void getTitle(std::string& _return, const std::string& isbn) = 0; // 返回值變為void, 增加參數_returnvirtual double getPrice(const std::string& isbn) = 0; };(未完待續...)
轉載于:https://www.cnblogs.com/zhuang-zhongjie/archive/2012/05/21/2512419.html
總結
以上是生活随笔為你收集整理的Markdown2.py And Pygments Test的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE8 CSS HACK 兼容集合
- 下一篇: test 标签