PostgreSQL Source Code  git master
libpq-events.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * libpq-events.h
4  * This file contains definitions that are useful to applications
5  * that invoke the libpq "events" API, but are not interesting to
6  * ordinary users of libpq.
7  *
8  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9  * Portions Copyright (c) 1994, Regents of the University of California
10  *
11  * src/interfaces/libpq/libpq-events.h
12  *
13  *-------------------------------------------------------------------------
14  */
15 
16 #ifndef LIBPQ_EVENTS_H
17 #define LIBPQ_EVENTS_H
18 
19 #include "libpq-fe.h"
20 
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif
25 
26 /* Callback Event Ids */
27 typedef enum
28 {
36 
37 typedef struct
38 {
41 
42 typedef struct
43 {
46 
47 typedef struct
48 {
51 
52 typedef struct
53 {
57 
58 typedef struct
59 {
60  const PGresult *src;
63 
64 typedef struct
65 {
68 
69 typedef int (*PGEventProc) (PGEventId evtId, void *evtInfo, void *passThrough);
70 
71 /* Registers an event proc with the given PGconn. */
72 extern int PQregisterEventProc(PGconn *conn, PGEventProc proc,
73  const char *name, void *passThrough);
74 
75 /* Sets the PGconn instance data for the provided proc to data. */
76 extern int PQsetInstanceData(PGconn *conn, PGEventProc proc, void *data);
77 
78 /* Gets the PGconn instance data for the provided proc. */
79 extern void *PQinstanceData(const PGconn *conn, PGEventProc proc);
80 
81 /* Sets the PGresult instance data for the provided proc to data. */
82 extern int PQresultSetInstanceData(PGresult *result, PGEventProc proc, void *data);
83 
84 /* Gets the PGresult instance data for the provided proc. */
85 extern void *PQresultInstanceData(const PGresult *result, PGEventProc proc);
86 
87 /* Fires RESULTCREATE events for an application-created PGresult. */
89 
90 #ifdef __cplusplus
91 }
92 #endif
93 
94 #endif /* LIBPQ_EVENTS_H */
void * PQresultInstanceData(const PGresult *result, PGEventProc proc)
Definition: libpq-events.c:165
PGEventId
Definition: libpq-events.h:28
@ PGEVT_RESULTDESTROY
Definition: libpq-events.h:34
@ PGEVT_RESULTCREATE
Definition: libpq-events.h:32
@ PGEVT_CONNDESTROY
Definition: libpq-events.h:31
@ PGEVT_RESULTCOPY
Definition: libpq-events.h:33
@ PGEVT_CONNRESET
Definition: libpq-events.h:30
@ PGEVT_REGISTER
Definition: libpq-events.h:29
int PQresultSetInstanceData(PGresult *result, PGEventProc proc, void *data)
Definition: libpq-events.c:142
void * PQinstanceData(const PGconn *conn, PGEventProc proc)
Definition: libpq-events.c:121
int PQfireResultCreateEvents(PGconn *conn, PGresult *res)
Definition: libpq-events.c:185
int PQregisterEventProc(PGconn *conn, PGEventProc proc, const char *name, void *passThrough)
Definition: libpq-events.c:40
int(* PGEventProc)(PGEventId evtId, void *evtInfo, void *passThrough)
Definition: libpq-events.h:69
int PQsetInstanceData(PGconn *conn, PGEventProc proc, void *data)
Definition: libpq-events.c:98
const void * data
PGconn * conn
Definition: streamutil.c:55
const PGresult * src
Definition: libpq-events.h:60
PGresult * dest
Definition: libpq-events.h:61
const char * name