|
123 | 123 | blr_ex_time_tz = 30
|
124 | 124 | blr_ex_timestamp_tz = 31
|
125 | 125 |
|
| 126 | +# Masks for fb_shutdown_callback |
| 127 | +fb_shut_confirmation = 1 |
| 128 | +fb_shut_preproviders = 2 |
| 129 | +fb_shut_postproviders = 4 |
| 130 | +fb_shut_finish = 8 |
| 131 | +fb_shut_exit = 16 |
| 132 | + |
| 133 | +# Shutdown reasons, used by engine |
| 134 | +fb_shutrsn_svc_stopped = -1 |
| 135 | +fb_shutrsn_no_connection = -2 |
| 136 | +fb_shutrsn_app_stopped = -3 |
| 137 | +fb_shutrsn_signal = -5 |
| 138 | +fb_shutrsn_services = -6 |
| 139 | +fb_shutrsn_exit_called = -7 |
| 140 | +fb_shutrsn_emergency = -8 |
| 141 | + |
126 | 142 | if platform.architecture() == ('64bit', 'WindowsPE'): # pragma: no cover
|
127 | 143 | intptr_t = c_longlong
|
128 | 144 | uintptr_t = c_ulonglong
|
@@ -238,6 +254,7 @@ class ISC_QUAD(Structure):
|
238 | 254 |
|
239 | 255 | RESULT_VECTOR = ISC_ULONG * 15
|
240 | 256 | ISC_EVENT_CALLBACK = CFUNCTYPE(None, POINTER(ISC_UCHAR), c_ushort, POINTER(ISC_UCHAR))
|
| 257 | +FB_SHUTDOWN_CALLBACK = CFUNCTYPE(c_int, c_int, c_int, c_void_p) |
241 | 258 |
|
242 | 259 | # >>> Firebird 4
|
243 | 260 | class ISC_TIME_TZ(Structure):
|
@@ -1951,6 +1968,13 @@ def __init__(self, filename: Path = None):
|
1951 | 1968 | self.fb_sqlstate.restype = None
|
1952 | 1969 | self.fb_sqlstate.argtypes = [STRING, ISC_STATUS_PTR]
|
1953 | 1970 | #
|
| 1971 | + self.fb_shutdown_callback = self.client_library.fb_shutdown_callback |
| 1972 | + self.fb_shutdown_callback.restype = ISC_STATUS |
| 1973 | + self.fb_shutdown_callback.argtypes = [ISC_STATUS_PTR, |
| 1974 | + FB_SHUTDOWN_CALLBACK, |
| 1975 | + c_int, |
| 1976 | + c_void_p] |
| 1977 | + # |
1954 | 1978 | self.isc_sqlcode = self.client_library.isc_sqlcode
|
1955 | 1979 | self.isc_sqlcode.restype = ISC_LONG
|
1956 | 1980 | self.isc_sqlcode.argtypes = [ISC_STATUS_PTR]
|
|
0 commit comments