pgtclId.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * pgtclId.h
  4.  *
  5.  * Contains Tcl "channel" interface routines, plus useful routines
  6.  * to convert between strings and pointers.  These are needed because
  7.  * everything in Tcl is a string, but in C, pointers to data structures
  8.  * are needed.
  9.  *
  10.  * Copyright (c) 1994, Regents of the University of California
  11.  *
  12.  * $Id: pgtclId.h,v 1.13 1999/05/30 15:22:34 tgl Exp $
  13.  *
  14.  *-------------------------------------------------------------------------
  15.  */
  16. extern void PgSetConnectionId(Tcl_Interp *interp, PGconn *conn);
  17. #if TCL_MAJOR_VERSION == 7 && TCL_MINOR_VERSION == 5
  18. /* Only Tcl 7.5 had drivers with this signature */
  19. #define DRIVER_DEL_PROTO ClientData cData, Tcl_Interp *interp, 
  20. Tcl_File inFile, Tcl_File outFile
  21. #define DRIVER_OUTPUT_PROTO ClientData cData, Tcl_File outFile, char *buf, 
  22. int bufSize, int *errorCodePtr
  23. #define DRIVER_INPUT_PROTO ClientData cData, Tcl_File inFile, char *buf, 
  24. int bufSize, int *errorCodePtr
  25. #else
  26. /* Tcl 7.6 and beyond use this signature */
  27. #define DRIVER_OUTPUT_PROTO ClientData cData, char *buf, int bufSize, 
  28. int *errorCodePtr
  29. #define DRIVER_INPUT_PROTO ClientData cData, char *buf, int bufSize, 
  30. int *errorCodePtr
  31. #define DRIVER_DEL_PROTO ClientData cData, Tcl_Interp *interp
  32. #endif
  33. extern PGconn *PgGetConnectionId(Tcl_Interp *interp, char *id,
  34.   Pg_ConnectionId **);
  35. extern int PgDelConnectionId(DRIVER_DEL_PROTO);
  36. extern int PgOutputProc(DRIVER_OUTPUT_PROTO);
  37. extern int PgInputProc(DRIVER_INPUT_PROTO);
  38. extern int PgSetResultId(Tcl_Interp *interp, char *connid, PGresult *res);
  39. extern PGresult *PgGetResultId(Tcl_Interp *interp, char *id);
  40. extern void PgDelResultId(Tcl_Interp *interp, char *id);
  41. extern int PgGetConnByResultId(Tcl_Interp *interp, char *resid);
  42. extern void PgStartNotifyEventSource(Pg_ConnectionId *connid);
  43. extern void PgStopNotifyEventSource(Pg_ConnectionId *connid);
  44. extern void PgNotifyTransferEvents(Pg_ConnectionId *connid);
  45. extern void PgNotifyInterpDelete(ClientData clientData, Tcl_Interp *interp);
  46. /* GetFileProc is needed in Tcl 7.6 *only* ... it went away again in 8.0 */
  47. #if TCL_MAJOR_VERSION == 7 && TCL_MINOR_VERSION >= 6
  48. #define HAVE_TCL_GETFILEPROC 1
  49. #else
  50. #define HAVE_TCL_GETFILEPROC 0
  51. #endif
  52. #if HAVE_TCL_GETFILEPROC
  53. extern Tcl_File PgGetFileProc(ClientData cData, int direction);
  54. #endif
  55. extern Tcl_ChannelType Pg_ConnType;