Re: NOTIFY/LISTEN why is not a callback as notice processing.

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: "Filonenko Michael" <filonenko(dot)mikhail(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: NOTIFY/LISTEN why is not a callback as notice processing.
Date: 2010-11-11 00:30:10
Message-ID: 969ed3d8-ddfd-4e0e-acb4-85d13619f14a@mm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Filonenko Michael wrote:

> I create simple mechanism to inform user about something in database
> triggers. In my front-end I use PQsetNoticeReceiver, and display messages
> in QTextEdit.
> I think about multi-user environment. I read about NOTIFY/LISTEN, but find
> no callback mechanism. Is it planning?

Not sure what the multi-user environment implies, but since you're using Qt,
you're probably interested in getting a Qt signal when a db notification
arrives. It turns out it's not hard to do: before calling LISTEN, instantiate
a QSocketNotifier object bound to the socket of the libpq connection, and
connect its activated() signal to a slot. In this slot, your code can deal
with the notification at the libpq level with PQconsumeInput() and
PQnotifies(), do your own processing, and just return.
With this method, you don't have any need for a callback or managing your own
loop: it is Qt's event loop that calls the slot, just as it does for
GUI-related events.

Best regards,
--
Daniel
PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Steve Atkins 2010-11-11 00:59:35 Re: NOTIFY/LISTEN why is not a callback as notice processing.
Previous Message Tom Lane 2010-11-10 23:54:09 Re: dblink_get_result issue