2012-10-10 20 views
3

我正在尝试使用libpqxx来收听通知事件。我开始通过延长pqxx::notify_listener的例子。使用notify_listener - libpqxx

#include <iostream> 
#include <string> 
#include <pqxx/pqxx> 

class Foo : public pqxx::notify_listener { 

public: 
    Foo(pqxx::connection_base &c): pqxx::notify_listener(c, "listen") {} 
    virtual void operator()(int id) { std::cout << "HERE!" << std::endl; } 
}; 

int main(void) { 
    // set up the listener 
    pqxx::connection con("...secret..."); 
    Foo listener(con); 

    // loop forever ... 
} 

虽然我无法得到这个工作。

我试过名称参数切换到
pqxx::notify_listener(c, "my_schema")
pqxx::notify_listener(c, "listen my_schema")和其他一些人。

我正在通过pgAdmin手动创建NOTIFY事件。不管我做什么,函数都不会被执行。

回答

4

您是否在主循环中调用pqxx::connection_base::get_notifs()pqxx::connection_base::await_notification()

如果不是,则需要。

+0

好的。这从doxygen文档中并不明显。 –