同步到異步的類庫:Mario

jopen 9年前發布 | 9K 次閱讀 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;
}

項目主頁:http://www.baiduhome.net/lib/view/home/1428998599533

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