Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef LIBPQ_EVENTS_H
00017 #define LIBPQ_EVENTS_H
00018
00019 #include "libpq-fe.h"
00020
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025
00026
00027 typedef enum
00028 {
00029 PGEVT_REGISTER,
00030 PGEVT_CONNRESET,
00031 PGEVT_CONNDESTROY,
00032 PGEVT_RESULTCREATE,
00033 PGEVT_RESULTCOPY,
00034 PGEVT_RESULTDESTROY
00035 } PGEventId;
00036
00037 typedef struct
00038 {
00039 PGconn *conn;
00040 } PGEventRegister;
00041
00042 typedef struct
00043 {
00044 PGconn *conn;
00045 } PGEventConnReset;
00046
00047 typedef struct
00048 {
00049 PGconn *conn;
00050 } PGEventConnDestroy;
00051
00052 typedef struct
00053 {
00054 PGconn *conn;
00055 PGresult *result;
00056 } PGEventResultCreate;
00057
00058 typedef struct
00059 {
00060 const PGresult *src;
00061 PGresult *dest;
00062 } PGEventResultCopy;
00063
00064 typedef struct
00065 {
00066 PGresult *result;
00067 } PGEventResultDestroy;
00068
00069 typedef int (*PGEventProc) (PGEventId evtId, void *evtInfo, void *passThrough);
00070
00071
00072 extern int PQregisterEventProc(PGconn *conn, PGEventProc proc,
00073 const char *name, void *passThrough);
00074
00075
00076 extern int PQsetInstanceData(PGconn *conn, PGEventProc proc, void *data);
00077
00078
00079 extern void *PQinstanceData(const PGconn *conn, PGEventProc proc);
00080
00081
00082 extern int PQresultSetInstanceData(PGresult *result, PGEventProc proc, void *data);
00083
00084
00085 extern void *PQresultInstanceData(const PGresult *result, PGEventProc proc);
00086
00087
00088 extern int PQfireResultCreateEvents(PGconn *conn, PGresult *res);
00089
00090 #ifdef __cplusplus
00091 }
00092 #endif
00093
00094 #endif