Boost.AsioのZeroMQラッパー

bmq - thin C++ wrapper combining ØMQ and Boost Asio
Asio and ZeroMQ - Boost Users ML


0MQ(ZeroMQ)という、N-N通信やPublish-SubscribeモデルをサポートするネットワークライブラリのBoost.Asioラッパーだそうです。
現時点では、io_serviceを組み合わせて使用することができるようにした、薄いラッパーだそうです。

#include <boost/asio/io_service.hpp>
#include <bmq.h>

int main()
{
    boost::asio::io_service io;
    bmq::context ctx(1);
    bmq::component c(ctx, io);

    auto sink = c.add_sink(ZMQ_PAIR, "inproc://x");
    c.subscribe(sink, [](bmq::message&& msg)
    {
        std::string str(static_cast<char*>(msg.data()), msg.size());
        std::cout << str << std::endl;
    });

    auto source = c.add_source(ZMQ_PAIR, "inproc://x");

    bmq::message msg(const_cast<char*>("foo"), 3, nullptr);
    source->send(msg);

    // Execute message handler.
    io.poll();

    return 0;
}


ZeroMQについての資料:
ØMQ (ZeroMQ) 序論 - InfoQ
はじめてのZeroMQ その1 - Emerge Technology
ØMQ(zeromq)について調査する。 - グニャラくんのwktk運営日記