использование notify_listener — libpqxx

Я пытаюсь прослушивать события уведомления, используя libpqxx. Я начал с примера, который расширил pqxx::notify_listener.

#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 ...
}

Я не мог заставить это работать, хотя.

Я попытался изменить параметр name на
pqxx::notify_listener(c, "my_schema"),
pqxx::notify_listener(c, "listen my_schema") и некоторые другие.

Я создаю события NOTIFY вручную через pgAdmin. что бы я ни делал, функтор не выполняется.


person Ilia Choly    schedule 10.10.2012    source источник


Ответы (1)


Вы вызываете pqxx::connection_base::get_notifs() или pqxx::connection_base::await_notification() в основном цикле?

Если нет, то вам нужно.

person Daniel Vérité    schedule 10.10.2012
comment
Хорошо поймал. Это не было очевидно из документации doxygen. - person Stéphane; 23.09.2015