Markdown2.py And Pygments Test
?
0 簡介
?
Thrift中,TThreadPoolServer是一個使用線程池的服務(wù)器。我們可以設(shè)定服務(wù)器擁有的工作線程數(shù)目N,當新的客戶發(fā)起連接請求時,首先檢查是否有空閑工作線程,若有則將取出一個空閑線程處理新客戶連接;若無則將新連接放入等待隊列中。這個教程將實現(xiàn)一個簡單的TThreadPoolServer服務(wù)器。
?
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服務(wù)。gen-cpp目錄為Thrift根據(jù)bookstore.thrift生成的客戶端與服務(wù)器C++類定義。
?
2 創(chuàng)建服務(wù)定義文件bookstore.thrift
?
假設(shè)我們要實現(xiàn)一個BookStore的圖書查詢RPC服務(wù),其定義如下:
namespace cpp bookstore service BookQuery {string getTitle(1: string isbn);double getPrice(1: string isbn); }getTitle()根據(jù)圖書的ISBN號返回string類型書名,getPrice()根據(jù)ISBN返回double型圖書價格。
?
3 生成C++服務(wù)端與客戶端的類定義
?
使用下面命令生成C++服務(wù)端與客戶端的類定義:
bookstore$ thrift --gen cpp bookstore.thrift通過gen-cpp/BookQuery.h文件,可以看到生成的RPC調(diào)用接口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; // 返回值變?yōu)関oid, 增加參數(shù)_returnvirtual double getPrice(const std::string& isbn) = 0; };(未完待續(xù)...)
轉(zhuǎn)載于:https://www.cnblogs.com/zhuang-zhongjie/archive/2012/05/21/2512419.html
總結(jié)
以上是生活随笔為你收集整理的Markdown2.py And Pygments Test的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE8 CSS HACK 兼容集合
- 下一篇: test 标签