Re: NOTIFY/LISTEN why is not a callback as notice processing. - Mailing list pgsql-general

From Daniel Verite
Subject Re: NOTIFY/LISTEN why is not a callback as notice processing.
Date
Msg-id 969ed3d8-ddfd-4e0e-acb4-85d13619f14a@mm
Whole thread Raw
In response to NOTIFY/LISTEN why is not a callback as notice processing.  ("Filonenko Michael" <filonenko.mikhail@gmail.com>)
Responses Re: NOTIFY/LISTEN why is not a callback as notice processing.  (Steve Atkins <steve@blighty.com>)
List 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

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: dblink_get_result issue
Next
From: Steve Atkins
Date:
Subject: Re: NOTIFY/LISTEN why is not a callback as notice processing.