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
内容?
答案 0 :(得分:2)
在libpqxx 4.0.1版本中找到以下内容:
CSCore
您应该使用// Obsolete notification receiver.
/** @deprecated Use notification_receiver instead.
*/
class PQXX_LIBEXPORT PQXX_NOVTABLE notify_listener
课程而不是notification receiver