2012-10-10 25 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文檔中並不明顯。 –