PQregisterEventProc
功能描述
用libpq注册一个事件回调过程。
接口原型
int PQregisterEventProc(PGconn *conn, PGEventProc proc, const char *name, void *passThrough);
参数说明
参数 | 描述 |
---|---|
conn | 建立连接时返回的连接结构体指针,该指针用于标识某个特定连接。 |
proc | 指定接收事件的回调函数。 |
name | 错误消息中的事件过程名称,不可为null或空串,名字字符串被拷贝到PGconn中,因此name随后可以释放,不需要考虑生命周期的问题。 |
passThrough | 当事件发生时被传递到proc回调函数的参数,可以为NULL。 |
返回值
对于希望接收到的事件,在每个PGconn中必须注册一次事件过程。只要内存够用,对于一次连接注册的事件过程个数没有限制。如果成功,则返回非零值,否则返回零。
其他
每一个已注册的事件处理器与两部分数据相关,对于libpq它们只是透明的void *指针。当事件处理器被注册到一个PGconn连接时,会有一个应用提供的passThrough指针。该转移指针在PGconn及其产生的所有PGresult的生命期内都不会改变。因此,如果使用它,它必须指向长期存在的数据。此外,还有一个instance data指针,它在每一个PGconn和PGresult中都开始于NULL。这个指针可以使用 后续将要说明的PQinstanceData, PQsetInstanceData, PQresultInstanceData 和 PQsetResultInstanceData函数操纵。