PostgreSQL supports asynchronous
notification via the LISTEN and
NOTIFY commands. A backend registers its
interest in a particular notification condition with the
LISTEN command. All backends that are
listening on a particular condition will be notified
asynchronously when a NOTIFY of that name is
executed by another backend. No additional information is passed
from the notifier to the listener. Thus, typically, any actual
data that needs to be communicated is transferred through a
relation.

libpq++ applications are notified whenever a
connected backend has
received an asynchronous notification. However, the communication from
the backend to the frontend is not asynchronous.
The libpq++ application
must poll the backend to see if there is any pending notification
information. After the execution of a command, a frontend may call
PgDatabase::Notifies
to see if any notification data is currently available from the backend.
PgDatabase::Notifies
returns the notification from a list of unhandled notifications from the
backend. The function returns NULL if there are no pending notifications
from the backend.
PgDatabase::Notifies
behaves like the popping of a stack. Once a notification is returned
from PgDatabase::Notifies,
it is considered handled and will be removed from the list of
notifications.

PgDatabase::Notifies
retrieves pending notifications from the server.

PGnotify* PgDatabase::Notifies()

The second sample program gives an example of the use of asynchronous
notification.