同步到異步的類庫:Mario
Mario是一個讓編寫從同步到異步的類庫,它的線程安全較大,易于使用。Mario 的最基本的想法就是為了減少人員的安排,降低成本和時間投入。但是有了這個類庫,操作人員就可以抽出精力做別的事情了。所以 Mario 類庫能夠很輕易的解決你的問題,你只需要你自己的消息功能。
引擎類型:
-
memory,這種類型就是將數據緩沖存儲器留在內存里。
-
file,這種類型就是能夠在本地日志路徑里創建做出一個 write2file。
示例代碼:
#include "mario.h"
#include "consumer.h"
#include "mutexlock.h"
#include "port.h"
/**
* @brief The handler inherit from the Consumer::Handler
* The processMsg is pure virtual function, so you need implementation your own
* version
*/
class FileHandler : public mario::Consumer::Handler
{
public:
FileHandler() {};
virtual void processMsg(const std::string &item) {
log_info("consume data %s", item.data());
}
};
int main()
{
mario::Status s;
FileHandler *fh = new FileHandler();
/**
* @brief
*
* @param 1 is the thread number
* @param fh is the handler that you implement. It tell the mario how
* to consume the data
*
* @return
*/
mario::Mario *m = new mario::Mario(1, fh);
std::string item = "Put data in mario";
s = m->Put(item);
if (!s.ok()) {
log_err("Put error");
exit(-1);
}
delete m;
delete fh;
return 0;
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!