postgresql pqxx notify_listener - 获取通知有效负载

时间:2015-12-24 13:08:34

标签: postgresql libpqxx

Native interface postgresql提供以下命令:NOTIFY channel [ , payload ],其中payload是变量string。我使用库pqxx与数据库进行交互。它提供notify_listener接口。作为通知执行的回调只有一个参数 - id。 这是我的代码:

class notif : public pqxx::notify_listener {

public:
        notif(pqxx::connection_base &conn, const std::string &table, std::shared_ptr<notify_processor_t> pr) : 
            pqxx::notify_listener(conn, table), _table(table), _pr(pr) {}

        notif(pqxx::connection_base &conn, const std::string &table) :
            pqxx::notify_listener(conn, table), _table(table) {}

        virtual void operator()(int id) 
        { 
            std::cout << "notification " << _table << std::endl; 
            if (_pr.get())
                _pr->operator()();
        }
private:
        std::shared_ptr<notify_processor_t> _pr;
        std::string _table;
};

如何使用提供的payload界面获取pqxx内容?

1 个答案:

答案 0 :(得分:2)

在libpqxx 4.0.1版本中找到以下内容:

CSCore

您应该使用// Obsolete notification receiver. /** @deprecated Use notification_receiver instead. */ class PQXX_LIBEXPORT PQXX_NOVTABLE notify_listener 课程而不是notification receiver