同步到異步的類庫: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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!