mirror of
https://github.com/simtactics/niotso.git
synced 2025-03-21 18:51:20 +00:00
95 lines
2.2 KiB
C
95 lines
2.2 KiB
C
|
/*-------------------------------------------------------------------------
|
||
|
*
|
||
|
* libpq-events.h
|
||
|
* This file contains definitions that are useful to applications
|
||
|
* that invoke the libpq "events" API, but are not interesting to
|
||
|
* ordinary users of libpq.
|
||
|
*
|
||
|
* Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
|
||
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||
|
*
|
||
|
* src/interfaces/libpq/libpq-events.h
|
||
|
*
|
||
|
*-------------------------------------------------------------------------
|
||
|
*/
|
||
|
|
||
|
#ifndef LIBPQ_EVENTS_H
|
||
|
#define LIBPQ_EVENTS_H
|
||
|
|
||
|
#include "libpq-fe.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"
|
||
|
{
|
||
|
#endif
|
||
|
|
||
|
/* Callback Event Ids */
|
||
|
typedef enum
|
||
|
{
|
||
|
PGEVT_REGISTER,
|
||
|
PGEVT_CONNRESET,
|
||
|
PGEVT_CONNDESTROY,
|
||
|
PGEVT_RESULTCREATE,
|
||
|
PGEVT_RESULTCOPY,
|
||
|
PGEVT_RESULTDESTROY
|
||
|
} PGEventId;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
PGconn *conn;
|
||
|
} PGEventRegister;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
PGconn *conn;
|
||
|
} PGEventConnReset;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
PGconn *conn;
|
||
|
} PGEventConnDestroy;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
PGconn *conn;
|
||
|
PGresult *result;
|
||
|
} PGEventResultCreate;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
const PGresult *src;
|
||
|
PGresult *dest;
|
||
|
} PGEventResultCopy;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
PGresult *result;
|
||
|
} PGEventResultDestroy;
|
||
|
|
||
|
typedef int (*PGEventProc) (PGEventId evtId, void *evtInfo, void *passThrough);
|
||
|
|
||
|
/* Registers an event proc with the given PGconn. */
|
||
|
extern int PQregisterEventProc(PGconn *conn, PGEventProc proc,
|
||
|
const char *name, void *passThrough);
|
||
|
|
||
|
/* Sets the PGconn instance data for the provided proc to data. */
|
||
|
extern int PQsetInstanceData(PGconn *conn, PGEventProc proc, void *data);
|
||
|
|
||
|
/* Gets the PGconn instance data for the provided proc. */
|
||
|
extern void *PQinstanceData(const PGconn *conn, PGEventProc proc);
|
||
|
|
||
|
/* Sets the PGresult instance data for the provided proc to data. */
|
||
|
extern int PQresultSetInstanceData(PGresult *result, PGEventProc proc, void *data);
|
||
|
|
||
|
/* Gets the PGresult instance data for the provided proc. */
|
||
|
extern void *PQresultInstanceData(const PGresult *result, PGEventProc proc);
|
||
|
|
||
|
/* Fires RESULTCREATE events for an application-created PGresult. */
|
||
|
extern int PQfireResultCreateEvents(PGconn *conn, PGresult *res);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* LIBPQ_EVENTS_H */
|