ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/client/3.0/firebird/Firebird.pas
Revision: 345
Committed: Mon Aug 23 14:22:29 2021 UTC (2 years, 8 months ago) by tony
Content type: text/x-pascal
File size: 526960 byte(s)
Log Message:
Merged into public release

File Contents

# User Rev Content
1 tony 45 { This file was autogenerated by cloop - Cross Language Object Oriented Programming }
2    
3 tony 315 {Note that for use with IBX, type TISC_QUAD is used instead of ISC_QUAD. TISC_QUAD is
4 tony 45 sourced from unit IB
5    
6 tony 345 Common types moved to IBExternals.
7    
8     BytePtr is now type equivalent to PByte.
9 tony 45
10 tony 315 Use of FBException is now conditional and not used for IBX.
11    
12 tony 45 constants removed and imported separately into IB.pas
13 tony 315
14     Commented out:
15    
16     function fb_get_master_interface : IMaster; cdecl; external 'fbclient';
17    
18     This is not an appropriate external function declaration for a dynamic link library and only applies to a static library.
19    
20     When testing with FPC, if this line was not commented out, a linker error occurs when trying to link with the debug heap
21     manager (needed for testing for memory leaks).
22 tony 45 }
23    
24 tony 345 { $DEFINE USEFBEXCEPTION}
25    
26 tony 315 {$IFDEF MSWINDOWS}
27     {$DEFINE WINDOWS}
28 tony 56 {$ENDIF}
29 tony 45
30     {$IFDEF FPC}
31 tony 209 {$MODE DELPHI}
32     {$OBJECTCHECKS OFF}
33 tony 45 {$ENDIF}
34    
35 tony 315 unit Firebird;
36    
37 tony 209 interface
38    
39 tony 315 uses Classes, SysUtils, IB, IBExternals;
40 tony 45
41     type
42     {$IFNDEF FPC}
43     QWord = UInt64;
44     {$ENDIF}
45    
46     IVersioned = class;
47     IReferenceCounted = class;
48     IDisposable = class;
49     IStatus = class;
50     IMaster = class;
51     IPluginBase = class;
52     IPluginSet = class;
53     IConfigEntry = class;
54     IConfig = class;
55     IFirebirdConf = class;
56     IPluginConfig = class;
57     IPluginFactory = class;
58     IPluginModule = class;
59     IPluginManager = class;
60     ICryptKey = class;
61     IConfigManager = class;
62     IEventCallback = class;
63     IBlob = class;
64     ITransaction = class;
65     IMessageMetadata = class;
66     IMetadataBuilder = class;
67     IResultSet = class;
68     IStatement = class;
69 tony 315 IBatch = class;
70     IBatchCompletionState = class;
71     IReplicator = class;
72 tony 45 IRequest = class;
73     IEvents = class;
74     IAttachment = class;
75     IService = class;
76     IProvider = class;
77     IDtcStart = class;
78     IDtc = class;
79     IAuth = class;
80     IWriter = class;
81     IServerBlock = class;
82     IClientBlock = class;
83     IServer = class;
84     IClient = class;
85     IUserField = class;
86     ICharUserField = class;
87     IIntUserField = class;
88     IUser = class;
89     IListUsers = class;
90     ILogonInfo = class;
91     IManagement = class;
92 tony 315 IAuthBlock = class;
93 tony 45 IWireCryptPlugin = class;
94     ICryptKeyCallback = class;
95     IKeyHolderPlugin = class;
96 tony 315 IDbCryptInfo = class;
97 tony 45 IDbCryptPlugin = class;
98     IExternalContext = class;
99     IExternalResultSet = class;
100     IExternalFunction = class;
101     IExternalProcedure = class;
102     IExternalTrigger = class;
103     IRoutineMetadata = class;
104     IExternalEngine = class;
105     ITimer = class;
106     ITimerControl = class;
107     IVersionCallback = class;
108     IUtil = class;
109     IOffsetsCallback = class;
110     IXpbBuilder = class;
111     ITraceConnection = class;
112     ITraceDatabaseConnection = class;
113     ITraceTransaction = class;
114     ITraceParams = class;
115     ITraceStatement = class;
116     ITraceSQLStatement = class;
117     ITraceBLRStatement = class;
118     ITraceDYNRequest = class;
119     ITraceContextVariable = class;
120     ITraceProcedure = class;
121     ITraceFunction = class;
122     ITraceTrigger = class;
123     ITraceServiceConnection = class;
124     ITraceStatusVector = class;
125     ITraceSweepInfo = class;
126     ITraceLogWriter = class;
127     ITraceInitInfo = class;
128     ITracePlugin = class;
129     ITraceFactory = class;
130     IUdrFunctionFactory = class;
131     IUdrProcedureFactory = class;
132     IUdrTriggerFactory = class;
133     IUdrPlugin = class;
134 tony 315 IDecFloat16 = class;
135     IDecFloat34 = class;
136     IInt128 = class;
137     IReplicatedField = class;
138     IReplicatedRecord = class;
139     IReplicatedTransaction = class;
140     IReplicatedSession = class;
141 tony 45
142 tony 315 FbException = class(Exception)
143 tony 45 public
144     constructor create(status: IStatus); virtual;
145     destructor Destroy(); override;
146    
147     function getStatus: IStatus;
148    
149     class procedure checkException(status: IStatus);
150     class procedure catchException(status: IStatus; e: Exception);
151    
152     private
153     status: IStatus;
154     end;
155    
156 tony 315 isc_tr_handle = ^Integer;
157     isc_stmt_handle = ^Integer;
158 tony 45
159     ntrace_relation_t = Integer;
160     TraceCounts = Record
161     trc_relation_id : ntrace_relation_t;
162     trc_relation_name : PAnsiChar;
163     trc_counters : ^Int64;
164     end;
165     TraceCountsPtr = ^TraceCounts;
166     PerformanceInfo = Record
167     pin_time : Int64;
168     pin_counters : ^Int64;
169     pin_count : NativeUInt;
170     pin_tables : TraceCountsPtr;
171     pin_records_fetched : Int64;
172     end;
173    
174     Dsc = Record
175     dsc_dtype, dsc_scale: Byte;
176     dsc_length, dsc_sub_type, dsc_flags: Int16;
177     dsc_address: ^Byte;
178     end;
179     BooleanPtr = ^Boolean;
180 tony 345 BytePtr = PByte;
181 tony 45 CardinalPtr = ^Cardinal;
182 tony 315 FB_DEC16Ptr = ^FB_DEC16;
183     FB_DEC34Ptr = ^FB_DEC34;
184     FB_I128Ptr = ^FB_I128;
185 tony 45 IKeyHolderPluginPtr = ^IKeyHolderPlugin;
186 tony 315 ISC_QUADPtr = ^TISC_QUAD;
187     ISC_TIMESTAMP_TZPtr = ^ISC_TIMESTAMP_TZ;
188     ISC_TIMESTAMP_TZ_EXPtr = ^ISC_TIMESTAMP_TZ_EX;
189     ISC_TIME_TZPtr = ^ISC_TIME_TZ;
190     ISC_TIME_TZ_EXPtr = ^ISC_TIME_TZ_EX;
191 tony 45 Int64Ptr = ^Int64;
192 tony 315 IntegerPtr = ^Integer;
193 tony 45 NativeIntPtr = ^NativeInt;
194     PerformanceInfoPtr = ^PerformanceInfo;
195     dscPtr = ^dsc;
196    
197     IReferenceCounted_addRefPtr = procedure(this: IReferenceCounted); cdecl;
198     IReferenceCounted_releasePtr = function(this: IReferenceCounted): Integer; cdecl;
199     IDisposable_disposePtr = procedure(this: IDisposable); cdecl;
200     IStatus_initPtr = procedure(this: IStatus); cdecl;
201     IStatus_getStatePtr = function(this: IStatus): Cardinal; cdecl;
202     IStatus_setErrors2Ptr = procedure(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
203     IStatus_setWarnings2Ptr = procedure(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
204     IStatus_setErrorsPtr = procedure(this: IStatus; value: NativeIntPtr); cdecl;
205     IStatus_setWarningsPtr = procedure(this: IStatus; value: NativeIntPtr); cdecl;
206     IStatus_getErrorsPtr = function(this: IStatus): NativeIntPtr; cdecl;
207     IStatus_getWarningsPtr = function(this: IStatus): NativeIntPtr; cdecl;
208     IStatus_clonePtr = function(this: IStatus): IStatus; cdecl;
209     IMaster_getStatusPtr = function(this: IMaster): IStatus; cdecl;
210     IMaster_getDispatcherPtr = function(this: IMaster): IProvider; cdecl;
211     IMaster_getPluginManagerPtr = function(this: IMaster): IPluginManager; cdecl;
212     IMaster_getTimerControlPtr = function(this: IMaster): ITimerControl; cdecl;
213     IMaster_getDtcPtr = function(this: IMaster): IDtc; cdecl;
214     IMaster_registerAttachmentPtr = function(this: IMaster; provider: IProvider; attachment: IAttachment): IAttachment; cdecl;
215     IMaster_registerTransactionPtr = function(this: IMaster; attachment: IAttachment; transaction: ITransaction): ITransaction; cdecl;
216     IMaster_getMetadataBuilderPtr = function(this: IMaster; status: IStatus; fieldCount: Cardinal): IMetadataBuilder; cdecl;
217     IMaster_serverModePtr = function(this: IMaster; mode: Integer): Integer; cdecl;
218     IMaster_getUtilInterfacePtr = function(this: IMaster): IUtil; cdecl;
219     IMaster_getConfigManagerPtr = function(this: IMaster): IConfigManager; cdecl;
220     IMaster_getProcessExitingPtr = function(this: IMaster): Boolean; cdecl;
221     IPluginBase_setOwnerPtr = procedure(this: IPluginBase; r: IReferenceCounted); cdecl;
222     IPluginBase_getOwnerPtr = function(this: IPluginBase): IReferenceCounted; cdecl;
223     IPluginSet_getNamePtr = function(this: IPluginSet): PAnsiChar; cdecl;
224     IPluginSet_getModuleNamePtr = function(this: IPluginSet): PAnsiChar; cdecl;
225     IPluginSet_getPluginPtr = function(this: IPluginSet; status: IStatus): IPluginBase; cdecl;
226     IPluginSet_nextPtr = procedure(this: IPluginSet; status: IStatus); cdecl;
227     IPluginSet_set_Ptr = procedure(this: IPluginSet; status: IStatus; s: PAnsiChar); cdecl;
228     IConfigEntry_getNamePtr = function(this: IConfigEntry): PAnsiChar; cdecl;
229     IConfigEntry_getValuePtr = function(this: IConfigEntry): PAnsiChar; cdecl;
230     IConfigEntry_getIntValuePtr = function(this: IConfigEntry): Int64; cdecl;
231     IConfigEntry_getBoolValuePtr = function(this: IConfigEntry): Boolean; cdecl;
232     IConfigEntry_getSubConfigPtr = function(this: IConfigEntry; status: IStatus): IConfig; cdecl;
233     IConfig_findPtr = function(this: IConfig; status: IStatus; name: PAnsiChar): IConfigEntry; cdecl;
234     IConfig_findValuePtr = function(this: IConfig; status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; cdecl;
235     IConfig_findPosPtr = function(this: IConfig; status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; cdecl;
236     IFirebirdConf_getKeyPtr = function(this: IFirebirdConf; name: PAnsiChar): Cardinal; cdecl;
237     IFirebirdConf_asIntegerPtr = function(this: IFirebirdConf; key: Cardinal): Int64; cdecl;
238     IFirebirdConf_asStringPtr = function(this: IFirebirdConf; key: Cardinal): PAnsiChar; cdecl;
239     IFirebirdConf_asBooleanPtr = function(this: IFirebirdConf; key: Cardinal): Boolean; cdecl;
240 tony 315 IFirebirdConf_getVersionPtr = function(this: IFirebirdConf; status: IStatus): Cardinal; cdecl;
241 tony 45 IPluginConfig_getConfigFileNamePtr = function(this: IPluginConfig): PAnsiChar; cdecl;
242     IPluginConfig_getDefaultConfigPtr = function(this: IPluginConfig; status: IStatus): IConfig; cdecl;
243     IPluginConfig_getFirebirdConfPtr = function(this: IPluginConfig; status: IStatus): IFirebirdConf; cdecl;
244     IPluginConfig_setReleaseDelayPtr = procedure(this: IPluginConfig; status: IStatus; microSeconds: QWord); cdecl;
245     IPluginFactory_createPluginPtr = function(this: IPluginFactory; status: IStatus; factoryParameter: IPluginConfig): IPluginBase; cdecl;
246     IPluginModule_doCleanPtr = procedure(this: IPluginModule); cdecl;
247 tony 315 IPluginModule_threadDetachPtr = procedure(this: IPluginModule); cdecl;
248 tony 45 IPluginManager_registerPluginFactoryPtr = procedure(this: IPluginManager; pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); cdecl;
249     IPluginManager_registerModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
250     IPluginManager_unregisterModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
251     IPluginManager_getPluginsPtr = function(this: IPluginManager; status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; cdecl;
252     IPluginManager_getConfigPtr = function(this: IPluginManager; status: IStatus; filename: PAnsiChar): IConfig; cdecl;
253     IPluginManager_releasePluginPtr = procedure(this: IPluginManager; plugin: IPluginBase); cdecl;
254     ICryptKey_setSymmetricPtr = procedure(this: ICryptKey; status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); cdecl;
255     ICryptKey_setAsymmetricPtr = procedure(this: ICryptKey; status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); cdecl;
256     ICryptKey_getEncryptKeyPtr = function(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
257     ICryptKey_getDecryptKeyPtr = function(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
258     IConfigManager_getDirectoryPtr = function(this: IConfigManager; code: Cardinal): PAnsiChar; cdecl;
259     IConfigManager_getFirebirdConfPtr = function(this: IConfigManager): IFirebirdConf; cdecl;
260     IConfigManager_getDatabaseConfPtr = function(this: IConfigManager; dbName: PAnsiChar): IFirebirdConf; cdecl;
261     IConfigManager_getPluginConfigPtr = function(this: IConfigManager; configuredPlugin: PAnsiChar): IConfig; cdecl;
262     IConfigManager_getInstallDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
263     IConfigManager_getRootDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
264 tony 315 IConfigManager_getDefaultSecurityDbPtr = function(this: IConfigManager): PAnsiChar; cdecl;
265 tony 45 IEventCallback_eventCallbackFunctionPtr = procedure(this: IEventCallback; length: Cardinal; events: BytePtr); cdecl;
266     IBlob_getInfoPtr = procedure(this: IBlob; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
267     IBlob_getSegmentPtr = function(this: IBlob; status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; cdecl;
268     IBlob_putSegmentPtr = procedure(this: IBlob; status: IStatus; length: Cardinal; buffer: Pointer); cdecl;
269     IBlob_cancelPtr = procedure(this: IBlob; status: IStatus); cdecl;
270     IBlob_closePtr = procedure(this: IBlob; status: IStatus); cdecl;
271     IBlob_seekPtr = function(this: IBlob; status: IStatus; mode: Integer; offset: Integer): Integer; cdecl;
272     ITransaction_getInfoPtr = procedure(this: ITransaction; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
273     ITransaction_preparePtr = procedure(this: ITransaction; status: IStatus; msgLength: Cardinal; message: BytePtr); cdecl;
274     ITransaction_commitPtr = procedure(this: ITransaction; status: IStatus); cdecl;
275     ITransaction_commitRetainingPtr = procedure(this: ITransaction; status: IStatus); cdecl;
276     ITransaction_rollbackPtr = procedure(this: ITransaction; status: IStatus); cdecl;
277     ITransaction_rollbackRetainingPtr = procedure(this: ITransaction; status: IStatus); cdecl;
278     ITransaction_disconnectPtr = procedure(this: ITransaction; status: IStatus); cdecl;
279     ITransaction_joinPtr = function(this: ITransaction; status: IStatus; transaction: ITransaction): ITransaction; cdecl;
280     ITransaction_validatePtr = function(this: ITransaction; status: IStatus; attachment: IAttachment): ITransaction; cdecl;
281     ITransaction_enterDtcPtr = function(this: ITransaction; status: IStatus): ITransaction; cdecl;
282     IMessageMetadata_getCountPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
283     IMessageMetadata_getFieldPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
284     IMessageMetadata_getRelationPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
285     IMessageMetadata_getOwnerPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
286     IMessageMetadata_getAliasPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
287     IMessageMetadata_getTypePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
288     IMessageMetadata_isNullablePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Boolean; cdecl;
289     IMessageMetadata_getSubTypePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
290     IMessageMetadata_getLengthPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
291     IMessageMetadata_getScalePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
292     IMessageMetadata_getCharSetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
293     IMessageMetadata_getOffsetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
294     IMessageMetadata_getNullOffsetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
295     IMessageMetadata_getBuilderPtr = function(this: IMessageMetadata; status: IStatus): IMetadataBuilder; cdecl;
296     IMessageMetadata_getMessageLengthPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
297 tony 315 IMessageMetadata_getAlignmentPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
298     IMessageMetadata_getAlignedLengthPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
299 tony 45 IMetadataBuilder_setTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; type_: Cardinal); cdecl;
300     IMetadataBuilder_setSubTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; subType: Integer); cdecl;
301     IMetadataBuilder_setLengthPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; length: Cardinal); cdecl;
302     IMetadataBuilder_setCharSetPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; charSet: Cardinal); cdecl;
303 tony 315 IMetadataBuilder_setScalePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: Integer); cdecl;
304 tony 45 IMetadataBuilder_truncatePtr = procedure(this: IMetadataBuilder; status: IStatus; count: Cardinal); cdecl;
305     IMetadataBuilder_moveNameToIndexPtr = procedure(this: IMetadataBuilder; status: IStatus; name: PAnsiChar; index: Cardinal); cdecl;
306     IMetadataBuilder_removePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal); cdecl;
307     IMetadataBuilder_addFieldPtr = function(this: IMetadataBuilder; status: IStatus): Cardinal; cdecl;
308     IMetadataBuilder_getMetadataPtr = function(this: IMetadataBuilder; status: IStatus): IMessageMetadata; cdecl;
309 tony 315 IMetadataBuilder_setFieldPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; field: PAnsiChar); cdecl;
310     IMetadataBuilder_setRelationPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; relation: PAnsiChar); cdecl;
311     IMetadataBuilder_setOwnerPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; owner: PAnsiChar); cdecl;
312     IMetadataBuilder_setAliasPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; alias: PAnsiChar); cdecl;
313 tony 45 IResultSet_fetchNextPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
314     IResultSet_fetchPriorPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
315     IResultSet_fetchFirstPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
316     IResultSet_fetchLastPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
317     IResultSet_fetchAbsolutePtr = function(this: IResultSet; status: IStatus; position: Integer; message: Pointer): Integer; cdecl;
318     IResultSet_fetchRelativePtr = function(this: IResultSet; status: IStatus; offset: Integer; message: Pointer): Integer; cdecl;
319     IResultSet_isEofPtr = function(this: IResultSet; status: IStatus): Boolean; cdecl;
320     IResultSet_isBofPtr = function(this: IResultSet; status: IStatus): Boolean; cdecl;
321     IResultSet_getMetadataPtr = function(this: IResultSet; status: IStatus): IMessageMetadata; cdecl;
322     IResultSet_closePtr = procedure(this: IResultSet; status: IStatus); cdecl;
323     IResultSet_setDelayedOutputFormatPtr = procedure(this: IResultSet; status: IStatus; format: IMessageMetadata); cdecl;
324     IStatement_getInfoPtr = procedure(this: IStatement; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
325     IStatement_getTypePtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
326     IStatement_getPlanPtr = function(this: IStatement; status: IStatus; detailed: Boolean): PAnsiChar; cdecl;
327     IStatement_getAffectedRecordsPtr = function(this: IStatement; status: IStatus): QWord; cdecl;
328     IStatement_getInputMetadataPtr = function(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
329     IStatement_getOutputMetadataPtr = function(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
330     IStatement_executePtr = function(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
331     IStatement_openCursorPtr = function(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; cdecl;
332     IStatement_setCursorNamePtr = procedure(this: IStatement; status: IStatus; name: PAnsiChar); cdecl;
333     IStatement_freePtr = procedure(this: IStatement; status: IStatus); cdecl;
334     IStatement_getFlagsPtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
335 tony 315 IStatement_getTimeoutPtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
336     IStatement_setTimeoutPtr = procedure(this: IStatement; status: IStatus; timeOut: Cardinal); cdecl;
337     IStatement_createBatchPtr = function(this: IStatement; status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
338     IBatch_addPtr = procedure(this: IBatch; status: IStatus; count: Cardinal; inBuffer: Pointer); cdecl;
339     IBatch_addBlobPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); cdecl;
340     IBatch_appendBlobDataPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
341     IBatch_addBlobStreamPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
342     IBatch_registerBlobPtr = procedure(this: IBatch; status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); cdecl;
343     IBatch_executePtr = function(this: IBatch; status: IStatus; transaction: ITransaction): IBatchCompletionState; cdecl;
344     IBatch_cancelPtr = procedure(this: IBatch; status: IStatus); cdecl;
345     IBatch_getBlobAlignmentPtr = function(this: IBatch; status: IStatus): Cardinal; cdecl;
346     IBatch_getMetadataPtr = function(this: IBatch; status: IStatus): IMessageMetadata; cdecl;
347     IBatch_setDefaultBpbPtr = procedure(this: IBatch; status: IStatus; parLength: Cardinal; par: BytePtr); cdecl;
348 tony 345 IBatch_closePtr = procedure(this: IBatch; status: IStatus); cdecl;
349 tony 315 IBatchCompletionState_getSizePtr = function(this: IBatchCompletionState; status: IStatus): Cardinal; cdecl;
350     IBatchCompletionState_getStatePtr = function(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Integer; cdecl;
351     IBatchCompletionState_findErrorPtr = function(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Cardinal; cdecl;
352     IBatchCompletionState_getStatusPtr = procedure(this: IBatchCompletionState; status: IStatus; to_: IStatus; pos: Cardinal); cdecl;
353     IReplicator_processPtr = procedure(this: IReplicator; status: IStatus; length: Cardinal; data: BytePtr); cdecl;
354     IReplicator_closePtr = procedure(this: IReplicator; status: IStatus); cdecl;
355     IRequest_receivePtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
356     IRequest_sendPtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
357 tony 45 IRequest_getInfoPtr = procedure(this: IRequest; status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
358     IRequest_startPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer); cdecl;
359 tony 315 IRequest_startAndSendPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
360 tony 45 IRequest_unwindPtr = procedure(this: IRequest; status: IStatus; level: Integer); cdecl;
361     IRequest_freePtr = procedure(this: IRequest; status: IStatus); cdecl;
362     IEvents_cancelPtr = procedure(this: IEvents; status: IStatus); cdecl;
363     IAttachment_getInfoPtr = procedure(this: IAttachment; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
364     IAttachment_startTransactionPtr = function(this: IAttachment; status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; cdecl;
365     IAttachment_reconnectTransactionPtr = function(this: IAttachment; status: IStatus; length: Cardinal; id: BytePtr): ITransaction; cdecl;
366     IAttachment_compileRequestPtr = function(this: IAttachment; status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; cdecl;
367     IAttachment_transactRequestPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); cdecl;
368 tony 315 IAttachment_createBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
369     IAttachment_openBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
370     IAttachment_getSlicePtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
371     IAttachment_putSlicePtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
372 tony 45 IAttachment_executeDynPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); cdecl;
373     IAttachment_preparePtr = function(this: IAttachment; status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; cdecl;
374     IAttachment_executePtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
375     IAttachment_openCursorPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; cdecl;
376     IAttachment_queEventsPtr = function(this: IAttachment; status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; cdecl;
377     IAttachment_cancelOperationPtr = procedure(this: IAttachment; status: IStatus; option: Integer); cdecl;
378     IAttachment_pingPtr = procedure(this: IAttachment; status: IStatus); cdecl;
379     IAttachment_detachPtr = procedure(this: IAttachment; status: IStatus); cdecl;
380     IAttachment_dropDatabasePtr = procedure(this: IAttachment; status: IStatus); cdecl;
381 tony 315 IAttachment_getIdleTimeoutPtr = function(this: IAttachment; status: IStatus): Cardinal; cdecl;
382     IAttachment_setIdleTimeoutPtr = procedure(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
383     IAttachment_getStatementTimeoutPtr = function(this: IAttachment; status: IStatus): Cardinal; cdecl;
384     IAttachment_setStatementTimeoutPtr = procedure(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
385     IAttachment_createBatchPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
386     IAttachment_createReplicatorPtr = function(this: IAttachment; status: IStatus): IReplicator; cdecl;
387 tony 45 IService_detachPtr = procedure(this: IService; status: IStatus); cdecl;
388     IService_queryPtr = procedure(this: IService; status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
389     IService_startPtr = procedure(this: IService; status: IStatus; spbLength: Cardinal; spb: BytePtr); cdecl;
390     IProvider_attachDatabasePtr = function(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
391     IProvider_createDatabasePtr = function(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
392     IProvider_attachServiceManagerPtr = function(this: IProvider; status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; cdecl;
393     IProvider_shutdownPtr = procedure(this: IProvider; status: IStatus; timeout: Cardinal; reason: Integer); cdecl;
394     IProvider_setDbCryptCallbackPtr = procedure(this: IProvider; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
395     IDtcStart_addAttachmentPtr = procedure(this: IDtcStart; status: IStatus; att: IAttachment); cdecl;
396     IDtcStart_addWithTpbPtr = procedure(this: IDtcStart; status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); cdecl;
397     IDtcStart_startPtr = function(this: IDtcStart; status: IStatus): ITransaction; cdecl;
398     IDtc_joinPtr = function(this: IDtc; status: IStatus; one: ITransaction; two: ITransaction): ITransaction; cdecl;
399     IDtc_startBuilderPtr = function(this: IDtc; status: IStatus): IDtcStart; cdecl;
400     IWriter_resetPtr = procedure(this: IWriter); cdecl;
401     IWriter_addPtr = procedure(this: IWriter; status: IStatus; name: PAnsiChar); cdecl;
402     IWriter_setTypePtr = procedure(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
403     IWriter_setDbPtr = procedure(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
404     IServerBlock_getLoginPtr = function(this: IServerBlock): PAnsiChar; cdecl;
405     IServerBlock_getDataPtr = function(this: IServerBlock; length: CardinalPtr): BytePtr; cdecl;
406     IServerBlock_putDataPtr = procedure(this: IServerBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
407     IServerBlock_newKeyPtr = function(this: IServerBlock; status: IStatus): ICryptKey; cdecl;
408     IClientBlock_getLoginPtr = function(this: IClientBlock): PAnsiChar; cdecl;
409     IClientBlock_getPasswordPtr = function(this: IClientBlock): PAnsiChar; cdecl;
410     IClientBlock_getDataPtr = function(this: IClientBlock; length: CardinalPtr): BytePtr; cdecl;
411     IClientBlock_putDataPtr = procedure(this: IClientBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
412     IClientBlock_newKeyPtr = function(this: IClientBlock; status: IStatus): ICryptKey; cdecl;
413 tony 315 IClientBlock_getAuthBlockPtr = function(this: IClientBlock; status: IStatus): IAuthBlock; cdecl;
414 tony 45 IServer_authenticatePtr = function(this: IServer; status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; cdecl;
415 tony 315 IServer_setDbCryptCallbackPtr = procedure(this: IServer; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
416 tony 45 IClient_authenticatePtr = function(this: IClient; status: IStatus; cBlock: IClientBlock): Integer; cdecl;
417     IUserField_enteredPtr = function(this: IUserField): Integer; cdecl;
418     IUserField_specifiedPtr = function(this: IUserField): Integer; cdecl;
419     IUserField_setEnteredPtr = procedure(this: IUserField; status: IStatus; newValue: Integer); cdecl;
420     ICharUserField_getPtr = function(this: ICharUserField): PAnsiChar; cdecl;
421     ICharUserField_set_Ptr = procedure(this: ICharUserField; status: IStatus; newValue: PAnsiChar); cdecl;
422     IIntUserField_getPtr = function(this: IIntUserField): Integer; cdecl;
423     IIntUserField_set_Ptr = procedure(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
424     IUser_operationPtr = function(this: IUser): Cardinal; cdecl;
425     IUser_userNamePtr = function(this: IUser): ICharUserField; cdecl;
426     IUser_passwordPtr = function(this: IUser): ICharUserField; cdecl;
427     IUser_firstNamePtr = function(this: IUser): ICharUserField; cdecl;
428     IUser_lastNamePtr = function(this: IUser): ICharUserField; cdecl;
429     IUser_middleNamePtr = function(this: IUser): ICharUserField; cdecl;
430     IUser_commentPtr = function(this: IUser): ICharUserField; cdecl;
431     IUser_attributesPtr = function(this: IUser): ICharUserField; cdecl;
432     IUser_activePtr = function(this: IUser): IIntUserField; cdecl;
433     IUser_adminPtr = function(this: IUser): IIntUserField; cdecl;
434     IUser_clearPtr = procedure(this: IUser; status: IStatus); cdecl;
435     IListUsers_listPtr = procedure(this: IListUsers; status: IStatus; user: IUser); cdecl;
436     ILogonInfo_namePtr = function(this: ILogonInfo): PAnsiChar; cdecl;
437     ILogonInfo_rolePtr = function(this: ILogonInfo): PAnsiChar; cdecl;
438     ILogonInfo_networkProtocolPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
439     ILogonInfo_remoteAddressPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
440     ILogonInfo_authBlockPtr = function(this: ILogonInfo; length: CardinalPtr): BytePtr; cdecl;
441 tony 315 ILogonInfo_attachmentPtr = function(this: ILogonInfo; status: IStatus): IAttachment; cdecl;
442     ILogonInfo_transactionPtr = function(this: ILogonInfo; status: IStatus): ITransaction; cdecl;
443 tony 45 IManagement_startPtr = procedure(this: IManagement; status: IStatus; logonInfo: ILogonInfo); cdecl;
444     IManagement_executePtr = function(this: IManagement; status: IStatus; user: IUser; callback: IListUsers): Integer; cdecl;
445     IManagement_commitPtr = procedure(this: IManagement; status: IStatus); cdecl;
446     IManagement_rollbackPtr = procedure(this: IManagement; status: IStatus); cdecl;
447 tony 315 IAuthBlock_getTypePtr = function(this: IAuthBlock): PAnsiChar; cdecl;
448     IAuthBlock_getNamePtr = function(this: IAuthBlock): PAnsiChar; cdecl;
449     IAuthBlock_getPluginPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
450     IAuthBlock_getSecurityDbPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
451     IAuthBlock_getOriginalPluginPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
452     IAuthBlock_nextPtr = function(this: IAuthBlock; status: IStatus): Boolean; cdecl;
453     IAuthBlock_firstPtr = function(this: IAuthBlock; status: IStatus): Boolean; cdecl;
454 tony 45 IWireCryptPlugin_getKnownTypesPtr = function(this: IWireCryptPlugin; status: IStatus): PAnsiChar; cdecl;
455     IWireCryptPlugin_setKeyPtr = procedure(this: IWireCryptPlugin; status: IStatus; key: ICryptKey); cdecl;
456     IWireCryptPlugin_encryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
457     IWireCryptPlugin_decryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
458 tony 315 IWireCryptPlugin_getSpecificDataPtr = function(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; cdecl;
459     IWireCryptPlugin_setSpecificDataPtr = procedure(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); cdecl;
460 tony 45 ICryptKeyCallback_callbackPtr = function(this: ICryptKeyCallback; dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; cdecl;
461     IKeyHolderPlugin_keyCallbackPtr = function(this: IKeyHolderPlugin; status: IStatus; callback: ICryptKeyCallback): Integer; cdecl;
462     IKeyHolderPlugin_keyHandlePtr = function(this: IKeyHolderPlugin; status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; cdecl;
463 tony 315 IKeyHolderPlugin_useOnlyOwnKeysPtr = function(this: IKeyHolderPlugin; status: IStatus): Boolean; cdecl;
464     IKeyHolderPlugin_chainHandlePtr = function(this: IKeyHolderPlugin; status: IStatus): ICryptKeyCallback; cdecl;
465     IDbCryptInfo_getDatabaseFullPathPtr = function(this: IDbCryptInfo; status: IStatus): PAnsiChar; cdecl;
466 tony 45 IDbCryptPlugin_setKeyPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); cdecl;
467     IDbCryptPlugin_encryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
468     IDbCryptPlugin_decryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
469 tony 315 IDbCryptPlugin_setInfoPtr = procedure(this: IDbCryptPlugin; status: IStatus; info: IDbCryptInfo); cdecl;
470 tony 45 IExternalContext_getMasterPtr = function(this: IExternalContext): IMaster; cdecl;
471     IExternalContext_getEnginePtr = function(this: IExternalContext; status: IStatus): IExternalEngine; cdecl;
472     IExternalContext_getAttachmentPtr = function(this: IExternalContext; status: IStatus): IAttachment; cdecl;
473     IExternalContext_getTransactionPtr = function(this: IExternalContext; status: IStatus): ITransaction; cdecl;
474     IExternalContext_getUserNamePtr = function(this: IExternalContext): PAnsiChar; cdecl;
475     IExternalContext_getDatabaseNamePtr = function(this: IExternalContext): PAnsiChar; cdecl;
476     IExternalContext_getClientCharSetPtr = function(this: IExternalContext): PAnsiChar; cdecl;
477     IExternalContext_obtainInfoCodePtr = function(this: IExternalContext): Integer; cdecl;
478     IExternalContext_getInfoPtr = function(this: IExternalContext; code: Integer): Pointer; cdecl;
479     IExternalContext_setInfoPtr = function(this: IExternalContext; code: Integer; value: Pointer): Pointer; cdecl;
480     IExternalResultSet_fetchPtr = function(this: IExternalResultSet; status: IStatus): Boolean; cdecl;
481     IExternalFunction_getCharSetPtr = procedure(this: IExternalFunction; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
482     IExternalFunction_executePtr = procedure(this: IExternalFunction; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); cdecl;
483     IExternalProcedure_getCharSetPtr = procedure(this: IExternalProcedure; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
484     IExternalProcedure_openPtr = function(this: IExternalProcedure; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; cdecl;
485     IExternalTrigger_getCharSetPtr = procedure(this: IExternalTrigger; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
486     IExternalTrigger_executePtr = procedure(this: IExternalTrigger; status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); cdecl;
487     IRoutineMetadata_getPackagePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
488     IRoutineMetadata_getNamePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
489     IRoutineMetadata_getEntryPointPtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
490     IRoutineMetadata_getBodyPtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
491     IRoutineMetadata_getInputMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
492     IRoutineMetadata_getOutputMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
493     IRoutineMetadata_getTriggerMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
494     IRoutineMetadata_getTriggerTablePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
495     IRoutineMetadata_getTriggerTypePtr = function(this: IRoutineMetadata; status: IStatus): Cardinal; cdecl;
496     IExternalEngine_openPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); cdecl;
497     IExternalEngine_openAttachmentPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
498     IExternalEngine_closeAttachmentPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
499     IExternalEngine_makeFunctionPtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; cdecl;
500     IExternalEngine_makeProcedurePtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; cdecl;
501     IExternalEngine_makeTriggerPtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; cdecl;
502     ITimer_handlerPtr = procedure(this: ITimer); cdecl;
503     ITimerControl_startPtr = procedure(this: ITimerControl; status: IStatus; timer: ITimer; microSeconds: QWord); cdecl;
504     ITimerControl_stopPtr = procedure(this: ITimerControl; status: IStatus; timer: ITimer); cdecl;
505     IVersionCallback_callbackPtr = procedure(this: IVersionCallback; status: IStatus; text: PAnsiChar); cdecl;
506     IUtil_getFbVersionPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; callback: IVersionCallback); cdecl;
507 tony 315 IUtil_loadBlobPtr = procedure(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
508     IUtil_dumpBlobPtr = procedure(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
509 tony 45 IUtil_getPerfCountersPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); cdecl;
510     IUtil_executeCreateDatabasePtr = function(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
511     IUtil_decodeDatePtr = procedure(this: IUtil; date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); cdecl;
512     IUtil_decodeTimePtr = procedure(this: IUtil; time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); cdecl;
513     IUtil_encodeDatePtr = function(this: IUtil; year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; cdecl;
514     IUtil_encodeTimePtr = function(this: IUtil; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; cdecl;
515     IUtil_formatStatusPtr = function(this: IUtil; buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; cdecl;
516     IUtil_getClientVersionPtr = function(this: IUtil): Cardinal; cdecl;
517     IUtil_getXpbBuilderPtr = function(this: IUtil; status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; cdecl;
518     IUtil_setOffsetsPtr = function(this: IUtil; status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; cdecl;
519 tony 315 IUtil_getDecFloat16Ptr = function(this: IUtil; status: IStatus): IDecFloat16; cdecl;
520     IUtil_getDecFloat34Ptr = function(this: IUtil; status: IStatus): IDecFloat34; cdecl;
521     IUtil_decodeTimeTzPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
522     IUtil_decodeTimeStampTzPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
523     IUtil_encodeTimeTzPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
524     IUtil_encodeTimeStampTzPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
525     IUtil_getInt128Ptr = function(this: IUtil; status: IStatus): IInt128; cdecl;
526     IUtil_decodeTimeTzExPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
527     IUtil_decodeTimeStampTzExPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
528 tony 45 IOffsetsCallback_setOffsetPtr = procedure(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
529     IXpbBuilder_clearPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
530     IXpbBuilder_removeCurrentPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
531     IXpbBuilder_insertIntPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; value: Integer); cdecl;
532     IXpbBuilder_insertBigIntPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; value: Int64); cdecl;
533     IXpbBuilder_insertBytesPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); cdecl;
534     IXpbBuilder_insertStringPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; str: PAnsiChar); cdecl;
535     IXpbBuilder_insertTagPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte); cdecl;
536     IXpbBuilder_isEofPtr = function(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
537     IXpbBuilder_moveNextPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
538     IXpbBuilder_rewindPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
539     IXpbBuilder_findFirstPtr = function(this: IXpbBuilder; status: IStatus; tag: Byte): Boolean; cdecl;
540     IXpbBuilder_findNextPtr = function(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
541     IXpbBuilder_getTagPtr = function(this: IXpbBuilder; status: IStatus): Byte; cdecl;
542     IXpbBuilder_getLengthPtr = function(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
543     IXpbBuilder_getIntPtr = function(this: IXpbBuilder; status: IStatus): Integer; cdecl;
544     IXpbBuilder_getBigIntPtr = function(this: IXpbBuilder; status: IStatus): Int64; cdecl;
545     IXpbBuilder_getStringPtr = function(this: IXpbBuilder; status: IStatus): PAnsiChar; cdecl;
546     IXpbBuilder_getBytesPtr = function(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
547     IXpbBuilder_getBufferLengthPtr = function(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
548     IXpbBuilder_getBufferPtr = function(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
549     ITraceConnection_getKindPtr = function(this: ITraceConnection): Cardinal; cdecl;
550     ITraceConnection_getProcessIDPtr = function(this: ITraceConnection): Integer; cdecl;
551     ITraceConnection_getUserNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
552     ITraceConnection_getRoleNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
553     ITraceConnection_getCharSetPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
554     ITraceConnection_getRemoteProtocolPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
555     ITraceConnection_getRemoteAddressPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
556     ITraceConnection_getRemoteProcessIDPtr = function(this: ITraceConnection): Integer; cdecl;
557     ITraceConnection_getRemoteProcessNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
558     ITraceDatabaseConnection_getConnectionIDPtr = function(this: ITraceDatabaseConnection): Int64; cdecl;
559     ITraceDatabaseConnection_getDatabaseNamePtr = function(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
560     ITraceTransaction_getTransactionIDPtr = function(this: ITraceTransaction): Int64; cdecl;
561     ITraceTransaction_getReadOnlyPtr = function(this: ITraceTransaction): Boolean; cdecl;
562     ITraceTransaction_getWaitPtr = function(this: ITraceTransaction): Integer; cdecl;
563     ITraceTransaction_getIsolationPtr = function(this: ITraceTransaction): Cardinal; cdecl;
564     ITraceTransaction_getPerfPtr = function(this: ITraceTransaction): PerformanceInfoPtr; cdecl;
565 tony 315 ITraceTransaction_getInitialIDPtr = function(this: ITraceTransaction): Int64; cdecl;
566     ITraceTransaction_getPreviousIDPtr = function(this: ITraceTransaction): Int64; cdecl;
567 tony 45 ITraceParams_getCountPtr = function(this: ITraceParams): Cardinal; cdecl;
568     ITraceParams_getParamPtr = function(this: ITraceParams; idx: Cardinal): dscPtr; cdecl;
569 tony 315 ITraceParams_getTextUTF8Ptr = function(this: ITraceParams; status: IStatus; idx: Cardinal): PAnsiChar; cdecl;
570 tony 45 ITraceStatement_getStmtIDPtr = function(this: ITraceStatement): Int64; cdecl;
571     ITraceStatement_getPerfPtr = function(this: ITraceStatement): PerformanceInfoPtr; cdecl;
572     ITraceSQLStatement_getTextPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
573     ITraceSQLStatement_getPlanPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
574     ITraceSQLStatement_getInputsPtr = function(this: ITraceSQLStatement): ITraceParams; cdecl;
575     ITraceSQLStatement_getTextUTF8Ptr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
576     ITraceSQLStatement_getExplainedPlanPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
577     ITraceBLRStatement_getDataPtr = function(this: ITraceBLRStatement): BytePtr; cdecl;
578     ITraceBLRStatement_getDataLengthPtr = function(this: ITraceBLRStatement): Cardinal; cdecl;
579     ITraceBLRStatement_getTextPtr = function(this: ITraceBLRStatement): PAnsiChar; cdecl;
580     ITraceDYNRequest_getDataPtr = function(this: ITraceDYNRequest): BytePtr; cdecl;
581     ITraceDYNRequest_getDataLengthPtr = function(this: ITraceDYNRequest): Cardinal; cdecl;
582     ITraceDYNRequest_getTextPtr = function(this: ITraceDYNRequest): PAnsiChar; cdecl;
583     ITraceContextVariable_getNameSpacePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
584     ITraceContextVariable_getVarNamePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
585     ITraceContextVariable_getVarValuePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
586     ITraceProcedure_getProcNamePtr = function(this: ITraceProcedure): PAnsiChar; cdecl;
587     ITraceProcedure_getInputsPtr = function(this: ITraceProcedure): ITraceParams; cdecl;
588     ITraceProcedure_getPerfPtr = function(this: ITraceProcedure): PerformanceInfoPtr; cdecl;
589     ITraceFunction_getFuncNamePtr = function(this: ITraceFunction): PAnsiChar; cdecl;
590     ITraceFunction_getInputsPtr = function(this: ITraceFunction): ITraceParams; cdecl;
591     ITraceFunction_getResultPtr = function(this: ITraceFunction): ITraceParams; cdecl;
592     ITraceFunction_getPerfPtr = function(this: ITraceFunction): PerformanceInfoPtr; cdecl;
593     ITraceTrigger_getTriggerNamePtr = function(this: ITraceTrigger): PAnsiChar; cdecl;
594     ITraceTrigger_getRelationNamePtr = function(this: ITraceTrigger): PAnsiChar; cdecl;
595     ITraceTrigger_getActionPtr = function(this: ITraceTrigger): Integer; cdecl;
596     ITraceTrigger_getWhichPtr = function(this: ITraceTrigger): Integer; cdecl;
597     ITraceTrigger_getPerfPtr = function(this: ITraceTrigger): PerformanceInfoPtr; cdecl;
598     ITraceServiceConnection_getServiceIDPtr = function(this: ITraceServiceConnection): Pointer; cdecl;
599     ITraceServiceConnection_getServiceMgrPtr = function(this: ITraceServiceConnection): PAnsiChar; cdecl;
600     ITraceServiceConnection_getServiceNamePtr = function(this: ITraceServiceConnection): PAnsiChar; cdecl;
601     ITraceStatusVector_hasErrorPtr = function(this: ITraceStatusVector): Boolean; cdecl;
602     ITraceStatusVector_hasWarningPtr = function(this: ITraceStatusVector): Boolean; cdecl;
603     ITraceStatusVector_getStatusPtr = function(this: ITraceStatusVector): IStatus; cdecl;
604     ITraceStatusVector_getTextPtr = function(this: ITraceStatusVector): PAnsiChar; cdecl;
605     ITraceSweepInfo_getOITPtr = function(this: ITraceSweepInfo): Int64; cdecl;
606     ITraceSweepInfo_getOSTPtr = function(this: ITraceSweepInfo): Int64; cdecl;
607     ITraceSweepInfo_getOATPtr = function(this: ITraceSweepInfo): Int64; cdecl;
608     ITraceSweepInfo_getNextPtr = function(this: ITraceSweepInfo): Int64; cdecl;
609     ITraceSweepInfo_getPerfPtr = function(this: ITraceSweepInfo): PerformanceInfoPtr; cdecl;
610     ITraceLogWriter_writePtr = function(this: ITraceLogWriter; buf: Pointer; size: Cardinal): Cardinal; cdecl;
611 tony 315 ITraceLogWriter_write_sPtr = function(this: ITraceLogWriter; status: IStatus; buf: Pointer; size: Cardinal): Cardinal; cdecl;
612 tony 45 ITraceInitInfo_getConfigTextPtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
613     ITraceInitInfo_getTraceSessionIDPtr = function(this: ITraceInitInfo): Integer; cdecl;
614     ITraceInitInfo_getTraceSessionNamePtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
615     ITraceInitInfo_getFirebirdRootDirectoryPtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
616     ITraceInitInfo_getDatabaseNamePtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
617     ITraceInitInfo_getConnectionPtr = function(this: ITraceInitInfo): ITraceDatabaseConnection; cdecl;
618     ITraceInitInfo_getLogWriterPtr = function(this: ITraceInitInfo): ITraceLogWriter; cdecl;
619     ITracePlugin_trace_get_errorPtr = function(this: ITracePlugin): PAnsiChar; cdecl;
620     ITracePlugin_trace_attachPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; cdecl;
621     ITracePlugin_trace_detachPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; cdecl;
622     ITracePlugin_trace_transaction_startPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; cdecl;
623     ITracePlugin_trace_transaction_endPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; cdecl;
624     ITracePlugin_trace_proc_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; cdecl;
625     ITracePlugin_trace_trigger_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; cdecl;
626     ITracePlugin_trace_set_contextPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; cdecl;
627     ITracePlugin_trace_dsql_preparePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
628     ITracePlugin_trace_dsql_freePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; cdecl;
629     ITracePlugin_trace_dsql_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; cdecl;
630     ITracePlugin_trace_blr_compilePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
631     ITracePlugin_trace_blr_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; cdecl;
632     ITracePlugin_trace_dyn_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
633     ITracePlugin_trace_service_attachPtr = function(this: ITracePlugin; service: ITraceServiceConnection; att_result: Cardinal): Boolean; cdecl;
634     ITracePlugin_trace_service_startPtr = function(this: ITracePlugin; service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; cdecl;
635     ITracePlugin_trace_service_queryPtr = function(this: ITracePlugin; service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; cdecl;
636     ITracePlugin_trace_service_detachPtr = function(this: ITracePlugin; service: ITraceServiceConnection; detach_result: Cardinal): Boolean; cdecl;
637     ITracePlugin_trace_event_errorPtr = function(this: ITracePlugin; connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; cdecl;
638     ITracePlugin_trace_event_sweepPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; cdecl;
639     ITracePlugin_trace_func_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; cdecl;
640     ITraceFactory_trace_needsPtr = function(this: ITraceFactory): QWord; cdecl;
641     ITraceFactory_trace_createPtr = function(this: ITraceFactory; status: IStatus; init_info: ITraceInitInfo): ITracePlugin; cdecl;
642     IUdrFunctionFactory_setupPtr = procedure(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
643     IUdrFunctionFactory_newItemPtr = function(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; cdecl;
644     IUdrProcedureFactory_setupPtr = procedure(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
645     IUdrProcedureFactory_newItemPtr = function(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; cdecl;
646     IUdrTriggerFactory_setupPtr = procedure(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); cdecl;
647     IUdrTriggerFactory_newItemPtr = function(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; cdecl;
648     IUdrPlugin_getMasterPtr = function(this: IUdrPlugin): IMaster; cdecl;
649     IUdrPlugin_registerFunctionPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); cdecl;
650     IUdrPlugin_registerProcedurePtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); cdecl;
651     IUdrPlugin_registerTriggerPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); cdecl;
652 tony 315 IDecFloat16_toBcdPtr = procedure(this: IDecFloat16; from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
653     IDecFloat16_toStringPtr = procedure(this: IDecFloat16; status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
654     IDecFloat16_fromBcdPtr = procedure(this: IDecFloat16; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); cdecl;
655     IDecFloat16_fromStringPtr = procedure(this: IDecFloat16; status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); cdecl;
656     IDecFloat34_toBcdPtr = procedure(this: IDecFloat34; from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
657     IDecFloat34_toStringPtr = procedure(this: IDecFloat34; status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
658     IDecFloat34_fromBcdPtr = procedure(this: IDecFloat34; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); cdecl;
659     IDecFloat34_fromStringPtr = procedure(this: IDecFloat34; status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); cdecl;
660     IInt128_toStringPtr = procedure(this: IInt128; status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
661     IInt128_fromStringPtr = procedure(this: IInt128; status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); cdecl;
662     IReplicatedField_getNamePtr = function(this: IReplicatedField): PAnsiChar; cdecl;
663     IReplicatedField_getTypePtr = function(this: IReplicatedField): Cardinal; cdecl;
664     IReplicatedField_getSubTypePtr = function(this: IReplicatedField): Integer; cdecl;
665     IReplicatedField_getScalePtr = function(this: IReplicatedField): Integer; cdecl;
666     IReplicatedField_getLengthPtr = function(this: IReplicatedField): Cardinal; cdecl;
667     IReplicatedField_getCharSetPtr = function(this: IReplicatedField): Cardinal; cdecl;
668     IReplicatedField_getDataPtr = function(this: IReplicatedField): Pointer; cdecl;
669     IReplicatedRecord_getCountPtr = function(this: IReplicatedRecord): Cardinal; cdecl;
670     IReplicatedRecord_getFieldPtr = function(this: IReplicatedRecord; index: Cardinal): IReplicatedField; cdecl;
671     IReplicatedRecord_getRawLengthPtr = function(this: IReplicatedRecord): Cardinal; cdecl;
672     IReplicatedRecord_getRawDataPtr = function(this: IReplicatedRecord): BytePtr; cdecl;
673     IReplicatedTransaction_preparePtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
674     IReplicatedTransaction_commitPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
675     IReplicatedTransaction_rollbackPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
676     IReplicatedTransaction_startSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
677     IReplicatedTransaction_releaseSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
678     IReplicatedTransaction_rollbackSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
679     IReplicatedTransaction_insertRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
680     IReplicatedTransaction_updateRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); cdecl;
681     IReplicatedTransaction_deleteRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
682     IReplicatedTransaction_executeSqlPtr = procedure(this: IReplicatedTransaction; status: IStatus; sql: PAnsiChar); cdecl;
683     IReplicatedTransaction_executeSqlIntlPtr = procedure(this: IReplicatedTransaction; status: IStatus; charset: Cardinal; sql: PAnsiChar); cdecl;
684 tony 345 IReplicatedSession_initPtr = function(this: IReplicatedSession; status: IStatus; attachment: IAttachment): Boolean; cdecl;
685 tony 315 IReplicatedSession_startTransactionPtr = function(this: IReplicatedSession; status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; cdecl;
686     IReplicatedSession_cleanupTransactionPtr = procedure(this: IReplicatedSession; status: IStatus; number: Int64); cdecl;
687     IReplicatedSession_setSequencePtr = procedure(this: IReplicatedSession; status: IStatus; name: PAnsiChar; value: Int64); cdecl;
688 tony 45
689     VersionedVTable = class
690     version: NativeInt;
691     end;
692    
693     IVersioned = class
694     vTable: VersionedVTable;
695    
696 tony 315 const VERSION = 1;
697 tony 45
698     end;
699    
700     IVersionedImpl = class(IVersioned)
701     constructor create;
702    
703     end;
704    
705     ReferenceCountedVTable = class(VersionedVTable)
706     addRef: IReferenceCounted_addRefPtr;
707     release: IReferenceCounted_releasePtr;
708     end;
709    
710     IReferenceCounted = class(IVersioned)
711     const VERSION = 2;
712    
713     procedure addRef();
714     function release(): Integer;
715     end;
716    
717     IReferenceCountedImpl = class(IReferenceCounted)
718     constructor create;
719    
720     procedure addRef(); virtual; abstract;
721     function release(): Integer; virtual; abstract;
722     end;
723    
724     DisposableVTable = class(VersionedVTable)
725     dispose: IDisposable_disposePtr;
726     end;
727    
728     IDisposable = class(IVersioned)
729 tony 315 const VERSION = 2;
730 tony 45
731     procedure dispose();
732     end;
733    
734     IDisposableImpl = class(IDisposable)
735     constructor create;
736    
737     procedure dispose(); virtual; abstract;
738     end;
739    
740     StatusVTable = class(DisposableVTable)
741     init: IStatus_initPtr;
742     getState: IStatus_getStatePtr;
743     setErrors2: IStatus_setErrors2Ptr;
744     setWarnings2: IStatus_setWarnings2Ptr;
745     setErrors: IStatus_setErrorsPtr;
746     setWarnings: IStatus_setWarningsPtr;
747     getErrors: IStatus_getErrorsPtr;
748     getWarnings: IStatus_getWarningsPtr;
749     clone: IStatus_clonePtr;
750     end;
751    
752     IStatus = class(IDisposable)
753 tony 315 const VERSION = 3;
754     const STATE_WARNINGS = Cardinal($1);
755     const STATE_ERRORS = Cardinal($2);
756 tony 45 const RESULT_ERROR = Integer(-1);
757     const RESULT_OK = Integer(0);
758     const RESULT_NO_DATA = Integer(1);
759     const RESULT_SEGMENT = Integer(2);
760    
761     procedure init();
762     function getState(): Cardinal;
763     procedure setErrors2(length: Cardinal; value: NativeIntPtr);
764     procedure setWarnings2(length: Cardinal; value: NativeIntPtr);
765     procedure setErrors(value: NativeIntPtr);
766     procedure setWarnings(value: NativeIntPtr);
767     function getErrors(): NativeIntPtr;
768     function getWarnings(): NativeIntPtr;
769     function clone(): IStatus;
770     end;
771    
772     IStatusImpl = class(IStatus)
773     constructor create;
774    
775     procedure dispose(); virtual; abstract;
776     procedure init(); virtual; abstract;
777     function getState(): Cardinal; virtual; abstract;
778     procedure setErrors2(length: Cardinal; value: NativeIntPtr); virtual; abstract;
779     procedure setWarnings2(length: Cardinal; value: NativeIntPtr); virtual; abstract;
780     procedure setErrors(value: NativeIntPtr); virtual; abstract;
781     procedure setWarnings(value: NativeIntPtr); virtual; abstract;
782     function getErrors(): NativeIntPtr; virtual; abstract;
783     function getWarnings(): NativeIntPtr; virtual; abstract;
784     function clone(): IStatus; virtual; abstract;
785     end;
786    
787     MasterVTable = class(VersionedVTable)
788     getStatus: IMaster_getStatusPtr;
789     getDispatcher: IMaster_getDispatcherPtr;
790     getPluginManager: IMaster_getPluginManagerPtr;
791     getTimerControl: IMaster_getTimerControlPtr;
792     getDtc: IMaster_getDtcPtr;
793     registerAttachment: IMaster_registerAttachmentPtr;
794     registerTransaction: IMaster_registerTransactionPtr;
795     getMetadataBuilder: IMaster_getMetadataBuilderPtr;
796     serverMode: IMaster_serverModePtr;
797     getUtilInterface: IMaster_getUtilInterfacePtr;
798     getConfigManager: IMaster_getConfigManagerPtr;
799     getProcessExiting: IMaster_getProcessExitingPtr;
800     end;
801    
802     IMaster = class(IVersioned)
803 tony 315 const VERSION = 2;
804 tony 45
805     function getStatus(): IStatus;
806     function getDispatcher(): IProvider;
807     function getPluginManager(): IPluginManager;
808     function getTimerControl(): ITimerControl;
809     function getDtc(): IDtc;
810     function registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment;
811     function registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction;
812     function getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder;
813     function serverMode(mode: Integer): Integer;
814     function getUtilInterface(): IUtil;
815     function getConfigManager(): IConfigManager;
816     function getProcessExiting(): Boolean;
817     end;
818    
819     IMasterImpl = class(IMaster)
820     constructor create;
821    
822     function getStatus(): IStatus; virtual; abstract;
823     function getDispatcher(): IProvider; virtual; abstract;
824     function getPluginManager(): IPluginManager; virtual; abstract;
825     function getTimerControl(): ITimerControl; virtual; abstract;
826     function getDtc(): IDtc; virtual; abstract;
827     function registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment; virtual; abstract;
828     function registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction; virtual; abstract;
829     function getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder; virtual; abstract;
830     function serverMode(mode: Integer): Integer; virtual; abstract;
831     function getUtilInterface(): IUtil; virtual; abstract;
832     function getConfigManager(): IConfigManager; virtual; abstract;
833     function getProcessExiting(): Boolean; virtual; abstract;
834     end;
835    
836     PluginBaseVTable = class(ReferenceCountedVTable)
837     setOwner: IPluginBase_setOwnerPtr;
838     getOwner: IPluginBase_getOwnerPtr;
839     end;
840    
841     IPluginBase = class(IReferenceCounted)
842 tony 315 const VERSION = 3;
843 tony 45
844     procedure setOwner(r: IReferenceCounted);
845     function getOwner(): IReferenceCounted;
846     end;
847    
848     IPluginBaseImpl = class(IPluginBase)
849     constructor create;
850    
851     procedure addRef(); virtual; abstract;
852     function release(): Integer; virtual; abstract;
853     procedure setOwner(r: IReferenceCounted); virtual; abstract;
854     function getOwner(): IReferenceCounted; virtual; abstract;
855     end;
856    
857     PluginSetVTable = class(ReferenceCountedVTable)
858     getName: IPluginSet_getNamePtr;
859     getModuleName: IPluginSet_getModuleNamePtr;
860     getPlugin: IPluginSet_getPluginPtr;
861     next: IPluginSet_nextPtr;
862     set_: IPluginSet_set_Ptr;
863     end;
864    
865     IPluginSet = class(IReferenceCounted)
866 tony 315 const VERSION = 3;
867 tony 45
868     function getName(): PAnsiChar;
869     function getModuleName(): PAnsiChar;
870     function getPlugin(status: IStatus): IPluginBase;
871     procedure next(status: IStatus);
872     procedure set_(status: IStatus; s: PAnsiChar);
873     end;
874    
875     IPluginSetImpl = class(IPluginSet)
876     constructor create;
877    
878     procedure addRef(); virtual; abstract;
879     function release(): Integer; virtual; abstract;
880     function getName(): PAnsiChar; virtual; abstract;
881     function getModuleName(): PAnsiChar; virtual; abstract;
882     function getPlugin(status: IStatus): IPluginBase; virtual; abstract;
883     procedure next(status: IStatus); virtual; abstract;
884     procedure set_(status: IStatus; s: PAnsiChar); virtual; abstract;
885     end;
886    
887     ConfigEntryVTable = class(ReferenceCountedVTable)
888     getName: IConfigEntry_getNamePtr;
889     getValue: IConfigEntry_getValuePtr;
890     getIntValue: IConfigEntry_getIntValuePtr;
891     getBoolValue: IConfigEntry_getBoolValuePtr;
892     getSubConfig: IConfigEntry_getSubConfigPtr;
893     end;
894    
895     IConfigEntry = class(IReferenceCounted)
896 tony 315 const VERSION = 3;
897 tony 45
898     function getName(): PAnsiChar;
899     function getValue(): PAnsiChar;
900     function getIntValue(): Int64;
901     function getBoolValue(): Boolean;
902     function getSubConfig(status: IStatus): IConfig;
903     end;
904    
905     IConfigEntryImpl = class(IConfigEntry)
906     constructor create;
907    
908     procedure addRef(); virtual; abstract;
909     function release(): Integer; virtual; abstract;
910     function getName(): PAnsiChar; virtual; abstract;
911     function getValue(): PAnsiChar; virtual; abstract;
912     function getIntValue(): Int64; virtual; abstract;
913     function getBoolValue(): Boolean; virtual; abstract;
914     function getSubConfig(status: IStatus): IConfig; virtual; abstract;
915     end;
916    
917     ConfigVTable = class(ReferenceCountedVTable)
918     find: IConfig_findPtr;
919     findValue: IConfig_findValuePtr;
920     findPos: IConfig_findPosPtr;
921     end;
922    
923     IConfig = class(IReferenceCounted)
924 tony 315 const VERSION = 3;
925 tony 45
926     function find(status: IStatus; name: PAnsiChar): IConfigEntry;
927     function findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
928     function findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry;
929     end;
930    
931     IConfigImpl = class(IConfig)
932     constructor create;
933    
934     procedure addRef(); virtual; abstract;
935     function release(): Integer; virtual; abstract;
936     function find(status: IStatus; name: PAnsiChar): IConfigEntry; virtual; abstract;
937     function findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; virtual; abstract;
938     function findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; virtual; abstract;
939     end;
940    
941     FirebirdConfVTable = class(ReferenceCountedVTable)
942     getKey: IFirebirdConf_getKeyPtr;
943     asInteger: IFirebirdConf_asIntegerPtr;
944     asString: IFirebirdConf_asStringPtr;
945     asBoolean: IFirebirdConf_asBooleanPtr;
946 tony 315 getVersion: IFirebirdConf_getVersionPtr;
947 tony 45 end;
948    
949     IFirebirdConf = class(IReferenceCounted)
950 tony 315 const VERSION = 4;
951 tony 45
952     function getKey(name: PAnsiChar): Cardinal;
953     function asInteger(key: Cardinal): Int64;
954     function asString(key: Cardinal): PAnsiChar;
955     function asBoolean(key: Cardinal): Boolean;
956 tony 315 function getVersion(status: IStatus): Cardinal;
957 tony 45 end;
958    
959     IFirebirdConfImpl = class(IFirebirdConf)
960     constructor create;
961    
962     procedure addRef(); virtual; abstract;
963     function release(): Integer; virtual; abstract;
964     function getKey(name: PAnsiChar): Cardinal; virtual; abstract;
965     function asInteger(key: Cardinal): Int64; virtual; abstract;
966     function asString(key: Cardinal): PAnsiChar; virtual; abstract;
967     function asBoolean(key: Cardinal): Boolean; virtual; abstract;
968 tony 315 function getVersion(status: IStatus): Cardinal; virtual; abstract;
969 tony 45 end;
970    
971     PluginConfigVTable = class(ReferenceCountedVTable)
972     getConfigFileName: IPluginConfig_getConfigFileNamePtr;
973     getDefaultConfig: IPluginConfig_getDefaultConfigPtr;
974     getFirebirdConf: IPluginConfig_getFirebirdConfPtr;
975     setReleaseDelay: IPluginConfig_setReleaseDelayPtr;
976     end;
977    
978     IPluginConfig = class(IReferenceCounted)
979 tony 315 const VERSION = 3;
980 tony 45
981     function getConfigFileName(): PAnsiChar;
982     function getDefaultConfig(status: IStatus): IConfig;
983     function getFirebirdConf(status: IStatus): IFirebirdConf;
984     procedure setReleaseDelay(status: IStatus; microSeconds: QWord);
985     end;
986    
987     IPluginConfigImpl = class(IPluginConfig)
988     constructor create;
989    
990     procedure addRef(); virtual; abstract;
991     function release(): Integer; virtual; abstract;
992     function getConfigFileName(): PAnsiChar; virtual; abstract;
993     function getDefaultConfig(status: IStatus): IConfig; virtual; abstract;
994     function getFirebirdConf(status: IStatus): IFirebirdConf; virtual; abstract;
995     procedure setReleaseDelay(status: IStatus; microSeconds: QWord); virtual; abstract;
996     end;
997    
998     PluginFactoryVTable = class(VersionedVTable)
999     createPlugin: IPluginFactory_createPluginPtr;
1000     end;
1001    
1002     IPluginFactory = class(IVersioned)
1003 tony 315 const VERSION = 2;
1004 tony 45
1005     function createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
1006     end;
1007    
1008     IPluginFactoryImpl = class(IPluginFactory)
1009     constructor create;
1010    
1011     function createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase; virtual; abstract;
1012     end;
1013    
1014     PluginModuleVTable = class(VersionedVTable)
1015     doClean: IPluginModule_doCleanPtr;
1016 tony 315 threadDetach: IPluginModule_threadDetachPtr;
1017 tony 45 end;
1018    
1019     IPluginModule = class(IVersioned)
1020 tony 315 const VERSION = 3;
1021 tony 45
1022     procedure doClean();
1023 tony 315 procedure threadDetach();
1024 tony 45 end;
1025    
1026     IPluginModuleImpl = class(IPluginModule)
1027     constructor create;
1028    
1029     procedure doClean(); virtual; abstract;
1030 tony 315 procedure threadDetach(); virtual; abstract;
1031 tony 45 end;
1032    
1033     PluginManagerVTable = class(VersionedVTable)
1034     registerPluginFactory: IPluginManager_registerPluginFactoryPtr;
1035     registerModule: IPluginManager_registerModulePtr;
1036     unregisterModule: IPluginManager_unregisterModulePtr;
1037     getPlugins: IPluginManager_getPluginsPtr;
1038     getConfig: IPluginManager_getConfigPtr;
1039     releasePlugin: IPluginManager_releasePluginPtr;
1040     end;
1041    
1042     IPluginManager = class(IVersioned)
1043 tony 315 const VERSION = 2;
1044 tony 45 const TYPE_PROVIDER = Cardinal(1);
1045     const TYPE_FIRST_NON_LIB = Cardinal(2);
1046     const TYPE_AUTH_SERVER = Cardinal(3);
1047     const TYPE_AUTH_CLIENT = Cardinal(4);
1048     const TYPE_AUTH_USER_MANAGEMENT = Cardinal(5);
1049     const TYPE_EXTERNAL_ENGINE = Cardinal(6);
1050     const TYPE_TRACE = Cardinal(7);
1051     const TYPE_WIRE_CRYPT = Cardinal(8);
1052     const TYPE_DB_CRYPT = Cardinal(9);
1053     const TYPE_KEY_HOLDER = Cardinal(10);
1054 tony 315 const TYPE_REPLICATOR = Cardinal(11);
1055     const TYPE_COUNT = Cardinal(12);
1056 tony 45
1057     procedure registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
1058     procedure registerModule(cleanup: IPluginModule);
1059     procedure unregisterModule(cleanup: IPluginModule);
1060     function getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet;
1061     function getConfig(status: IStatus; filename: PAnsiChar): IConfig;
1062     procedure releasePlugin(plugin: IPluginBase);
1063     end;
1064    
1065     IPluginManagerImpl = class(IPluginManager)
1066     constructor create;
1067    
1068     procedure registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); virtual; abstract;
1069     procedure registerModule(cleanup: IPluginModule); virtual; abstract;
1070     procedure unregisterModule(cleanup: IPluginModule); virtual; abstract;
1071     function getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; virtual; abstract;
1072     function getConfig(status: IStatus; filename: PAnsiChar): IConfig; virtual; abstract;
1073     procedure releasePlugin(plugin: IPluginBase); virtual; abstract;
1074     end;
1075    
1076     CryptKeyVTable = class(VersionedVTable)
1077     setSymmetric: ICryptKey_setSymmetricPtr;
1078     setAsymmetric: ICryptKey_setAsymmetricPtr;
1079     getEncryptKey: ICryptKey_getEncryptKeyPtr;
1080     getDecryptKey: ICryptKey_getDecryptKeyPtr;
1081     end;
1082    
1083     ICryptKey = class(IVersioned)
1084 tony 315 const VERSION = 2;
1085 tony 45
1086     procedure setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
1087     procedure setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
1088     function getEncryptKey(length: CardinalPtr): Pointer;
1089     function getDecryptKey(length: CardinalPtr): Pointer;
1090     end;
1091    
1092     ICryptKeyImpl = class(ICryptKey)
1093     constructor create;
1094    
1095     procedure setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); virtual; abstract;
1096     procedure setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); virtual; abstract;
1097     function getEncryptKey(length: CardinalPtr): Pointer; virtual; abstract;
1098     function getDecryptKey(length: CardinalPtr): Pointer; virtual; abstract;
1099     end;
1100    
1101     ConfigManagerVTable = class(VersionedVTable)
1102     getDirectory: IConfigManager_getDirectoryPtr;
1103     getFirebirdConf: IConfigManager_getFirebirdConfPtr;
1104     getDatabaseConf: IConfigManager_getDatabaseConfPtr;
1105     getPluginConfig: IConfigManager_getPluginConfigPtr;
1106     getInstallDirectory: IConfigManager_getInstallDirectoryPtr;
1107     getRootDirectory: IConfigManager_getRootDirectoryPtr;
1108 tony 315 getDefaultSecurityDb: IConfigManager_getDefaultSecurityDbPtr;
1109 tony 45 end;
1110    
1111     IConfigManager = class(IVersioned)
1112 tony 315 const VERSION = 3;
1113 tony 45 const DIR_BIN = Cardinal(0);
1114     const DIR_SBIN = Cardinal(1);
1115     const DIR_CONF = Cardinal(2);
1116     const DIR_LIB = Cardinal(3);
1117     const DIR_INC = Cardinal(4);
1118     const DIR_DOC = Cardinal(5);
1119     const DIR_UDF = Cardinal(6);
1120     const DIR_SAMPLE = Cardinal(7);
1121     const DIR_SAMPLEDB = Cardinal(8);
1122     const DIR_HELP = Cardinal(9);
1123     const DIR_INTL = Cardinal(10);
1124     const DIR_MISC = Cardinal(11);
1125     const DIR_SECDB = Cardinal(12);
1126     const DIR_MSG = Cardinal(13);
1127     const DIR_LOG = Cardinal(14);
1128     const DIR_GUARD = Cardinal(15);
1129     const DIR_PLUGINS = Cardinal(16);
1130 tony 315 const DIR_TZDATA = Cardinal(17);
1131     const DIR_COUNT = Cardinal(18);
1132 tony 45
1133     function getDirectory(code: Cardinal): PAnsiChar;
1134     function getFirebirdConf(): IFirebirdConf;
1135     function getDatabaseConf(dbName: PAnsiChar): IFirebirdConf;
1136     function getPluginConfig(configuredPlugin: PAnsiChar): IConfig;
1137     function getInstallDirectory(): PAnsiChar;
1138     function getRootDirectory(): PAnsiChar;
1139 tony 315 function getDefaultSecurityDb(): PAnsiChar;
1140 tony 45 end;
1141    
1142     IConfigManagerImpl = class(IConfigManager)
1143     constructor create;
1144    
1145     function getDirectory(code: Cardinal): PAnsiChar; virtual; abstract;
1146     function getFirebirdConf(): IFirebirdConf; virtual; abstract;
1147     function getDatabaseConf(dbName: PAnsiChar): IFirebirdConf; virtual; abstract;
1148     function getPluginConfig(configuredPlugin: PAnsiChar): IConfig; virtual; abstract;
1149     function getInstallDirectory(): PAnsiChar; virtual; abstract;
1150     function getRootDirectory(): PAnsiChar; virtual; abstract;
1151 tony 315 function getDefaultSecurityDb(): PAnsiChar; virtual; abstract;
1152 tony 45 end;
1153    
1154     EventCallbackVTable = class(ReferenceCountedVTable)
1155     eventCallbackFunction: IEventCallback_eventCallbackFunctionPtr;
1156     end;
1157    
1158     IEventCallback = class(IReferenceCounted)
1159     const VERSION = 3;
1160    
1161     procedure eventCallbackFunction(length: Cardinal; events: BytePtr);
1162     end;
1163    
1164     IEventCallbackImpl = class(IEventCallback)
1165     constructor create;
1166    
1167     procedure addRef(); virtual; abstract;
1168     function release(): Integer; virtual; abstract;
1169     procedure eventCallbackFunction(length: Cardinal; events: BytePtr); virtual; abstract;
1170     end;
1171    
1172     BlobVTable = class(ReferenceCountedVTable)
1173     getInfo: IBlob_getInfoPtr;
1174     getSegment: IBlob_getSegmentPtr;
1175     putSegment: IBlob_putSegmentPtr;
1176     cancel: IBlob_cancelPtr;
1177     close: IBlob_closePtr;
1178     seek: IBlob_seekPtr;
1179     end;
1180    
1181     IBlob = class(IReferenceCounted)
1182 tony 315 const VERSION = 3;
1183 tony 45
1184     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1185     function getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
1186     procedure putSegment(status: IStatus; length: Cardinal; buffer: Pointer);
1187     procedure cancel(status: IStatus);
1188     procedure close(status: IStatus);
1189     function seek(status: IStatus; mode: Integer; offset: Integer): Integer;
1190     end;
1191    
1192     IBlobImpl = class(IBlob)
1193     constructor create;
1194    
1195     procedure addRef(); virtual; abstract;
1196     function release(): Integer; virtual; abstract;
1197     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1198     function getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; virtual; abstract;
1199     procedure putSegment(status: IStatus; length: Cardinal; buffer: Pointer); virtual; abstract;
1200     procedure cancel(status: IStatus); virtual; abstract;
1201     procedure close(status: IStatus); virtual; abstract;
1202     function seek(status: IStatus; mode: Integer; offset: Integer): Integer; virtual; abstract;
1203     end;
1204    
1205     TransactionVTable = class(ReferenceCountedVTable)
1206     getInfo: ITransaction_getInfoPtr;
1207     prepare: ITransaction_preparePtr;
1208     commit: ITransaction_commitPtr;
1209     commitRetaining: ITransaction_commitRetainingPtr;
1210     rollback: ITransaction_rollbackPtr;
1211     rollbackRetaining: ITransaction_rollbackRetainingPtr;
1212     disconnect: ITransaction_disconnectPtr;
1213     join: ITransaction_joinPtr;
1214     validate: ITransaction_validatePtr;
1215     enterDtc: ITransaction_enterDtcPtr;
1216     end;
1217    
1218     ITransaction = class(IReferenceCounted)
1219 tony 315 const VERSION = 3;
1220 tony 45
1221     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1222     procedure prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
1223     procedure commit(status: IStatus);
1224     procedure commitRetaining(status: IStatus);
1225     procedure rollback(status: IStatus);
1226     procedure rollbackRetaining(status: IStatus);
1227     procedure disconnect(status: IStatus);
1228     function join(status: IStatus; transaction: ITransaction): ITransaction;
1229     function validate(status: IStatus; attachment: IAttachment): ITransaction;
1230     function enterDtc(status: IStatus): ITransaction;
1231     end;
1232    
1233     ITransactionImpl = class(ITransaction)
1234     constructor create;
1235    
1236     procedure addRef(); virtual; abstract;
1237     function release(): Integer; virtual; abstract;
1238     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1239     procedure prepare(status: IStatus; msgLength: Cardinal; message: BytePtr); virtual; abstract;
1240     procedure commit(status: IStatus); virtual; abstract;
1241     procedure commitRetaining(status: IStatus); virtual; abstract;
1242     procedure rollback(status: IStatus); virtual; abstract;
1243     procedure rollbackRetaining(status: IStatus); virtual; abstract;
1244     procedure disconnect(status: IStatus); virtual; abstract;
1245     function join(status: IStatus; transaction: ITransaction): ITransaction; virtual; abstract;
1246     function validate(status: IStatus; attachment: IAttachment): ITransaction; virtual; abstract;
1247     function enterDtc(status: IStatus): ITransaction; virtual; abstract;
1248     end;
1249    
1250     MessageMetadataVTable = class(ReferenceCountedVTable)
1251     getCount: IMessageMetadata_getCountPtr;
1252     getField: IMessageMetadata_getFieldPtr;
1253     getRelation: IMessageMetadata_getRelationPtr;
1254     getOwner: IMessageMetadata_getOwnerPtr;
1255     getAlias: IMessageMetadata_getAliasPtr;
1256     getType: IMessageMetadata_getTypePtr;
1257     isNullable: IMessageMetadata_isNullablePtr;
1258     getSubType: IMessageMetadata_getSubTypePtr;
1259     getLength: IMessageMetadata_getLengthPtr;
1260     getScale: IMessageMetadata_getScalePtr;
1261     getCharSet: IMessageMetadata_getCharSetPtr;
1262     getOffset: IMessageMetadata_getOffsetPtr;
1263     getNullOffset: IMessageMetadata_getNullOffsetPtr;
1264     getBuilder: IMessageMetadata_getBuilderPtr;
1265     getMessageLength: IMessageMetadata_getMessageLengthPtr;
1266 tony 315 getAlignment: IMessageMetadata_getAlignmentPtr;
1267     getAlignedLength: IMessageMetadata_getAlignedLengthPtr;
1268 tony 45 end;
1269    
1270     IMessageMetadata = class(IReferenceCounted)
1271 tony 315 const VERSION = 4;
1272 tony 45
1273     function getCount(status: IStatus): Cardinal;
1274     function getField(status: IStatus; index: Cardinal): PAnsiChar;
1275     function getRelation(status: IStatus; index: Cardinal): PAnsiChar;
1276     function getOwner(status: IStatus; index: Cardinal): PAnsiChar;
1277     function getAlias(status: IStatus; index: Cardinal): PAnsiChar;
1278     function getType(status: IStatus; index: Cardinal): Cardinal;
1279     function isNullable(status: IStatus; index: Cardinal): Boolean;
1280     function getSubType(status: IStatus; index: Cardinal): Integer;
1281     function getLength(status: IStatus; index: Cardinal): Cardinal;
1282     function getScale(status: IStatus; index: Cardinal): Integer;
1283     function getCharSet(status: IStatus; index: Cardinal): Cardinal;
1284     function getOffset(status: IStatus; index: Cardinal): Cardinal;
1285     function getNullOffset(status: IStatus; index: Cardinal): Cardinal;
1286     function getBuilder(status: IStatus): IMetadataBuilder;
1287     function getMessageLength(status: IStatus): Cardinal;
1288 tony 315 function getAlignment(status: IStatus): Cardinal;
1289     function getAlignedLength(status: IStatus): Cardinal;
1290 tony 45 end;
1291    
1292     IMessageMetadataImpl = class(IMessageMetadata)
1293     constructor create;
1294    
1295     procedure addRef(); virtual; abstract;
1296     function release(): Integer; virtual; abstract;
1297     function getCount(status: IStatus): Cardinal; virtual; abstract;
1298     function getField(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1299     function getRelation(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1300     function getOwner(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1301     function getAlias(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1302     function getType(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1303     function isNullable(status: IStatus; index: Cardinal): Boolean; virtual; abstract;
1304     function getSubType(status: IStatus; index: Cardinal): Integer; virtual; abstract;
1305     function getLength(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1306     function getScale(status: IStatus; index: Cardinal): Integer; virtual; abstract;
1307     function getCharSet(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1308     function getOffset(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1309     function getNullOffset(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1310     function getBuilder(status: IStatus): IMetadataBuilder; virtual; abstract;
1311     function getMessageLength(status: IStatus): Cardinal; virtual; abstract;
1312 tony 315 function getAlignment(status: IStatus): Cardinal; virtual; abstract;
1313     function getAlignedLength(status: IStatus): Cardinal; virtual; abstract;
1314 tony 45 end;
1315    
1316     MetadataBuilderVTable = class(ReferenceCountedVTable)
1317     setType: IMetadataBuilder_setTypePtr;
1318     setSubType: IMetadataBuilder_setSubTypePtr;
1319     setLength: IMetadataBuilder_setLengthPtr;
1320     setCharSet: IMetadataBuilder_setCharSetPtr;
1321     setScale: IMetadataBuilder_setScalePtr;
1322     truncate: IMetadataBuilder_truncatePtr;
1323     moveNameToIndex: IMetadataBuilder_moveNameToIndexPtr;
1324     remove: IMetadataBuilder_removePtr;
1325     addField: IMetadataBuilder_addFieldPtr;
1326     getMetadata: IMetadataBuilder_getMetadataPtr;
1327 tony 315 setField: IMetadataBuilder_setFieldPtr;
1328     setRelation: IMetadataBuilder_setRelationPtr;
1329     setOwner: IMetadataBuilder_setOwnerPtr;
1330     setAlias: IMetadataBuilder_setAliasPtr;
1331 tony 45 end;
1332    
1333     IMetadataBuilder = class(IReferenceCounted)
1334 tony 315 const VERSION = 4;
1335 tony 45
1336     procedure setType(status: IStatus; index: Cardinal; type_: Cardinal);
1337     procedure setSubType(status: IStatus; index: Cardinal; subType: Integer);
1338     procedure setLength(status: IStatus; index: Cardinal; length: Cardinal);
1339     procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
1340 tony 315 procedure setScale(status: IStatus; index: Cardinal; scale: Integer);
1341 tony 45 procedure truncate(status: IStatus; count: Cardinal);
1342     procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
1343     procedure remove(status: IStatus; index: Cardinal);
1344     function addField(status: IStatus): Cardinal;
1345     function getMetadata(status: IStatus): IMessageMetadata;
1346 tony 315 procedure setField(status: IStatus; index: Cardinal; field: PAnsiChar);
1347     procedure setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar);
1348     procedure setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar);
1349     procedure setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar);
1350 tony 45 end;
1351    
1352     IMetadataBuilderImpl = class(IMetadataBuilder)
1353     constructor create;
1354    
1355     procedure addRef(); virtual; abstract;
1356     function release(): Integer; virtual; abstract;
1357     procedure setType(status: IStatus; index: Cardinal; type_: Cardinal); virtual; abstract;
1358     procedure setSubType(status: IStatus; index: Cardinal; subType: Integer); virtual; abstract;
1359     procedure setLength(status: IStatus; index: Cardinal; length: Cardinal); virtual; abstract;
1360     procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal); virtual; abstract;
1361 tony 315 procedure setScale(status: IStatus; index: Cardinal; scale: Integer); virtual; abstract;
1362 tony 45 procedure truncate(status: IStatus; count: Cardinal); virtual; abstract;
1363     procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal); virtual; abstract;
1364     procedure remove(status: IStatus; index: Cardinal); virtual; abstract;
1365     function addField(status: IStatus): Cardinal; virtual; abstract;
1366     function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1367 tony 315 procedure setField(status: IStatus; index: Cardinal; field: PAnsiChar); virtual; abstract;
1368     procedure setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar); virtual; abstract;
1369     procedure setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar); virtual; abstract;
1370     procedure setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar); virtual; abstract;
1371 tony 45 end;
1372    
1373     ResultSetVTable = class(ReferenceCountedVTable)
1374     fetchNext: IResultSet_fetchNextPtr;
1375     fetchPrior: IResultSet_fetchPriorPtr;
1376     fetchFirst: IResultSet_fetchFirstPtr;
1377     fetchLast: IResultSet_fetchLastPtr;
1378     fetchAbsolute: IResultSet_fetchAbsolutePtr;
1379     fetchRelative: IResultSet_fetchRelativePtr;
1380     isEof: IResultSet_isEofPtr;
1381     isBof: IResultSet_isBofPtr;
1382     getMetadata: IResultSet_getMetadataPtr;
1383     close: IResultSet_closePtr;
1384     setDelayedOutputFormat: IResultSet_setDelayedOutputFormatPtr;
1385     end;
1386    
1387     IResultSet = class(IReferenceCounted)
1388 tony 315 const VERSION = 3;
1389 tony 45
1390     function fetchNext(status: IStatus; message: Pointer): Integer;
1391     function fetchPrior(status: IStatus; message: Pointer): Integer;
1392     function fetchFirst(status: IStatus; message: Pointer): Integer;
1393     function fetchLast(status: IStatus; message: Pointer): Integer;
1394     function fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer;
1395     function fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer;
1396     function isEof(status: IStatus): Boolean;
1397     function isBof(status: IStatus): Boolean;
1398     function getMetadata(status: IStatus): IMessageMetadata;
1399     procedure close(status: IStatus);
1400     procedure setDelayedOutputFormat(status: IStatus; format: IMessageMetadata);
1401     end;
1402    
1403     IResultSetImpl = class(IResultSet)
1404     constructor create;
1405    
1406     procedure addRef(); virtual; abstract;
1407     function release(): Integer; virtual; abstract;
1408     function fetchNext(status: IStatus; message: Pointer): Integer; virtual; abstract;
1409     function fetchPrior(status: IStatus; message: Pointer): Integer; virtual; abstract;
1410     function fetchFirst(status: IStatus; message: Pointer): Integer; virtual; abstract;
1411     function fetchLast(status: IStatus; message: Pointer): Integer; virtual; abstract;
1412     function fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer; virtual; abstract;
1413     function fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer; virtual; abstract;
1414     function isEof(status: IStatus): Boolean; virtual; abstract;
1415     function isBof(status: IStatus): Boolean; virtual; abstract;
1416     function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1417     procedure close(status: IStatus); virtual; abstract;
1418     procedure setDelayedOutputFormat(status: IStatus; format: IMessageMetadata); virtual; abstract;
1419     end;
1420    
1421     StatementVTable = class(ReferenceCountedVTable)
1422     getInfo: IStatement_getInfoPtr;
1423     getType: IStatement_getTypePtr;
1424     getPlan: IStatement_getPlanPtr;
1425     getAffectedRecords: IStatement_getAffectedRecordsPtr;
1426     getInputMetadata: IStatement_getInputMetadataPtr;
1427     getOutputMetadata: IStatement_getOutputMetadataPtr;
1428     execute: IStatement_executePtr;
1429     openCursor: IStatement_openCursorPtr;
1430     setCursorName: IStatement_setCursorNamePtr;
1431     free: IStatement_freePtr;
1432     getFlags: IStatement_getFlagsPtr;
1433 tony 315 getTimeout: IStatement_getTimeoutPtr;
1434     setTimeout: IStatement_setTimeoutPtr;
1435     createBatch: IStatement_createBatchPtr;
1436 tony 45 end;
1437    
1438     IStatement = class(IReferenceCounted)
1439 tony 315 const VERSION = 4;
1440     const PREPARE_PREFETCH_NONE = Cardinal($0);
1441     const PREPARE_PREFETCH_TYPE = Cardinal($1);
1442     const PREPARE_PREFETCH_INPUT_PARAMETERS = Cardinal($2);
1443     const PREPARE_PREFETCH_OUTPUT_PARAMETERS = Cardinal($4);
1444     const PREPARE_PREFETCH_LEGACY_PLAN = Cardinal($8);
1445     const PREPARE_PREFETCH_DETAILED_PLAN = Cardinal($10);
1446     const PREPARE_PREFETCH_AFFECTED_RECORDS = Cardinal($20);
1447     const PREPARE_PREFETCH_FLAGS = Cardinal($40);
1448 tony 45 const PREPARE_PREFETCH_METADATA = Cardinal(IStatement.PREPARE_PREFETCH_TYPE or IStatement.PREPARE_PREFETCH_FLAGS or IStatement.PREPARE_PREFETCH_INPUT_PARAMETERS or IStatement.PREPARE_PREFETCH_OUTPUT_PARAMETERS);
1449     const PREPARE_PREFETCH_ALL = Cardinal(IStatement.PREPARE_PREFETCH_METADATA or IStatement.PREPARE_PREFETCH_LEGACY_PLAN or IStatement.PREPARE_PREFETCH_DETAILED_PLAN or IStatement.PREPARE_PREFETCH_AFFECTED_RECORDS);
1450 tony 315 const FLAG_HAS_CURSOR = Cardinal($1);
1451     const FLAG_REPEAT_EXECUTE = Cardinal($2);
1452     const CURSOR_TYPE_SCROLLABLE = Cardinal($1);
1453 tony 45
1454     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1455     function getType(status: IStatus): Cardinal;
1456     function getPlan(status: IStatus; detailed: Boolean): PAnsiChar;
1457     function getAffectedRecords(status: IStatus): QWord;
1458     function getInputMetadata(status: IStatus): IMessageMetadata;
1459     function getOutputMetadata(status: IStatus): IMessageMetadata;
1460     function execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
1461     function openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet;
1462     procedure setCursorName(status: IStatus; name: PAnsiChar);
1463     procedure free(status: IStatus);
1464     function getFlags(status: IStatus): Cardinal;
1465 tony 315 function getTimeout(status: IStatus): Cardinal;
1466     procedure setTimeout(status: IStatus; timeOut: Cardinal);
1467     function createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
1468 tony 45 end;
1469    
1470     IStatementImpl = class(IStatement)
1471     constructor create;
1472    
1473     procedure addRef(); virtual; abstract;
1474     function release(): Integer; virtual; abstract;
1475     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1476     function getType(status: IStatus): Cardinal; virtual; abstract;
1477     function getPlan(status: IStatus; detailed: Boolean): PAnsiChar; virtual; abstract;
1478     function getAffectedRecords(status: IStatus): QWord; virtual; abstract;
1479     function getInputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1480     function getOutputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1481     function execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; virtual; abstract;
1482     function openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; virtual; abstract;
1483     procedure setCursorName(status: IStatus; name: PAnsiChar); virtual; abstract;
1484     procedure free(status: IStatus); virtual; abstract;
1485     function getFlags(status: IStatus): Cardinal; virtual; abstract;
1486 tony 315 function getTimeout(status: IStatus): Cardinal; virtual; abstract;
1487     procedure setTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1488     function createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; virtual; abstract;
1489 tony 45 end;
1490    
1491 tony 315 BatchVTable = class(ReferenceCountedVTable)
1492     add: IBatch_addPtr;
1493     addBlob: IBatch_addBlobPtr;
1494     appendBlobData: IBatch_appendBlobDataPtr;
1495     addBlobStream: IBatch_addBlobStreamPtr;
1496     registerBlob: IBatch_registerBlobPtr;
1497     execute: IBatch_executePtr;
1498     cancel: IBatch_cancelPtr;
1499     getBlobAlignment: IBatch_getBlobAlignmentPtr;
1500     getMetadata: IBatch_getMetadataPtr;
1501     setDefaultBpb: IBatch_setDefaultBpbPtr;
1502 tony 345 close: IBatch_closePtr;
1503 tony 315 end;
1504    
1505     IBatch = class(IReferenceCounted)
1506     const VERSION = 3;
1507     const VERSION1 = Byte(1);
1508     const TAG_MULTIERROR = Byte(1);
1509     const TAG_RECORD_COUNTS = Byte(2);
1510     const TAG_BUFFER_BYTES_SIZE = Byte(3);
1511     const TAG_BLOB_POLICY = Byte(4);
1512     const TAG_DETAILED_ERRORS = Byte(5);
1513     const BLOB_NONE = Byte(0);
1514     const BLOB_ID_ENGINE = Byte(1);
1515     const BLOB_ID_USER = Byte(2);
1516     const BLOB_STREAM = Byte(3);
1517     const BLOB_SEGHDR_ALIGN = Cardinal(2);
1518    
1519     procedure add(status: IStatus; count: Cardinal; inBuffer: Pointer);
1520     procedure addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr);
1521     procedure appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer);
1522     procedure addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer);
1523     procedure registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr);
1524     function execute(status: IStatus; transaction: ITransaction): IBatchCompletionState;
1525     procedure cancel(status: IStatus);
1526     function getBlobAlignment(status: IStatus): Cardinal;
1527     function getMetadata(status: IStatus): IMessageMetadata;
1528     procedure setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr);
1529 tony 345 procedure close(status: IStatus);
1530 tony 315 end;
1531    
1532     IBatchImpl = class(IBatch)
1533     constructor create;
1534    
1535     procedure addRef(); virtual; abstract;
1536     function release(): Integer; virtual; abstract;
1537     procedure add(status: IStatus; count: Cardinal; inBuffer: Pointer); virtual; abstract;
1538     procedure addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); virtual; abstract;
1539     procedure appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer); virtual; abstract;
1540     procedure addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer); virtual; abstract;
1541     procedure registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); virtual; abstract;
1542     function execute(status: IStatus; transaction: ITransaction): IBatchCompletionState; virtual; abstract;
1543     procedure cancel(status: IStatus); virtual; abstract;
1544     function getBlobAlignment(status: IStatus): Cardinal; virtual; abstract;
1545     function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1546     procedure setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr); virtual; abstract;
1547 tony 345 procedure close(status: IStatus); virtual; abstract;
1548 tony 315 end;
1549    
1550     BatchCompletionStateVTable = class(DisposableVTable)
1551     getSize: IBatchCompletionState_getSizePtr;
1552     getState: IBatchCompletionState_getStatePtr;
1553     findError: IBatchCompletionState_findErrorPtr;
1554     getStatus: IBatchCompletionState_getStatusPtr;
1555     end;
1556    
1557     IBatchCompletionState = class(IDisposable)
1558     const VERSION = 3;
1559     const EXECUTE_FAILED = Integer(-1);
1560     const SUCCESS_NO_INFO = Integer(-2);
1561     const NO_MORE_ERRORS = Cardinal($ffffffff);
1562    
1563     function getSize(status: IStatus): Cardinal;
1564     function getState(status: IStatus; pos: Cardinal): Integer;
1565     function findError(status: IStatus; pos: Cardinal): Cardinal;
1566     procedure getStatus(status: IStatus; to_: IStatus; pos: Cardinal);
1567     end;
1568    
1569     IBatchCompletionStateImpl = class(IBatchCompletionState)
1570     constructor create;
1571    
1572     procedure dispose(); virtual; abstract;
1573     function getSize(status: IStatus): Cardinal; virtual; abstract;
1574     function getState(status: IStatus; pos: Cardinal): Integer; virtual; abstract;
1575     function findError(status: IStatus; pos: Cardinal): Cardinal; virtual; abstract;
1576     procedure getStatus(status: IStatus; to_: IStatus; pos: Cardinal); virtual; abstract;
1577     end;
1578    
1579     ReplicatorVTable = class(ReferenceCountedVTable)
1580     process: IReplicator_processPtr;
1581     close: IReplicator_closePtr;
1582     end;
1583    
1584     IReplicator = class(IReferenceCounted)
1585     const VERSION = 3;
1586    
1587     procedure process(status: IStatus; length: Cardinal; data: BytePtr);
1588     procedure close(status: IStatus);
1589     end;
1590    
1591     IReplicatorImpl = class(IReplicator)
1592     constructor create;
1593    
1594     procedure addRef(); virtual; abstract;
1595     function release(): Integer; virtual; abstract;
1596     procedure process(status: IStatus; length: Cardinal; data: BytePtr); virtual; abstract;
1597     procedure close(status: IStatus); virtual; abstract;
1598     end;
1599    
1600 tony 45 RequestVTable = class(ReferenceCountedVTable)
1601     receive: IRequest_receivePtr;
1602     send: IRequest_sendPtr;
1603     getInfo: IRequest_getInfoPtr;
1604     start: IRequest_startPtr;
1605     startAndSend: IRequest_startAndSendPtr;
1606     unwind: IRequest_unwindPtr;
1607     free: IRequest_freePtr;
1608     end;
1609    
1610     IRequest = class(IReferenceCounted)
1611 tony 315 const VERSION = 3;
1612 tony 45
1613 tony 315 procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1614     procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1615 tony 45 procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1616     procedure start(status: IStatus; tra: ITransaction; level: Integer);
1617 tony 315 procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1618 tony 45 procedure unwind(status: IStatus; level: Integer);
1619     procedure free(status: IStatus);
1620     end;
1621    
1622     IRequestImpl = class(IRequest)
1623     constructor create;
1624    
1625     procedure addRef(); virtual; abstract;
1626     function release(): Integer; virtual; abstract;
1627 tony 315 procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1628     procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1629 tony 45 procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1630     procedure start(status: IStatus; tra: ITransaction; level: Integer); virtual; abstract;
1631 tony 315 procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1632 tony 45 procedure unwind(status: IStatus; level: Integer); virtual; abstract;
1633     procedure free(status: IStatus); virtual; abstract;
1634     end;
1635    
1636     EventsVTable = class(ReferenceCountedVTable)
1637     cancel: IEvents_cancelPtr;
1638     end;
1639    
1640     IEvents = class(IReferenceCounted)
1641     const VERSION = 3;
1642    
1643     procedure cancel(status: IStatus);
1644     end;
1645    
1646     IEventsImpl = class(IEvents)
1647     constructor create;
1648    
1649     procedure addRef(); virtual; abstract;
1650     function release(): Integer; virtual; abstract;
1651     procedure cancel(status: IStatus); virtual; abstract;
1652     end;
1653    
1654     AttachmentVTable = class(ReferenceCountedVTable)
1655     getInfo: IAttachment_getInfoPtr;
1656     startTransaction: IAttachment_startTransactionPtr;
1657     reconnectTransaction: IAttachment_reconnectTransactionPtr;
1658     compileRequest: IAttachment_compileRequestPtr;
1659     transactRequest: IAttachment_transactRequestPtr;
1660     createBlob: IAttachment_createBlobPtr;
1661     openBlob: IAttachment_openBlobPtr;
1662     getSlice: IAttachment_getSlicePtr;
1663     putSlice: IAttachment_putSlicePtr;
1664     executeDyn: IAttachment_executeDynPtr;
1665     prepare: IAttachment_preparePtr;
1666     execute: IAttachment_executePtr;
1667     openCursor: IAttachment_openCursorPtr;
1668     queEvents: IAttachment_queEventsPtr;
1669     cancelOperation: IAttachment_cancelOperationPtr;
1670     ping: IAttachment_pingPtr;
1671     detach: IAttachment_detachPtr;
1672     dropDatabase: IAttachment_dropDatabasePtr;
1673 tony 315 getIdleTimeout: IAttachment_getIdleTimeoutPtr;
1674     setIdleTimeout: IAttachment_setIdleTimeoutPtr;
1675     getStatementTimeout: IAttachment_getStatementTimeoutPtr;
1676     setStatementTimeout: IAttachment_setStatementTimeoutPtr;
1677     createBatch: IAttachment_createBatchPtr;
1678     createReplicator: IAttachment_createReplicatorPtr;
1679 tony 45 end;
1680    
1681     IAttachment = class(IReferenceCounted)
1682 tony 315 const VERSION = 4;
1683 tony 45
1684     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1685     function startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
1686     function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
1687     function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
1688     procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
1689 tony 315 function createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1690     function openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1691     function getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
1692     procedure putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
1693 tony 45 procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
1694     function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
1695     function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
1696     function openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet;
1697     function queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents;
1698     procedure cancelOperation(status: IStatus; option: Integer);
1699     procedure ping(status: IStatus);
1700     procedure detach(status: IStatus);
1701     procedure dropDatabase(status: IStatus);
1702 tony 315 function getIdleTimeout(status: IStatus): Cardinal;
1703     procedure setIdleTimeout(status: IStatus; timeOut: Cardinal);
1704     function getStatementTimeout(status: IStatus): Cardinal;
1705     procedure setStatementTimeout(status: IStatus; timeOut: Cardinal);
1706     function createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
1707     function createReplicator(status: IStatus): IReplicator;
1708 tony 45 end;
1709    
1710     IAttachmentImpl = class(IAttachment)
1711     constructor create;
1712    
1713     procedure addRef(); virtual; abstract;
1714     function release(): Integer; virtual; abstract;
1715     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1716     function startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; virtual; abstract;
1717     function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction; virtual; abstract;
1718     function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; virtual; abstract;
1719     procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); virtual; abstract;
1720 tony 315 function createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1721     function openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1722     function getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; virtual; abstract;
1723     procedure putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); virtual; abstract;
1724 tony 45 procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); virtual; abstract;
1725     function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; virtual; abstract;
1726     function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; virtual; abstract;
1727     function openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; virtual; abstract;
1728     function queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; virtual; abstract;
1729     procedure cancelOperation(status: IStatus; option: Integer); virtual; abstract;
1730     procedure ping(status: IStatus); virtual; abstract;
1731     procedure detach(status: IStatus); virtual; abstract;
1732     procedure dropDatabase(status: IStatus); virtual; abstract;
1733 tony 315 function getIdleTimeout(status: IStatus): Cardinal; virtual; abstract;
1734     procedure setIdleTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1735     function getStatementTimeout(status: IStatus): Cardinal; virtual; abstract;
1736     procedure setStatementTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1737     function createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; virtual; abstract;
1738     function createReplicator(status: IStatus): IReplicator; virtual; abstract;
1739 tony 45 end;
1740    
1741     ServiceVTable = class(ReferenceCountedVTable)
1742     detach: IService_detachPtr;
1743     query: IService_queryPtr;
1744     start: IService_startPtr;
1745     end;
1746    
1747     IService = class(IReferenceCounted)
1748 tony 315 const VERSION = 3;
1749 tony 45
1750     procedure detach(status: IStatus);
1751     procedure query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1752     procedure start(status: IStatus; spbLength: Cardinal; spb: BytePtr);
1753     end;
1754    
1755     IServiceImpl = class(IService)
1756     constructor create;
1757    
1758     procedure addRef(); virtual; abstract;
1759     function release(): Integer; virtual; abstract;
1760     procedure detach(status: IStatus); virtual; abstract;
1761     procedure query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1762     procedure start(status: IStatus; spbLength: Cardinal; spb: BytePtr); virtual; abstract;
1763     end;
1764    
1765     ProviderVTable = class(PluginBaseVTable)
1766     attachDatabase: IProvider_attachDatabasePtr;
1767     createDatabase: IProvider_createDatabasePtr;
1768     attachServiceManager: IProvider_attachServiceManagerPtr;
1769     shutdown: IProvider_shutdownPtr;
1770     setDbCryptCallback: IProvider_setDbCryptCallbackPtr;
1771     end;
1772    
1773     IProvider = class(IPluginBase)
1774 tony 315 const VERSION = 4;
1775 tony 45
1776     function attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
1777     function createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
1778     function attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService;
1779     procedure shutdown(status: IStatus; timeout: Cardinal; reason: Integer);
1780     procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
1781     end;
1782    
1783     IProviderImpl = class(IProvider)
1784     constructor create;
1785    
1786     procedure addRef(); virtual; abstract;
1787     function release(): Integer; virtual; abstract;
1788     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1789     function getOwner(): IReferenceCounted; virtual; abstract;
1790     function attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; virtual; abstract;
1791     function createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; virtual; abstract;
1792     function attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; virtual; abstract;
1793     procedure shutdown(status: IStatus; timeout: Cardinal; reason: Integer); virtual; abstract;
1794     procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback); virtual; abstract;
1795     end;
1796    
1797     DtcStartVTable = class(DisposableVTable)
1798     addAttachment: IDtcStart_addAttachmentPtr;
1799     addWithTpb: IDtcStart_addWithTpbPtr;
1800     start: IDtcStart_startPtr;
1801     end;
1802    
1803     IDtcStart = class(IDisposable)
1804 tony 315 const VERSION = 3;
1805 tony 45
1806     procedure addAttachment(status: IStatus; att: IAttachment);
1807     procedure addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
1808     function start(status: IStatus): ITransaction;
1809     end;
1810    
1811     IDtcStartImpl = class(IDtcStart)
1812     constructor create;
1813    
1814     procedure dispose(); virtual; abstract;
1815     procedure addAttachment(status: IStatus; att: IAttachment); virtual; abstract;
1816     procedure addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); virtual; abstract;
1817     function start(status: IStatus): ITransaction; virtual; abstract;
1818     end;
1819    
1820     DtcVTable = class(VersionedVTable)
1821     join: IDtc_joinPtr;
1822     startBuilder: IDtc_startBuilderPtr;
1823     end;
1824    
1825     IDtc = class(IVersioned)
1826     const VERSION = 2;
1827    
1828     function join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction;
1829     function startBuilder(status: IStatus): IDtcStart;
1830     end;
1831    
1832     IDtcImpl = class(IDtc)
1833     constructor create;
1834    
1835     function join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction; virtual; abstract;
1836     function startBuilder(status: IStatus): IDtcStart; virtual; abstract;
1837     end;
1838    
1839     AuthVTable = class(PluginBaseVTable)
1840     end;
1841    
1842     IAuth = class(IPluginBase)
1843     const VERSION = 4;
1844     const AUTH_FAILED = Integer(-1);
1845     const AUTH_SUCCESS = Integer(0);
1846     const AUTH_MORE_DATA = Integer(1);
1847     const AUTH_CONTINUE = Integer(2);
1848    
1849     end;
1850    
1851     IAuthImpl = class(IAuth)
1852     constructor create;
1853    
1854     procedure addRef(); virtual; abstract;
1855     function release(): Integer; virtual; abstract;
1856     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1857     function getOwner(): IReferenceCounted; virtual; abstract;
1858     end;
1859    
1860     WriterVTable = class(VersionedVTable)
1861     reset: IWriter_resetPtr;
1862     add: IWriter_addPtr;
1863     setType: IWriter_setTypePtr;
1864     setDb: IWriter_setDbPtr;
1865     end;
1866    
1867     IWriter = class(IVersioned)
1868 tony 315 const VERSION = 2;
1869 tony 45
1870     procedure reset();
1871     procedure add(status: IStatus; name: PAnsiChar);
1872     procedure setType(status: IStatus; value: PAnsiChar);
1873     procedure setDb(status: IStatus; value: PAnsiChar);
1874     end;
1875    
1876     IWriterImpl = class(IWriter)
1877     constructor create;
1878    
1879     procedure reset(); virtual; abstract;
1880     procedure add(status: IStatus; name: PAnsiChar); virtual; abstract;
1881     procedure setType(status: IStatus; value: PAnsiChar); virtual; abstract;
1882     procedure setDb(status: IStatus; value: PAnsiChar); virtual; abstract;
1883     end;
1884    
1885     ServerBlockVTable = class(VersionedVTable)
1886     getLogin: IServerBlock_getLoginPtr;
1887     getData: IServerBlock_getDataPtr;
1888     putData: IServerBlock_putDataPtr;
1889     newKey: IServerBlock_newKeyPtr;
1890     end;
1891    
1892     IServerBlock = class(IVersioned)
1893 tony 315 const VERSION = 2;
1894 tony 45
1895     function getLogin(): PAnsiChar;
1896     function getData(length: CardinalPtr): BytePtr;
1897     procedure putData(status: IStatus; length: Cardinal; data: Pointer);
1898     function newKey(status: IStatus): ICryptKey;
1899     end;
1900    
1901     IServerBlockImpl = class(IServerBlock)
1902     constructor create;
1903    
1904     function getLogin(): PAnsiChar; virtual; abstract;
1905     function getData(length: CardinalPtr): BytePtr; virtual; abstract;
1906     procedure putData(status: IStatus; length: Cardinal; data: Pointer); virtual; abstract;
1907     function newKey(status: IStatus): ICryptKey; virtual; abstract;
1908     end;
1909    
1910     ClientBlockVTable = class(ReferenceCountedVTable)
1911     getLogin: IClientBlock_getLoginPtr;
1912     getPassword: IClientBlock_getPasswordPtr;
1913     getData: IClientBlock_getDataPtr;
1914     putData: IClientBlock_putDataPtr;
1915     newKey: IClientBlock_newKeyPtr;
1916 tony 315 getAuthBlock: IClientBlock_getAuthBlockPtr;
1917 tony 45 end;
1918    
1919     IClientBlock = class(IReferenceCounted)
1920 tony 315 const VERSION = 4;
1921 tony 45
1922     function getLogin(): PAnsiChar;
1923     function getPassword(): PAnsiChar;
1924     function getData(length: CardinalPtr): BytePtr;
1925     procedure putData(status: IStatus; length: Cardinal; data: Pointer);
1926     function newKey(status: IStatus): ICryptKey;
1927 tony 315 function getAuthBlock(status: IStatus): IAuthBlock;
1928 tony 45 end;
1929    
1930     IClientBlockImpl = class(IClientBlock)
1931     constructor create;
1932    
1933     procedure addRef(); virtual; abstract;
1934     function release(): Integer; virtual; abstract;
1935     function getLogin(): PAnsiChar; virtual; abstract;
1936     function getPassword(): PAnsiChar; virtual; abstract;
1937     function getData(length: CardinalPtr): BytePtr; virtual; abstract;
1938     procedure putData(status: IStatus; length: Cardinal; data: Pointer); virtual; abstract;
1939     function newKey(status: IStatus): ICryptKey; virtual; abstract;
1940 tony 315 function getAuthBlock(status: IStatus): IAuthBlock; virtual; abstract;
1941 tony 45 end;
1942    
1943     ServerVTable = class(AuthVTable)
1944     authenticate: IServer_authenticatePtr;
1945 tony 315 setDbCryptCallback: IServer_setDbCryptCallbackPtr;
1946 tony 45 end;
1947    
1948     IServer = class(IAuth)
1949 tony 315 const VERSION = 6;
1950 tony 45
1951     function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
1952 tony 315 procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
1953 tony 45 end;
1954    
1955     IServerImpl = class(IServer)
1956     constructor create;
1957    
1958     procedure addRef(); virtual; abstract;
1959     function release(): Integer; virtual; abstract;
1960     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1961     function getOwner(): IReferenceCounted; virtual; abstract;
1962     function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; virtual; abstract;
1963 tony 315 procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback); virtual; abstract;
1964 tony 45 end;
1965    
1966     ClientVTable = class(AuthVTable)
1967     authenticate: IClient_authenticatePtr;
1968     end;
1969    
1970     IClient = class(IAuth)
1971     const VERSION = 5;
1972    
1973     function authenticate(status: IStatus; cBlock: IClientBlock): Integer;
1974     end;
1975    
1976     IClientImpl = class(IClient)
1977     constructor create;
1978    
1979     procedure addRef(); virtual; abstract;
1980     function release(): Integer; virtual; abstract;
1981     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1982     function getOwner(): IReferenceCounted; virtual; abstract;
1983     function authenticate(status: IStatus; cBlock: IClientBlock): Integer; virtual; abstract;
1984     end;
1985    
1986     UserFieldVTable = class(VersionedVTable)
1987     entered: IUserField_enteredPtr;
1988     specified: IUserField_specifiedPtr;
1989     setEntered: IUserField_setEnteredPtr;
1990     end;
1991    
1992     IUserField = class(IVersioned)
1993 tony 315 const VERSION = 2;
1994 tony 45
1995     function entered(): Integer;
1996     function specified(): Integer;
1997     procedure setEntered(status: IStatus; newValue: Integer);
1998     end;
1999    
2000     IUserFieldImpl = class(IUserField)
2001     constructor create;
2002    
2003     function entered(): Integer; virtual; abstract;
2004     function specified(): Integer; virtual; abstract;
2005     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
2006     end;
2007    
2008     CharUserFieldVTable = class(UserFieldVTable)
2009     get: ICharUserField_getPtr;
2010     set_: ICharUserField_set_Ptr;
2011     end;
2012    
2013     ICharUserField = class(IUserField)
2014 tony 315 const VERSION = 3;
2015 tony 45
2016     function get(): PAnsiChar;
2017     procedure set_(status: IStatus; newValue: PAnsiChar);
2018     end;
2019    
2020     ICharUserFieldImpl = class(ICharUserField)
2021     constructor create;
2022    
2023     function entered(): Integer; virtual; abstract;
2024     function specified(): Integer; virtual; abstract;
2025     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
2026     function get(): PAnsiChar; virtual; abstract;
2027     procedure set_(status: IStatus; newValue: PAnsiChar); virtual; abstract;
2028     end;
2029    
2030     IntUserFieldVTable = class(UserFieldVTable)
2031     get: IIntUserField_getPtr;
2032     set_: IIntUserField_set_Ptr;
2033     end;
2034    
2035     IIntUserField = class(IUserField)
2036 tony 315 const VERSION = 3;
2037 tony 45
2038     function get(): Integer;
2039     procedure set_(status: IStatus; newValue: Integer);
2040     end;
2041    
2042     IIntUserFieldImpl = class(IIntUserField)
2043     constructor create;
2044    
2045     function entered(): Integer; virtual; abstract;
2046     function specified(): Integer; virtual; abstract;
2047     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
2048     function get(): Integer; virtual; abstract;
2049     procedure set_(status: IStatus; newValue: Integer); virtual; abstract;
2050     end;
2051    
2052     UserVTable = class(VersionedVTable)
2053     operation: IUser_operationPtr;
2054     userName: IUser_userNamePtr;
2055     password: IUser_passwordPtr;
2056     firstName: IUser_firstNamePtr;
2057     lastName: IUser_lastNamePtr;
2058     middleName: IUser_middleNamePtr;
2059     comment: IUser_commentPtr;
2060     attributes: IUser_attributesPtr;
2061     active: IUser_activePtr;
2062     admin: IUser_adminPtr;
2063     clear: IUser_clearPtr;
2064     end;
2065    
2066     IUser = class(IVersioned)
2067 tony 315 const VERSION = 2;
2068 tony 45 const OP_USER_ADD = Cardinal(1);
2069     const OP_USER_MODIFY = Cardinal(2);
2070     const OP_USER_DELETE = Cardinal(3);
2071     const OP_USER_DISPLAY = Cardinal(4);
2072     const OP_USER_SET_MAP = Cardinal(5);
2073     const OP_USER_DROP_MAP = Cardinal(6);
2074    
2075     function operation(): Cardinal;
2076     function userName(): ICharUserField;
2077     function password(): ICharUserField;
2078     function firstName(): ICharUserField;
2079     function lastName(): ICharUserField;
2080     function middleName(): ICharUserField;
2081     function comment(): ICharUserField;
2082     function attributes(): ICharUserField;
2083     function active(): IIntUserField;
2084     function admin(): IIntUserField;
2085     procedure clear(status: IStatus);
2086     end;
2087    
2088     IUserImpl = class(IUser)
2089     constructor create;
2090    
2091     function operation(): Cardinal; virtual; abstract;
2092     function userName(): ICharUserField; virtual; abstract;
2093     function password(): ICharUserField; virtual; abstract;
2094     function firstName(): ICharUserField; virtual; abstract;
2095     function lastName(): ICharUserField; virtual; abstract;
2096     function middleName(): ICharUserField; virtual; abstract;
2097     function comment(): ICharUserField; virtual; abstract;
2098     function attributes(): ICharUserField; virtual; abstract;
2099     function active(): IIntUserField; virtual; abstract;
2100     function admin(): IIntUserField; virtual; abstract;
2101     procedure clear(status: IStatus); virtual; abstract;
2102     end;
2103    
2104     ListUsersVTable = class(VersionedVTable)
2105     list: IListUsers_listPtr;
2106     end;
2107    
2108     IListUsers = class(IVersioned)
2109 tony 315 const VERSION = 2;
2110 tony 45
2111     procedure list(status: IStatus; user: IUser);
2112     end;
2113    
2114     IListUsersImpl = class(IListUsers)
2115     constructor create;
2116    
2117     procedure list(status: IStatus; user: IUser); virtual; abstract;
2118     end;
2119    
2120     LogonInfoVTable = class(VersionedVTable)
2121     name: ILogonInfo_namePtr;
2122     role: ILogonInfo_rolePtr;
2123     networkProtocol: ILogonInfo_networkProtocolPtr;
2124     remoteAddress: ILogonInfo_remoteAddressPtr;
2125     authBlock: ILogonInfo_authBlockPtr;
2126 tony 315 attachment: ILogonInfo_attachmentPtr;
2127     transaction: ILogonInfo_transactionPtr;
2128 tony 45 end;
2129    
2130     ILogonInfo = class(IVersioned)
2131 tony 315 const VERSION = 3;
2132 tony 45
2133     function name(): PAnsiChar;
2134     function role(): PAnsiChar;
2135     function networkProtocol(): PAnsiChar;
2136     function remoteAddress(): PAnsiChar;
2137     function authBlock(length: CardinalPtr): BytePtr;
2138 tony 315 function attachment(status: IStatus): IAttachment;
2139     function transaction(status: IStatus): ITransaction;
2140 tony 45 end;
2141    
2142     ILogonInfoImpl = class(ILogonInfo)
2143     constructor create;
2144    
2145     function name(): PAnsiChar; virtual; abstract;
2146     function role(): PAnsiChar; virtual; abstract;
2147     function networkProtocol(): PAnsiChar; virtual; abstract;
2148     function remoteAddress(): PAnsiChar; virtual; abstract;
2149     function authBlock(length: CardinalPtr): BytePtr; virtual; abstract;
2150 tony 315 function attachment(status: IStatus): IAttachment; virtual; abstract;
2151     function transaction(status: IStatus): ITransaction; virtual; abstract;
2152 tony 45 end;
2153    
2154     ManagementVTable = class(PluginBaseVTable)
2155     start: IManagement_startPtr;
2156     execute: IManagement_executePtr;
2157     commit: IManagement_commitPtr;
2158     rollback: IManagement_rollbackPtr;
2159     end;
2160    
2161     IManagement = class(IPluginBase)
2162 tony 315 const VERSION = 4;
2163 tony 45
2164     procedure start(status: IStatus; logonInfo: ILogonInfo);
2165     function execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
2166     procedure commit(status: IStatus);
2167     procedure rollback(status: IStatus);
2168     end;
2169    
2170     IManagementImpl = class(IManagement)
2171     constructor create;
2172    
2173     procedure addRef(); virtual; abstract;
2174     function release(): Integer; virtual; abstract;
2175     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2176     function getOwner(): IReferenceCounted; virtual; abstract;
2177     procedure start(status: IStatus; logonInfo: ILogonInfo); virtual; abstract;
2178     function execute(status: IStatus; user: IUser; callback: IListUsers): Integer; virtual; abstract;
2179     procedure commit(status: IStatus); virtual; abstract;
2180     procedure rollback(status: IStatus); virtual; abstract;
2181     end;
2182    
2183 tony 315 AuthBlockVTable = class(VersionedVTable)
2184     getType: IAuthBlock_getTypePtr;
2185     getName: IAuthBlock_getNamePtr;
2186     getPlugin: IAuthBlock_getPluginPtr;
2187     getSecurityDb: IAuthBlock_getSecurityDbPtr;
2188     getOriginalPlugin: IAuthBlock_getOriginalPluginPtr;
2189     next: IAuthBlock_nextPtr;
2190     first: IAuthBlock_firstPtr;
2191     end;
2192    
2193     IAuthBlock = class(IVersioned)
2194     const VERSION = 2;
2195    
2196     function getType(): PAnsiChar;
2197     function getName(): PAnsiChar;
2198     function getPlugin(): PAnsiChar;
2199     function getSecurityDb(): PAnsiChar;
2200     function getOriginalPlugin(): PAnsiChar;
2201     function next(status: IStatus): Boolean;
2202     function first(status: IStatus): Boolean;
2203     end;
2204    
2205     IAuthBlockImpl = class(IAuthBlock)
2206     constructor create;
2207    
2208     function getType(): PAnsiChar; virtual; abstract;
2209     function getName(): PAnsiChar; virtual; abstract;
2210     function getPlugin(): PAnsiChar; virtual; abstract;
2211     function getSecurityDb(): PAnsiChar; virtual; abstract;
2212     function getOriginalPlugin(): PAnsiChar; virtual; abstract;
2213     function next(status: IStatus): Boolean; virtual; abstract;
2214     function first(status: IStatus): Boolean; virtual; abstract;
2215     end;
2216    
2217 tony 45 WireCryptPluginVTable = class(PluginBaseVTable)
2218     getKnownTypes: IWireCryptPlugin_getKnownTypesPtr;
2219     setKey: IWireCryptPlugin_setKeyPtr;
2220     encrypt: IWireCryptPlugin_encryptPtr;
2221     decrypt: IWireCryptPlugin_decryptPtr;
2222 tony 315 getSpecificData: IWireCryptPlugin_getSpecificDataPtr;
2223     setSpecificData: IWireCryptPlugin_setSpecificDataPtr;
2224 tony 45 end;
2225    
2226     IWireCryptPlugin = class(IPluginBase)
2227 tony 315 const VERSION = 5;
2228 tony 45
2229     function getKnownTypes(status: IStatus): PAnsiChar;
2230     procedure setKey(status: IStatus; key: ICryptKey);
2231     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2232     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2233 tony 315 function getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr;
2234     procedure setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr);
2235 tony 45 end;
2236    
2237     IWireCryptPluginImpl = class(IWireCryptPlugin)
2238     constructor create;
2239    
2240     procedure addRef(); virtual; abstract;
2241     function release(): Integer; virtual; abstract;
2242     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2243     function getOwner(): IReferenceCounted; virtual; abstract;
2244     function getKnownTypes(status: IStatus): PAnsiChar; virtual; abstract;
2245     procedure setKey(status: IStatus; key: ICryptKey); virtual; abstract;
2246     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2247     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2248 tony 315 function getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; virtual; abstract;
2249     procedure setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); virtual; abstract;
2250 tony 45 end;
2251    
2252     CryptKeyCallbackVTable = class(VersionedVTable)
2253     callback: ICryptKeyCallback_callbackPtr;
2254     end;
2255    
2256     ICryptKeyCallback = class(IVersioned)
2257 tony 315 const VERSION = 2;
2258 tony 45
2259     function callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
2260     end;
2261    
2262     ICryptKeyCallbackImpl = class(ICryptKeyCallback)
2263     constructor create;
2264    
2265     function callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; virtual; abstract;
2266     end;
2267    
2268     KeyHolderPluginVTable = class(PluginBaseVTable)
2269     keyCallback: IKeyHolderPlugin_keyCallbackPtr;
2270     keyHandle: IKeyHolderPlugin_keyHandlePtr;
2271 tony 315 useOnlyOwnKeys: IKeyHolderPlugin_useOnlyOwnKeysPtr;
2272     chainHandle: IKeyHolderPlugin_chainHandlePtr;
2273 tony 45 end;
2274    
2275     IKeyHolderPlugin = class(IPluginBase)
2276 tony 315 const VERSION = 5;
2277 tony 45
2278     function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
2279     function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
2280 tony 315 function useOnlyOwnKeys(status: IStatus): Boolean;
2281     function chainHandle(status: IStatus): ICryptKeyCallback;
2282 tony 45 end;
2283    
2284     IKeyHolderPluginImpl = class(IKeyHolderPlugin)
2285     constructor create;
2286    
2287     procedure addRef(); virtual; abstract;
2288     function release(): Integer; virtual; abstract;
2289     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2290     function getOwner(): IReferenceCounted; virtual; abstract;
2291     function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer; virtual; abstract;
2292     function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; virtual; abstract;
2293 tony 315 function useOnlyOwnKeys(status: IStatus): Boolean; virtual; abstract;
2294     function chainHandle(status: IStatus): ICryptKeyCallback; virtual; abstract;
2295 tony 45 end;
2296    
2297 tony 315 DbCryptInfoVTable = class(ReferenceCountedVTable)
2298     getDatabaseFullPath: IDbCryptInfo_getDatabaseFullPathPtr;
2299     end;
2300    
2301     IDbCryptInfo = class(IReferenceCounted)
2302     const VERSION = 3;
2303    
2304     function getDatabaseFullPath(status: IStatus): PAnsiChar;
2305     end;
2306    
2307     IDbCryptInfoImpl = class(IDbCryptInfo)
2308     constructor create;
2309    
2310     procedure addRef(); virtual; abstract;
2311     function release(): Integer; virtual; abstract;
2312     function getDatabaseFullPath(status: IStatus): PAnsiChar; virtual; abstract;
2313     end;
2314    
2315 tony 45 DbCryptPluginVTable = class(PluginBaseVTable)
2316     setKey: IDbCryptPlugin_setKeyPtr;
2317     encrypt: IDbCryptPlugin_encryptPtr;
2318     decrypt: IDbCryptPlugin_decryptPtr;
2319 tony 315 setInfo: IDbCryptPlugin_setInfoPtr;
2320 tony 45 end;
2321    
2322     IDbCryptPlugin = class(IPluginBase)
2323 tony 315 const VERSION = 5;
2324 tony 45
2325     procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
2326     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2327     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2328 tony 315 procedure setInfo(status: IStatus; info: IDbCryptInfo);
2329 tony 45 end;
2330    
2331     IDbCryptPluginImpl = class(IDbCryptPlugin)
2332     constructor create;
2333    
2334     procedure addRef(); virtual; abstract;
2335     function release(): Integer; virtual; abstract;
2336     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2337     function getOwner(): IReferenceCounted; virtual; abstract;
2338     procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); virtual; abstract;
2339     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2340     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2341 tony 315 procedure setInfo(status: IStatus; info: IDbCryptInfo); virtual; abstract;
2342 tony 45 end;
2343    
2344     ExternalContextVTable = class(VersionedVTable)
2345     getMaster: IExternalContext_getMasterPtr;
2346     getEngine: IExternalContext_getEnginePtr;
2347     getAttachment: IExternalContext_getAttachmentPtr;
2348     getTransaction: IExternalContext_getTransactionPtr;
2349     getUserName: IExternalContext_getUserNamePtr;
2350     getDatabaseName: IExternalContext_getDatabaseNamePtr;
2351     getClientCharSet: IExternalContext_getClientCharSetPtr;
2352     obtainInfoCode: IExternalContext_obtainInfoCodePtr;
2353     getInfo: IExternalContext_getInfoPtr;
2354     setInfo: IExternalContext_setInfoPtr;
2355     end;
2356    
2357     IExternalContext = class(IVersioned)
2358 tony 315 const VERSION = 2;
2359 tony 45
2360     function getMaster(): IMaster;
2361     function getEngine(status: IStatus): IExternalEngine;
2362     function getAttachment(status: IStatus): IAttachment;
2363     function getTransaction(status: IStatus): ITransaction;
2364     function getUserName(): PAnsiChar;
2365     function getDatabaseName(): PAnsiChar;
2366     function getClientCharSet(): PAnsiChar;
2367     function obtainInfoCode(): Integer;
2368     function getInfo(code: Integer): Pointer;
2369     function setInfo(code: Integer; value: Pointer): Pointer;
2370     end;
2371    
2372     IExternalContextImpl = class(IExternalContext)
2373     constructor create;
2374    
2375     function getMaster(): IMaster; virtual; abstract;
2376     function getEngine(status: IStatus): IExternalEngine; virtual; abstract;
2377     function getAttachment(status: IStatus): IAttachment; virtual; abstract;
2378     function getTransaction(status: IStatus): ITransaction; virtual; abstract;
2379     function getUserName(): PAnsiChar; virtual; abstract;
2380     function getDatabaseName(): PAnsiChar; virtual; abstract;
2381     function getClientCharSet(): PAnsiChar; virtual; abstract;
2382     function obtainInfoCode(): Integer; virtual; abstract;
2383     function getInfo(code: Integer): Pointer; virtual; abstract;
2384     function setInfo(code: Integer; value: Pointer): Pointer; virtual; abstract;
2385     end;
2386    
2387     ExternalResultSetVTable = class(DisposableVTable)
2388     fetch: IExternalResultSet_fetchPtr;
2389     end;
2390    
2391     IExternalResultSet = class(IDisposable)
2392 tony 315 const VERSION = 3;
2393 tony 45
2394     function fetch(status: IStatus): Boolean;
2395     end;
2396    
2397     IExternalResultSetImpl = class(IExternalResultSet)
2398     constructor create;
2399    
2400     procedure dispose(); virtual; abstract;
2401     function fetch(status: IStatus): Boolean; virtual; abstract;
2402     end;
2403    
2404     ExternalFunctionVTable = class(DisposableVTable)
2405     getCharSet: IExternalFunction_getCharSetPtr;
2406     execute: IExternalFunction_executePtr;
2407     end;
2408    
2409     IExternalFunction = class(IDisposable)
2410     const VERSION = 3;
2411    
2412     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2413     procedure execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer);
2414     end;
2415    
2416     IExternalFunctionImpl = class(IExternalFunction)
2417     constructor create;
2418    
2419     procedure dispose(); virtual; abstract;
2420     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2421     procedure execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); virtual; abstract;
2422     end;
2423    
2424     ExternalProcedureVTable = class(DisposableVTable)
2425     getCharSet: IExternalProcedure_getCharSetPtr;
2426     open: IExternalProcedure_openPtr;
2427     end;
2428    
2429     IExternalProcedure = class(IDisposable)
2430     const VERSION = 3;
2431    
2432     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2433     function open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet;
2434     end;
2435    
2436     IExternalProcedureImpl = class(IExternalProcedure)
2437     constructor create;
2438    
2439     procedure dispose(); virtual; abstract;
2440     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2441     function open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; virtual; abstract;
2442     end;
2443    
2444     ExternalTriggerVTable = class(DisposableVTable)
2445     getCharSet: IExternalTrigger_getCharSetPtr;
2446     execute: IExternalTrigger_executePtr;
2447     end;
2448    
2449     IExternalTrigger = class(IDisposable)
2450     const VERSION = 3;
2451     const TYPE_BEFORE = Cardinal(1);
2452     const TYPE_AFTER = Cardinal(2);
2453     const TYPE_DATABASE = Cardinal(3);
2454     const ACTION_INSERT = Cardinal(1);
2455     const ACTION_UPDATE = Cardinal(2);
2456     const ACTION_DELETE = Cardinal(3);
2457     const ACTION_CONNECT = Cardinal(4);
2458     const ACTION_DISCONNECT = Cardinal(5);
2459     const ACTION_TRANS_START = Cardinal(6);
2460     const ACTION_TRANS_COMMIT = Cardinal(7);
2461     const ACTION_TRANS_ROLLBACK = Cardinal(8);
2462     const ACTION_DDL = Cardinal(9);
2463    
2464     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2465     procedure execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer);
2466     end;
2467    
2468     IExternalTriggerImpl = class(IExternalTrigger)
2469     constructor create;
2470    
2471     procedure dispose(); virtual; abstract;
2472     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2473     procedure execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); virtual; abstract;
2474     end;
2475    
2476     RoutineMetadataVTable = class(VersionedVTable)
2477     getPackage: IRoutineMetadata_getPackagePtr;
2478     getName: IRoutineMetadata_getNamePtr;
2479     getEntryPoint: IRoutineMetadata_getEntryPointPtr;
2480     getBody: IRoutineMetadata_getBodyPtr;
2481     getInputMetadata: IRoutineMetadata_getInputMetadataPtr;
2482     getOutputMetadata: IRoutineMetadata_getOutputMetadataPtr;
2483     getTriggerMetadata: IRoutineMetadata_getTriggerMetadataPtr;
2484     getTriggerTable: IRoutineMetadata_getTriggerTablePtr;
2485     getTriggerType: IRoutineMetadata_getTriggerTypePtr;
2486     end;
2487    
2488     IRoutineMetadata = class(IVersioned)
2489 tony 315 const VERSION = 2;
2490 tony 45
2491     function getPackage(status: IStatus): PAnsiChar;
2492     function getName(status: IStatus): PAnsiChar;
2493     function getEntryPoint(status: IStatus): PAnsiChar;
2494     function getBody(status: IStatus): PAnsiChar;
2495     function getInputMetadata(status: IStatus): IMessageMetadata;
2496     function getOutputMetadata(status: IStatus): IMessageMetadata;
2497     function getTriggerMetadata(status: IStatus): IMessageMetadata;
2498     function getTriggerTable(status: IStatus): PAnsiChar;
2499     function getTriggerType(status: IStatus): Cardinal;
2500     end;
2501    
2502     IRoutineMetadataImpl = class(IRoutineMetadata)
2503     constructor create;
2504    
2505     function getPackage(status: IStatus): PAnsiChar; virtual; abstract;
2506     function getName(status: IStatus): PAnsiChar; virtual; abstract;
2507     function getEntryPoint(status: IStatus): PAnsiChar; virtual; abstract;
2508     function getBody(status: IStatus): PAnsiChar; virtual; abstract;
2509     function getInputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2510     function getOutputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2511     function getTriggerMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2512     function getTriggerTable(status: IStatus): PAnsiChar; virtual; abstract;
2513     function getTriggerType(status: IStatus): Cardinal; virtual; abstract;
2514     end;
2515    
2516     ExternalEngineVTable = class(PluginBaseVTable)
2517     open: IExternalEngine_openPtr;
2518     openAttachment: IExternalEngine_openAttachmentPtr;
2519     closeAttachment: IExternalEngine_closeAttachmentPtr;
2520     makeFunction: IExternalEngine_makeFunctionPtr;
2521     makeProcedure: IExternalEngine_makeProcedurePtr;
2522     makeTrigger: IExternalEngine_makeTriggerPtr;
2523     end;
2524    
2525     IExternalEngine = class(IPluginBase)
2526 tony 315 const VERSION = 4;
2527 tony 45
2528     procedure open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
2529     procedure openAttachment(status: IStatus; context: IExternalContext);
2530     procedure closeAttachment(status: IStatus; context: IExternalContext);
2531     function makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction;
2532     function makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure;
2533     function makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger;
2534     end;
2535    
2536     IExternalEngineImpl = class(IExternalEngine)
2537     constructor create;
2538    
2539     procedure addRef(); virtual; abstract;
2540     function release(): Integer; virtual; abstract;
2541     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2542     function getOwner(): IReferenceCounted; virtual; abstract;
2543     procedure open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); virtual; abstract;
2544     procedure openAttachment(status: IStatus; context: IExternalContext); virtual; abstract;
2545     procedure closeAttachment(status: IStatus; context: IExternalContext); virtual; abstract;
2546     function makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; virtual; abstract;
2547     function makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; virtual; abstract;
2548     function makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; virtual; abstract;
2549     end;
2550    
2551     TimerVTable = class(ReferenceCountedVTable)
2552     handler: ITimer_handlerPtr;
2553     end;
2554    
2555     ITimer = class(IReferenceCounted)
2556     const VERSION = 3;
2557    
2558     procedure handler();
2559     end;
2560    
2561     ITimerImpl = class(ITimer)
2562     constructor create;
2563    
2564     procedure addRef(); virtual; abstract;
2565     function release(): Integer; virtual; abstract;
2566     procedure handler(); virtual; abstract;
2567     end;
2568    
2569     TimerControlVTable = class(VersionedVTable)
2570     start: ITimerControl_startPtr;
2571     stop: ITimerControl_stopPtr;
2572     end;
2573    
2574     ITimerControl = class(IVersioned)
2575     const VERSION = 2;
2576    
2577     procedure start(status: IStatus; timer: ITimer; microSeconds: QWord);
2578     procedure stop(status: IStatus; timer: ITimer);
2579     end;
2580    
2581     ITimerControlImpl = class(ITimerControl)
2582     constructor create;
2583    
2584     procedure start(status: IStatus; timer: ITimer; microSeconds: QWord); virtual; abstract;
2585     procedure stop(status: IStatus; timer: ITimer); virtual; abstract;
2586     end;
2587    
2588     VersionCallbackVTable = class(VersionedVTable)
2589     callback: IVersionCallback_callbackPtr;
2590     end;
2591    
2592     IVersionCallback = class(IVersioned)
2593 tony 315 const VERSION = 2;
2594 tony 45
2595     procedure callback(status: IStatus; text: PAnsiChar);
2596     end;
2597    
2598     IVersionCallbackImpl = class(IVersionCallback)
2599     constructor create;
2600    
2601     procedure callback(status: IStatus; text: PAnsiChar); virtual; abstract;
2602     end;
2603    
2604     UtilVTable = class(VersionedVTable)
2605     getFbVersion: IUtil_getFbVersionPtr;
2606     loadBlob: IUtil_loadBlobPtr;
2607     dumpBlob: IUtil_dumpBlobPtr;
2608     getPerfCounters: IUtil_getPerfCountersPtr;
2609     executeCreateDatabase: IUtil_executeCreateDatabasePtr;
2610     decodeDate: IUtil_decodeDatePtr;
2611     decodeTime: IUtil_decodeTimePtr;
2612     encodeDate: IUtil_encodeDatePtr;
2613     encodeTime: IUtil_encodeTimePtr;
2614     formatStatus: IUtil_formatStatusPtr;
2615     getClientVersion: IUtil_getClientVersionPtr;
2616     getXpbBuilder: IUtil_getXpbBuilderPtr;
2617     setOffsets: IUtil_setOffsetsPtr;
2618 tony 315 getDecFloat16: IUtil_getDecFloat16Ptr;
2619     getDecFloat34: IUtil_getDecFloat34Ptr;
2620     decodeTimeTz: IUtil_decodeTimeTzPtr;
2621     decodeTimeStampTz: IUtil_decodeTimeStampTzPtr;
2622     encodeTimeTz: IUtil_encodeTimeTzPtr;
2623     encodeTimeStampTz: IUtil_encodeTimeStampTzPtr;
2624     getInt128: IUtil_getInt128Ptr;
2625     decodeTimeTzEx: IUtil_decodeTimeTzExPtr;
2626     decodeTimeStampTzEx: IUtil_decodeTimeStampTzExPtr;
2627 tony 45 end;
2628    
2629     IUtil = class(IVersioned)
2630 tony 315 const VERSION = 4;
2631 tony 45
2632     procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
2633 tony 315 procedure loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2634     procedure dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2635 tony 45 procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
2636     function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
2637     procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
2638     procedure decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr);
2639     function encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE;
2640     function encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME;
2641     function formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal;
2642     function getClientVersion(): Cardinal;
2643     function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
2644     function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
2645 tony 315 function getDecFloat16(status: IStatus): IDecFloat16;
2646     function getDecFloat34(status: IStatus): IDecFloat34;
2647     procedure decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2648     procedure decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2649     procedure encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
2650     procedure encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
2651     function getInt128(status: IStatus): IInt128;
2652     procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2653     procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2654 tony 45 end;
2655    
2656     IUtilImpl = class(IUtil)
2657     constructor create;
2658    
2659     procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback); virtual; abstract;
2660 tony 315 procedure loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2661     procedure dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2662 tony 45 procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); virtual; abstract;
2663     function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; virtual; abstract;
2664     procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); virtual; abstract;
2665     procedure decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); virtual; abstract;
2666     function encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; virtual; abstract;
2667     function encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; virtual; abstract;
2668     function formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; virtual; abstract;
2669     function getClientVersion(): Cardinal; virtual; abstract;
2670     function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; virtual; abstract;
2671     function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; virtual; abstract;
2672 tony 315 function getDecFloat16(status: IStatus): IDecFloat16; virtual; abstract;
2673     function getDecFloat34(status: IStatus): IDecFloat34; virtual; abstract;
2674     procedure decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2675     procedure decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2676     procedure encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); virtual; abstract;
2677     procedure encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); virtual; abstract;
2678     function getInt128(status: IStatus): IInt128; virtual; abstract;
2679     procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2680     procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2681 tony 45 end;
2682    
2683     OffsetsCallbackVTable = class(VersionedVTable)
2684     setOffset: IOffsetsCallback_setOffsetPtr;
2685     end;
2686    
2687     IOffsetsCallback = class(IVersioned)
2688 tony 315 const VERSION = 2;
2689 tony 45
2690     procedure setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
2691     end;
2692    
2693     IOffsetsCallbackImpl = class(IOffsetsCallback)
2694     constructor create;
2695    
2696     procedure setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); virtual; abstract;
2697     end;
2698    
2699     XpbBuilderVTable = class(DisposableVTable)
2700     clear: IXpbBuilder_clearPtr;
2701     removeCurrent: IXpbBuilder_removeCurrentPtr;
2702     insertInt: IXpbBuilder_insertIntPtr;
2703     insertBigInt: IXpbBuilder_insertBigIntPtr;
2704     insertBytes: IXpbBuilder_insertBytesPtr;
2705     insertString: IXpbBuilder_insertStringPtr;
2706     insertTag: IXpbBuilder_insertTagPtr;
2707     isEof: IXpbBuilder_isEofPtr;
2708     moveNext: IXpbBuilder_moveNextPtr;
2709     rewind: IXpbBuilder_rewindPtr;
2710     findFirst: IXpbBuilder_findFirstPtr;
2711     findNext: IXpbBuilder_findNextPtr;
2712     getTag: IXpbBuilder_getTagPtr;
2713     getLength: IXpbBuilder_getLengthPtr;
2714     getInt: IXpbBuilder_getIntPtr;
2715     getBigInt: IXpbBuilder_getBigIntPtr;
2716     getString: IXpbBuilder_getStringPtr;
2717     getBytes: IXpbBuilder_getBytesPtr;
2718     getBufferLength: IXpbBuilder_getBufferLengthPtr;
2719     getBuffer: IXpbBuilder_getBufferPtr;
2720     end;
2721    
2722     IXpbBuilder = class(IDisposable)
2723 tony 315 const VERSION = 3;
2724 tony 45 const DPB = Cardinal(1);
2725     const SPB_ATTACH = Cardinal(2);
2726     const SPB_START = Cardinal(3);
2727     const TPB = Cardinal(4);
2728 tony 315 const BATCH = Cardinal(5);
2729     const BPB = Cardinal(6);
2730     const SPB_SEND = Cardinal(7);
2731     const SPB_RECEIVE = Cardinal(8);
2732     const SPB_RESPONSE = Cardinal(9);
2733 tony 45
2734     procedure clear(status: IStatus);
2735     procedure removeCurrent(status: IStatus);
2736     procedure insertInt(status: IStatus; tag: Byte; value: Integer);
2737     procedure insertBigInt(status: IStatus; tag: Byte; value: Int64);
2738     procedure insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal);
2739     procedure insertString(status: IStatus; tag: Byte; str: PAnsiChar);
2740     procedure insertTag(status: IStatus; tag: Byte);
2741     function isEof(status: IStatus): Boolean;
2742     procedure moveNext(status: IStatus);
2743     procedure rewind(status: IStatus);
2744     function findFirst(status: IStatus; tag: Byte): Boolean;
2745     function findNext(status: IStatus): Boolean;
2746     function getTag(status: IStatus): Byte;
2747     function getLength(status: IStatus): Cardinal;
2748     function getInt(status: IStatus): Integer;
2749     function getBigInt(status: IStatus): Int64;
2750     function getString(status: IStatus): PAnsiChar;
2751     function getBytes(status: IStatus): BytePtr;
2752     function getBufferLength(status: IStatus): Cardinal;
2753     function getBuffer(status: IStatus): BytePtr;
2754     end;
2755    
2756     IXpbBuilderImpl = class(IXpbBuilder)
2757     constructor create;
2758    
2759     procedure dispose(); virtual; abstract;
2760     procedure clear(status: IStatus); virtual; abstract;
2761     procedure removeCurrent(status: IStatus); virtual; abstract;
2762     procedure insertInt(status: IStatus; tag: Byte; value: Integer); virtual; abstract;
2763     procedure insertBigInt(status: IStatus; tag: Byte; value: Int64); virtual; abstract;
2764     procedure insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); virtual; abstract;
2765     procedure insertString(status: IStatus; tag: Byte; str: PAnsiChar); virtual; abstract;
2766     procedure insertTag(status: IStatus; tag: Byte); virtual; abstract;
2767     function isEof(status: IStatus): Boolean; virtual; abstract;
2768     procedure moveNext(status: IStatus); virtual; abstract;
2769     procedure rewind(status: IStatus); virtual; abstract;
2770     function findFirst(status: IStatus; tag: Byte): Boolean; virtual; abstract;
2771     function findNext(status: IStatus): Boolean; virtual; abstract;
2772     function getTag(status: IStatus): Byte; virtual; abstract;
2773     function getLength(status: IStatus): Cardinal; virtual; abstract;
2774     function getInt(status: IStatus): Integer; virtual; abstract;
2775     function getBigInt(status: IStatus): Int64; virtual; abstract;
2776     function getString(status: IStatus): PAnsiChar; virtual; abstract;
2777     function getBytes(status: IStatus): BytePtr; virtual; abstract;
2778     function getBufferLength(status: IStatus): Cardinal; virtual; abstract;
2779     function getBuffer(status: IStatus): BytePtr; virtual; abstract;
2780     end;
2781    
2782     TraceConnectionVTable = class(VersionedVTable)
2783     getKind: ITraceConnection_getKindPtr;
2784     getProcessID: ITraceConnection_getProcessIDPtr;
2785     getUserName: ITraceConnection_getUserNamePtr;
2786     getRoleName: ITraceConnection_getRoleNamePtr;
2787     getCharSet: ITraceConnection_getCharSetPtr;
2788     getRemoteProtocol: ITraceConnection_getRemoteProtocolPtr;
2789     getRemoteAddress: ITraceConnection_getRemoteAddressPtr;
2790     getRemoteProcessID: ITraceConnection_getRemoteProcessIDPtr;
2791     getRemoteProcessName: ITraceConnection_getRemoteProcessNamePtr;
2792     end;
2793    
2794     ITraceConnection = class(IVersioned)
2795 tony 315 const VERSION = 2;
2796 tony 45 const KIND_DATABASE = Cardinal(1);
2797     const KIND_SERVICE = Cardinal(2);
2798    
2799     function getKind(): Cardinal;
2800     function getProcessID(): Integer;
2801     function getUserName(): PAnsiChar;
2802     function getRoleName(): PAnsiChar;
2803     function getCharSet(): PAnsiChar;
2804     function getRemoteProtocol(): PAnsiChar;
2805     function getRemoteAddress(): PAnsiChar;
2806     function getRemoteProcessID(): Integer;
2807     function getRemoteProcessName(): PAnsiChar;
2808     end;
2809    
2810     ITraceConnectionImpl = class(ITraceConnection)
2811     constructor create;
2812    
2813     function getKind(): Cardinal; virtual; abstract;
2814     function getProcessID(): Integer; virtual; abstract;
2815     function getUserName(): PAnsiChar; virtual; abstract;
2816     function getRoleName(): PAnsiChar; virtual; abstract;
2817     function getCharSet(): PAnsiChar; virtual; abstract;
2818     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
2819     function getRemoteAddress(): PAnsiChar; virtual; abstract;
2820     function getRemoteProcessID(): Integer; virtual; abstract;
2821     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
2822     end;
2823    
2824     TraceDatabaseConnectionVTable = class(TraceConnectionVTable)
2825     getConnectionID: ITraceDatabaseConnection_getConnectionIDPtr;
2826     getDatabaseName: ITraceDatabaseConnection_getDatabaseNamePtr;
2827     end;
2828    
2829     ITraceDatabaseConnection = class(ITraceConnection)
2830 tony 315 const VERSION = 3;
2831 tony 45
2832     function getConnectionID(): Int64;
2833     function getDatabaseName(): PAnsiChar;
2834     end;
2835    
2836     ITraceDatabaseConnectionImpl = class(ITraceDatabaseConnection)
2837     constructor create;
2838    
2839     function getKind(): Cardinal; virtual; abstract;
2840     function getProcessID(): Integer; virtual; abstract;
2841     function getUserName(): PAnsiChar; virtual; abstract;
2842     function getRoleName(): PAnsiChar; virtual; abstract;
2843     function getCharSet(): PAnsiChar; virtual; abstract;
2844     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
2845     function getRemoteAddress(): PAnsiChar; virtual; abstract;
2846     function getRemoteProcessID(): Integer; virtual; abstract;
2847     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
2848     function getConnectionID(): Int64; virtual; abstract;
2849     function getDatabaseName(): PAnsiChar; virtual; abstract;
2850     end;
2851    
2852     TraceTransactionVTable = class(VersionedVTable)
2853     getTransactionID: ITraceTransaction_getTransactionIDPtr;
2854     getReadOnly: ITraceTransaction_getReadOnlyPtr;
2855     getWait: ITraceTransaction_getWaitPtr;
2856     getIsolation: ITraceTransaction_getIsolationPtr;
2857     getPerf: ITraceTransaction_getPerfPtr;
2858 tony 315 getInitialID: ITraceTransaction_getInitialIDPtr;
2859     getPreviousID: ITraceTransaction_getPreviousIDPtr;
2860 tony 45 end;
2861    
2862     ITraceTransaction = class(IVersioned)
2863 tony 315 const VERSION = 3;
2864 tony 45 const ISOLATION_CONSISTENCY = Cardinal(1);
2865     const ISOLATION_CONCURRENCY = Cardinal(2);
2866     const ISOLATION_READ_COMMITTED_RECVER = Cardinal(3);
2867     const ISOLATION_READ_COMMITTED_NORECVER = Cardinal(4);
2868 tony 315 const ISOLATION_READ_COMMITTED_READ_CONSISTENCY = Cardinal(5);
2869 tony 45
2870     function getTransactionID(): Int64;
2871     function getReadOnly(): Boolean;
2872     function getWait(): Integer;
2873     function getIsolation(): Cardinal;
2874     function getPerf(): PerformanceInfoPtr;
2875 tony 315 function getInitialID(): Int64;
2876     function getPreviousID(): Int64;
2877 tony 45 end;
2878    
2879     ITraceTransactionImpl = class(ITraceTransaction)
2880     constructor create;
2881    
2882     function getTransactionID(): Int64; virtual; abstract;
2883     function getReadOnly(): Boolean; virtual; abstract;
2884     function getWait(): Integer; virtual; abstract;
2885     function getIsolation(): Cardinal; virtual; abstract;
2886     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2887 tony 315 function getInitialID(): Int64; virtual; abstract;
2888     function getPreviousID(): Int64; virtual; abstract;
2889 tony 45 end;
2890    
2891     TraceParamsVTable = class(VersionedVTable)
2892     getCount: ITraceParams_getCountPtr;
2893     getParam: ITraceParams_getParamPtr;
2894 tony 315 getTextUTF8: ITraceParams_getTextUTF8Ptr;
2895 tony 45 end;
2896    
2897     ITraceParams = class(IVersioned)
2898 tony 315 const VERSION = 3;
2899 tony 45
2900     function getCount(): Cardinal;
2901     function getParam(idx: Cardinal): dscPtr;
2902 tony 315 function getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar;
2903 tony 45 end;
2904    
2905     ITraceParamsImpl = class(ITraceParams)
2906     constructor create;
2907    
2908     function getCount(): Cardinal; virtual; abstract;
2909     function getParam(idx: Cardinal): dscPtr; virtual; abstract;
2910 tony 315 function getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar; virtual; abstract;
2911 tony 45 end;
2912    
2913     TraceStatementVTable = class(VersionedVTable)
2914     getStmtID: ITraceStatement_getStmtIDPtr;
2915     getPerf: ITraceStatement_getPerfPtr;
2916     end;
2917    
2918     ITraceStatement = class(IVersioned)
2919     const VERSION = 2;
2920    
2921     function getStmtID(): Int64;
2922     function getPerf(): PerformanceInfoPtr;
2923     end;
2924    
2925     ITraceStatementImpl = class(ITraceStatement)
2926     constructor create;
2927    
2928     function getStmtID(): Int64; virtual; abstract;
2929     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2930     end;
2931    
2932     TraceSQLStatementVTable = class(TraceStatementVTable)
2933     getText: ITraceSQLStatement_getTextPtr;
2934     getPlan: ITraceSQLStatement_getPlanPtr;
2935     getInputs: ITraceSQLStatement_getInputsPtr;
2936     getTextUTF8: ITraceSQLStatement_getTextUTF8Ptr;
2937     getExplainedPlan: ITraceSQLStatement_getExplainedPlanPtr;
2938     end;
2939    
2940     ITraceSQLStatement = class(ITraceStatement)
2941 tony 315 const VERSION = 3;
2942 tony 45
2943     function getText(): PAnsiChar;
2944     function getPlan(): PAnsiChar;
2945     function getInputs(): ITraceParams;
2946     function getTextUTF8(): PAnsiChar;
2947     function getExplainedPlan(): PAnsiChar;
2948     end;
2949    
2950     ITraceSQLStatementImpl = class(ITraceSQLStatement)
2951     constructor create;
2952    
2953     function getStmtID(): Int64; virtual; abstract;
2954     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2955     function getText(): PAnsiChar; virtual; abstract;
2956     function getPlan(): PAnsiChar; virtual; abstract;
2957     function getInputs(): ITraceParams; virtual; abstract;
2958     function getTextUTF8(): PAnsiChar; virtual; abstract;
2959     function getExplainedPlan(): PAnsiChar; virtual; abstract;
2960     end;
2961    
2962     TraceBLRStatementVTable = class(TraceStatementVTable)
2963     getData: ITraceBLRStatement_getDataPtr;
2964     getDataLength: ITraceBLRStatement_getDataLengthPtr;
2965     getText: ITraceBLRStatement_getTextPtr;
2966     end;
2967    
2968     ITraceBLRStatement = class(ITraceStatement)
2969 tony 315 const VERSION = 3;
2970 tony 45
2971     function getData(): BytePtr;
2972     function getDataLength(): Cardinal;
2973     function getText(): PAnsiChar;
2974     end;
2975    
2976     ITraceBLRStatementImpl = class(ITraceBLRStatement)
2977     constructor create;
2978    
2979     function getStmtID(): Int64; virtual; abstract;
2980     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2981     function getData(): BytePtr; virtual; abstract;
2982     function getDataLength(): Cardinal; virtual; abstract;
2983     function getText(): PAnsiChar; virtual; abstract;
2984     end;
2985    
2986     TraceDYNRequestVTable = class(VersionedVTable)
2987     getData: ITraceDYNRequest_getDataPtr;
2988     getDataLength: ITraceDYNRequest_getDataLengthPtr;
2989     getText: ITraceDYNRequest_getTextPtr;
2990     end;
2991    
2992     ITraceDYNRequest = class(IVersioned)
2993 tony 315 const VERSION = 2;
2994 tony 45
2995     function getData(): BytePtr;
2996     function getDataLength(): Cardinal;
2997     function getText(): PAnsiChar;
2998     end;
2999    
3000     ITraceDYNRequestImpl = class(ITraceDYNRequest)
3001     constructor create;
3002    
3003     function getData(): BytePtr; virtual; abstract;
3004     function getDataLength(): Cardinal; virtual; abstract;
3005     function getText(): PAnsiChar; virtual; abstract;
3006     end;
3007    
3008     TraceContextVariableVTable = class(VersionedVTable)
3009     getNameSpace: ITraceContextVariable_getNameSpacePtr;
3010     getVarName: ITraceContextVariable_getVarNamePtr;
3011     getVarValue: ITraceContextVariable_getVarValuePtr;
3012     end;
3013    
3014     ITraceContextVariable = class(IVersioned)
3015 tony 315 const VERSION = 2;
3016 tony 45
3017     function getNameSpace(): PAnsiChar;
3018     function getVarName(): PAnsiChar;
3019     function getVarValue(): PAnsiChar;
3020     end;
3021    
3022     ITraceContextVariableImpl = class(ITraceContextVariable)
3023     constructor create;
3024    
3025     function getNameSpace(): PAnsiChar; virtual; abstract;
3026     function getVarName(): PAnsiChar; virtual; abstract;
3027     function getVarValue(): PAnsiChar; virtual; abstract;
3028     end;
3029    
3030     TraceProcedureVTable = class(VersionedVTable)
3031     getProcName: ITraceProcedure_getProcNamePtr;
3032     getInputs: ITraceProcedure_getInputsPtr;
3033     getPerf: ITraceProcedure_getPerfPtr;
3034     end;
3035    
3036     ITraceProcedure = class(IVersioned)
3037 tony 315 const VERSION = 2;
3038 tony 45
3039     function getProcName(): PAnsiChar;
3040     function getInputs(): ITraceParams;
3041     function getPerf(): PerformanceInfoPtr;
3042     end;
3043    
3044     ITraceProcedureImpl = class(ITraceProcedure)
3045     constructor create;
3046    
3047     function getProcName(): PAnsiChar; virtual; abstract;
3048     function getInputs(): ITraceParams; virtual; abstract;
3049     function getPerf(): PerformanceInfoPtr; virtual; abstract;
3050     end;
3051    
3052     TraceFunctionVTable = class(VersionedVTable)
3053     getFuncName: ITraceFunction_getFuncNamePtr;
3054     getInputs: ITraceFunction_getInputsPtr;
3055     getResult: ITraceFunction_getResultPtr;
3056     getPerf: ITraceFunction_getPerfPtr;
3057     end;
3058    
3059     ITraceFunction = class(IVersioned)
3060 tony 315 const VERSION = 2;
3061 tony 45
3062     function getFuncName(): PAnsiChar;
3063     function getInputs(): ITraceParams;
3064     function getResult(): ITraceParams;
3065     function getPerf(): PerformanceInfoPtr;
3066     end;
3067    
3068     ITraceFunctionImpl = class(ITraceFunction)
3069     constructor create;
3070    
3071     function getFuncName(): PAnsiChar; virtual; abstract;
3072     function getInputs(): ITraceParams; virtual; abstract;
3073     function getResult(): ITraceParams; virtual; abstract;
3074     function getPerf(): PerformanceInfoPtr; virtual; abstract;
3075     end;
3076    
3077     TraceTriggerVTable = class(VersionedVTable)
3078     getTriggerName: ITraceTrigger_getTriggerNamePtr;
3079     getRelationName: ITraceTrigger_getRelationNamePtr;
3080     getAction: ITraceTrigger_getActionPtr;
3081     getWhich: ITraceTrigger_getWhichPtr;
3082     getPerf: ITraceTrigger_getPerfPtr;
3083     end;
3084    
3085     ITraceTrigger = class(IVersioned)
3086 tony 315 const VERSION = 2;
3087 tony 45 const TYPE_ALL = Cardinal(0);
3088     const TYPE_BEFORE = Cardinal(1);
3089     const TYPE_AFTER = Cardinal(2);
3090    
3091     function getTriggerName(): PAnsiChar;
3092     function getRelationName(): PAnsiChar;
3093     function getAction(): Integer;
3094     function getWhich(): Integer;
3095     function getPerf(): PerformanceInfoPtr;
3096     end;
3097    
3098     ITraceTriggerImpl = class(ITraceTrigger)
3099     constructor create;
3100    
3101     function getTriggerName(): PAnsiChar; virtual; abstract;
3102     function getRelationName(): PAnsiChar; virtual; abstract;
3103     function getAction(): Integer; virtual; abstract;
3104     function getWhich(): Integer; virtual; abstract;
3105     function getPerf(): PerformanceInfoPtr; virtual; abstract;
3106     end;
3107    
3108     TraceServiceConnectionVTable = class(TraceConnectionVTable)
3109     getServiceID: ITraceServiceConnection_getServiceIDPtr;
3110     getServiceMgr: ITraceServiceConnection_getServiceMgrPtr;
3111     getServiceName: ITraceServiceConnection_getServiceNamePtr;
3112     end;
3113    
3114     ITraceServiceConnection = class(ITraceConnection)
3115 tony 315 const VERSION = 3;
3116 tony 45
3117     function getServiceID(): Pointer;
3118     function getServiceMgr(): PAnsiChar;
3119     function getServiceName(): PAnsiChar;
3120     end;
3121    
3122     ITraceServiceConnectionImpl = class(ITraceServiceConnection)
3123     constructor create;
3124    
3125     function getKind(): Cardinal; virtual; abstract;
3126     function getProcessID(): Integer; virtual; abstract;
3127     function getUserName(): PAnsiChar; virtual; abstract;
3128     function getRoleName(): PAnsiChar; virtual; abstract;
3129     function getCharSet(): PAnsiChar; virtual; abstract;
3130     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
3131     function getRemoteAddress(): PAnsiChar; virtual; abstract;
3132     function getRemoteProcessID(): Integer; virtual; abstract;
3133     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
3134     function getServiceID(): Pointer; virtual; abstract;
3135     function getServiceMgr(): PAnsiChar; virtual; abstract;
3136     function getServiceName(): PAnsiChar; virtual; abstract;
3137     end;
3138    
3139     TraceStatusVectorVTable = class(VersionedVTable)
3140     hasError: ITraceStatusVector_hasErrorPtr;
3141     hasWarning: ITraceStatusVector_hasWarningPtr;
3142     getStatus: ITraceStatusVector_getStatusPtr;
3143     getText: ITraceStatusVector_getTextPtr;
3144     end;
3145    
3146     ITraceStatusVector = class(IVersioned)
3147 tony 315 const VERSION = 2;
3148 tony 45
3149     function hasError(): Boolean;
3150     function hasWarning(): Boolean;
3151     function getStatus(): IStatus;
3152     function getText(): PAnsiChar;
3153     end;
3154    
3155     ITraceStatusVectorImpl = class(ITraceStatusVector)
3156     constructor create;
3157    
3158     function hasError(): Boolean; virtual; abstract;
3159     function hasWarning(): Boolean; virtual; abstract;
3160     function getStatus(): IStatus; virtual; abstract;
3161     function getText(): PAnsiChar; virtual; abstract;
3162     end;
3163    
3164     TraceSweepInfoVTable = class(VersionedVTable)
3165     getOIT: ITraceSweepInfo_getOITPtr;
3166     getOST: ITraceSweepInfo_getOSTPtr;
3167     getOAT: ITraceSweepInfo_getOATPtr;
3168     getNext: ITraceSweepInfo_getNextPtr;
3169     getPerf: ITraceSweepInfo_getPerfPtr;
3170     end;
3171    
3172     ITraceSweepInfo = class(IVersioned)
3173 tony 315 const VERSION = 2;
3174 tony 45
3175     function getOIT(): Int64;
3176     function getOST(): Int64;
3177     function getOAT(): Int64;
3178     function getNext(): Int64;
3179     function getPerf(): PerformanceInfoPtr;
3180     end;
3181    
3182     ITraceSweepInfoImpl = class(ITraceSweepInfo)
3183     constructor create;
3184    
3185     function getOIT(): Int64; virtual; abstract;
3186     function getOST(): Int64; virtual; abstract;
3187     function getOAT(): Int64; virtual; abstract;
3188     function getNext(): Int64; virtual; abstract;
3189     function getPerf(): PerformanceInfoPtr; virtual; abstract;
3190     end;
3191    
3192     TraceLogWriterVTable = class(ReferenceCountedVTable)
3193     write: ITraceLogWriter_writePtr;
3194 tony 315 write_s: ITraceLogWriter_write_sPtr;
3195 tony 45 end;
3196    
3197     ITraceLogWriter = class(IReferenceCounted)
3198 tony 315 const VERSION = 4;
3199 tony 45
3200     function write(buf: Pointer; size: Cardinal): Cardinal;
3201 tony 315 function write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal;
3202 tony 45 end;
3203    
3204     ITraceLogWriterImpl = class(ITraceLogWriter)
3205     constructor create;
3206    
3207     procedure addRef(); virtual; abstract;
3208     function release(): Integer; virtual; abstract;
3209     function write(buf: Pointer; size: Cardinal): Cardinal; virtual; abstract;
3210 tony 315 function write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal; virtual; abstract;
3211 tony 45 end;
3212    
3213     TraceInitInfoVTable = class(VersionedVTable)
3214     getConfigText: ITraceInitInfo_getConfigTextPtr;
3215     getTraceSessionID: ITraceInitInfo_getTraceSessionIDPtr;
3216     getTraceSessionName: ITraceInitInfo_getTraceSessionNamePtr;
3217     getFirebirdRootDirectory: ITraceInitInfo_getFirebirdRootDirectoryPtr;
3218     getDatabaseName: ITraceInitInfo_getDatabaseNamePtr;
3219     getConnection: ITraceInitInfo_getConnectionPtr;
3220     getLogWriter: ITraceInitInfo_getLogWriterPtr;
3221     end;
3222    
3223     ITraceInitInfo = class(IVersioned)
3224 tony 315 const VERSION = 2;
3225 tony 45
3226     function getConfigText(): PAnsiChar;
3227     function getTraceSessionID(): Integer;
3228     function getTraceSessionName(): PAnsiChar;
3229     function getFirebirdRootDirectory(): PAnsiChar;
3230     function getDatabaseName(): PAnsiChar;
3231     function getConnection(): ITraceDatabaseConnection;
3232     function getLogWriter(): ITraceLogWriter;
3233     end;
3234    
3235     ITraceInitInfoImpl = class(ITraceInitInfo)
3236     constructor create;
3237    
3238     function getConfigText(): PAnsiChar; virtual; abstract;
3239     function getTraceSessionID(): Integer; virtual; abstract;
3240     function getTraceSessionName(): PAnsiChar; virtual; abstract;
3241     function getFirebirdRootDirectory(): PAnsiChar; virtual; abstract;
3242     function getDatabaseName(): PAnsiChar; virtual; abstract;
3243     function getConnection(): ITraceDatabaseConnection; virtual; abstract;
3244     function getLogWriter(): ITraceLogWriter; virtual; abstract;
3245     end;
3246    
3247     TracePluginVTable = class(ReferenceCountedVTable)
3248     trace_get_error: ITracePlugin_trace_get_errorPtr;
3249     trace_attach: ITracePlugin_trace_attachPtr;
3250     trace_detach: ITracePlugin_trace_detachPtr;
3251     trace_transaction_start: ITracePlugin_trace_transaction_startPtr;
3252     trace_transaction_end: ITracePlugin_trace_transaction_endPtr;
3253     trace_proc_execute: ITracePlugin_trace_proc_executePtr;
3254     trace_trigger_execute: ITracePlugin_trace_trigger_executePtr;
3255     trace_set_context: ITracePlugin_trace_set_contextPtr;
3256     trace_dsql_prepare: ITracePlugin_trace_dsql_preparePtr;
3257     trace_dsql_free: ITracePlugin_trace_dsql_freePtr;
3258     trace_dsql_execute: ITracePlugin_trace_dsql_executePtr;
3259     trace_blr_compile: ITracePlugin_trace_blr_compilePtr;
3260     trace_blr_execute: ITracePlugin_trace_blr_executePtr;
3261     trace_dyn_execute: ITracePlugin_trace_dyn_executePtr;
3262     trace_service_attach: ITracePlugin_trace_service_attachPtr;
3263     trace_service_start: ITracePlugin_trace_service_startPtr;
3264     trace_service_query: ITracePlugin_trace_service_queryPtr;
3265     trace_service_detach: ITracePlugin_trace_service_detachPtr;
3266     trace_event_error: ITracePlugin_trace_event_errorPtr;
3267     trace_event_sweep: ITracePlugin_trace_event_sweepPtr;
3268     trace_func_execute: ITracePlugin_trace_func_executePtr;
3269     end;
3270    
3271     ITracePlugin = class(IReferenceCounted)
3272 tony 315 const VERSION = 3;
3273 tony 45 const RESULT_SUCCESS = Cardinal(0);
3274     const RESULT_FAILED = Cardinal(1);
3275     const RESULT_UNAUTHORIZED = Cardinal(2);
3276     const SWEEP_STATE_STARTED = Cardinal(1);
3277     const SWEEP_STATE_FINISHED = Cardinal(2);
3278     const SWEEP_STATE_FAILED = Cardinal(3);
3279     const SWEEP_STATE_PROGRESS = Cardinal(4);
3280    
3281     function trace_get_error(): PAnsiChar;
3282     function trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean;
3283     function trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean;
3284     function trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean;
3285     function trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean;
3286     function trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean;
3287     function trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean;
3288     function trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean;
3289     function trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean;
3290     function trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean;
3291     function trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean;
3292     function trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean;
3293     function trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean;
3294     function trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean;
3295     function trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean;
3296     function trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean;
3297     function trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean;
3298     function trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean;
3299     function trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean;
3300     function trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean;
3301     function trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean;
3302     end;
3303    
3304     ITracePluginImpl = class(ITracePlugin)
3305     constructor create;
3306    
3307     procedure addRef(); virtual; abstract;
3308     function release(): Integer; virtual; abstract;
3309     function trace_get_error(): PAnsiChar; virtual; abstract;
3310     function trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; virtual; abstract;
3311     function trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; virtual; abstract;
3312     function trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; virtual; abstract;
3313     function trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; virtual; abstract;
3314     function trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; virtual; abstract;
3315     function trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; virtual; abstract;
3316     function trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; virtual; abstract;
3317     function trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
3318     function trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; virtual; abstract;
3319     function trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; virtual; abstract;
3320     function trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
3321     function trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; virtual; abstract;
3322     function trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
3323     function trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean; virtual; abstract;
3324     function trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; virtual; abstract;
3325     function trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; virtual; abstract;
3326     function trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean; virtual; abstract;
3327     function trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; virtual; abstract;
3328     function trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; virtual; abstract;
3329     function trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; virtual; abstract;
3330     end;
3331    
3332     TraceFactoryVTable = class(PluginBaseVTable)
3333     trace_needs: ITraceFactory_trace_needsPtr;
3334     trace_create: ITraceFactory_trace_createPtr;
3335     end;
3336    
3337     ITraceFactory = class(IPluginBase)
3338 tony 315 const VERSION = 4;
3339 tony 45 const TRACE_EVENT_ATTACH = Cardinal(0);
3340     const TRACE_EVENT_DETACH = Cardinal(1);
3341     const TRACE_EVENT_TRANSACTION_START = Cardinal(2);
3342     const TRACE_EVENT_TRANSACTION_END = Cardinal(3);
3343     const TRACE_EVENT_SET_CONTEXT = Cardinal(4);
3344     const TRACE_EVENT_PROC_EXECUTE = Cardinal(5);
3345     const TRACE_EVENT_TRIGGER_EXECUTE = Cardinal(6);
3346     const TRACE_EVENT_DSQL_PREPARE = Cardinal(7);
3347     const TRACE_EVENT_DSQL_FREE = Cardinal(8);
3348     const TRACE_EVENT_DSQL_EXECUTE = Cardinal(9);
3349     const TRACE_EVENT_BLR_COMPILE = Cardinal(10);
3350     const TRACE_EVENT_BLR_EXECUTE = Cardinal(11);
3351     const TRACE_EVENT_DYN_EXECUTE = Cardinal(12);
3352     const TRACE_EVENT_SERVICE_ATTACH = Cardinal(13);
3353     const TRACE_EVENT_SERVICE_START = Cardinal(14);
3354     const TRACE_EVENT_SERVICE_QUERY = Cardinal(15);
3355     const TRACE_EVENT_SERVICE_DETACH = Cardinal(16);
3356     const TRACE_EVENT_ERROR = Cardinal(17);
3357     const TRACE_EVENT_SWEEP = Cardinal(18);
3358     const TRACE_EVENT_FUNC_EXECUTE = Cardinal(19);
3359     const TRACE_EVENT_MAX = Cardinal(20);
3360    
3361     function trace_needs(): QWord;
3362     function trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin;
3363     end;
3364    
3365     ITraceFactoryImpl = class(ITraceFactory)
3366     constructor create;
3367    
3368     procedure addRef(); virtual; abstract;
3369     function release(): Integer; virtual; abstract;
3370     procedure setOwner(r: IReferenceCounted); virtual; abstract;
3371     function getOwner(): IReferenceCounted; virtual; abstract;
3372     function trace_needs(): QWord; virtual; abstract;
3373     function trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin; virtual; abstract;
3374     end;
3375    
3376     UdrFunctionFactoryVTable = class(DisposableVTable)
3377     setup: IUdrFunctionFactory_setupPtr;
3378     newItem: IUdrFunctionFactory_newItemPtr;
3379     end;
3380    
3381     IUdrFunctionFactory = class(IDisposable)
3382     const VERSION = 3;
3383    
3384     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
3385     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction;
3386     end;
3387    
3388     IUdrFunctionFactoryImpl = class(IUdrFunctionFactory)
3389     constructor create;
3390    
3391     procedure dispose(); virtual; abstract;
3392     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); virtual; abstract;
3393     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; virtual; abstract;
3394     end;
3395    
3396     UdrProcedureFactoryVTable = class(DisposableVTable)
3397     setup: IUdrProcedureFactory_setupPtr;
3398     newItem: IUdrProcedureFactory_newItemPtr;
3399     end;
3400    
3401     IUdrProcedureFactory = class(IDisposable)
3402     const VERSION = 3;
3403    
3404     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
3405     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure;
3406     end;
3407    
3408     IUdrProcedureFactoryImpl = class(IUdrProcedureFactory)
3409     constructor create;
3410    
3411     procedure dispose(); virtual; abstract;
3412     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); virtual; abstract;
3413     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; virtual; abstract;
3414     end;
3415    
3416     UdrTriggerFactoryVTable = class(DisposableVTable)
3417     setup: IUdrTriggerFactory_setupPtr;
3418     newItem: IUdrTriggerFactory_newItemPtr;
3419     end;
3420    
3421     IUdrTriggerFactory = class(IDisposable)
3422     const VERSION = 3;
3423    
3424     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder);
3425     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger;
3426     end;
3427    
3428     IUdrTriggerFactoryImpl = class(IUdrTriggerFactory)
3429     constructor create;
3430    
3431     procedure dispose(); virtual; abstract;
3432     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); virtual; abstract;
3433     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; virtual; abstract;
3434     end;
3435    
3436     UdrPluginVTable = class(VersionedVTable)
3437     getMaster: IUdrPlugin_getMasterPtr;
3438     registerFunction: IUdrPlugin_registerFunctionPtr;
3439     registerProcedure: IUdrPlugin_registerProcedurePtr;
3440     registerTrigger: IUdrPlugin_registerTriggerPtr;
3441     end;
3442    
3443     IUdrPlugin = class(IVersioned)
3444 tony 315 const VERSION = 2;
3445 tony 45
3446     function getMaster(): IMaster;
3447     procedure registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
3448     procedure registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory);
3449     procedure registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory);
3450     end;
3451    
3452     IUdrPluginImpl = class(IUdrPlugin)
3453     constructor create;
3454    
3455     function getMaster(): IMaster; virtual; abstract;
3456     procedure registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); virtual; abstract;
3457     procedure registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); virtual; abstract;
3458     procedure registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); virtual; abstract;
3459     end;
3460    
3461 tony 315 DecFloat16VTable = class(VersionedVTable)
3462     toBcd: IDecFloat16_toBcdPtr;
3463     toString: IDecFloat16_toStringPtr;
3464     fromBcd: IDecFloat16_fromBcdPtr;
3465     fromString: IDecFloat16_fromStringPtr;
3466     end;
3467 tony 45
3468 tony 315 IDecFloat16 = class(IVersioned)
3469     const VERSION = 2;
3470     const BCD_SIZE = Cardinal(16);
3471     const STRING_SIZE = Cardinal(24);
3472    
3473     procedure toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
3474     procedure toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
3475     procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr);
3476     procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr);
3477     end;
3478    
3479     IDecFloat16Impl = class(IDecFloat16)
3480     constructor create;
3481    
3482     procedure toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); virtual; abstract;
3483     procedure toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3484     procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); virtual; abstract;
3485     procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); virtual; abstract;
3486     end;
3487    
3488     DecFloat34VTable = class(VersionedVTable)
3489     toBcd: IDecFloat34_toBcdPtr;
3490     toString: IDecFloat34_toStringPtr;
3491     fromBcd: IDecFloat34_fromBcdPtr;
3492     fromString: IDecFloat34_fromStringPtr;
3493     end;
3494    
3495     IDecFloat34 = class(IVersioned)
3496     const VERSION = 2;
3497     const BCD_SIZE = Cardinal(34);
3498     const STRING_SIZE = Cardinal(43);
3499    
3500     procedure toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
3501     procedure toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
3502     procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr);
3503     procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr);
3504     end;
3505    
3506     IDecFloat34Impl = class(IDecFloat34)
3507     constructor create;
3508    
3509     procedure toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); virtual; abstract;
3510     procedure toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3511     procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); virtual; abstract;
3512     procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); virtual; abstract;
3513     end;
3514    
3515     Int128VTable = class(VersionedVTable)
3516     toString: IInt128_toStringPtr;
3517     fromString: IInt128_fromStringPtr;
3518     end;
3519    
3520     IInt128 = class(IVersioned)
3521     const VERSION = 2;
3522     const STRING_SIZE = Cardinal(46);
3523    
3524     procedure toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar);
3525     procedure fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr);
3526     end;
3527    
3528     IInt128Impl = class(IInt128)
3529     constructor create;
3530    
3531     procedure toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3532     procedure fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); virtual; abstract;
3533     end;
3534    
3535     ReplicatedFieldVTable = class(VersionedVTable)
3536     getName: IReplicatedField_getNamePtr;
3537     getType: IReplicatedField_getTypePtr;
3538     getSubType: IReplicatedField_getSubTypePtr;
3539     getScale: IReplicatedField_getScalePtr;
3540     getLength: IReplicatedField_getLengthPtr;
3541     getCharSet: IReplicatedField_getCharSetPtr;
3542     getData: IReplicatedField_getDataPtr;
3543     end;
3544    
3545     IReplicatedField = class(IVersioned)
3546     const VERSION = 2;
3547    
3548     function getName(): PAnsiChar;
3549     function getType(): Cardinal;
3550     function getSubType(): Integer;
3551     function getScale(): Integer;
3552     function getLength(): Cardinal;
3553     function getCharSet(): Cardinal;
3554     function getData(): Pointer;
3555     end;
3556    
3557     IReplicatedFieldImpl = class(IReplicatedField)
3558     constructor create;
3559    
3560     function getName(): PAnsiChar; virtual; abstract;
3561     function getType(): Cardinal; virtual; abstract;
3562     function getSubType(): Integer; virtual; abstract;
3563     function getScale(): Integer; virtual; abstract;
3564     function getLength(): Cardinal; virtual; abstract;
3565     function getCharSet(): Cardinal; virtual; abstract;
3566     function getData(): Pointer; virtual; abstract;
3567     end;
3568    
3569     ReplicatedRecordVTable = class(VersionedVTable)
3570     getCount: IReplicatedRecord_getCountPtr;
3571     getField: IReplicatedRecord_getFieldPtr;
3572     getRawLength: IReplicatedRecord_getRawLengthPtr;
3573     getRawData: IReplicatedRecord_getRawDataPtr;
3574     end;
3575    
3576     IReplicatedRecord = class(IVersioned)
3577     const VERSION = 2;
3578    
3579     function getCount(): Cardinal;
3580     function getField(index: Cardinal): IReplicatedField;
3581     function getRawLength(): Cardinal;
3582     function getRawData(): BytePtr;
3583     end;
3584    
3585     IReplicatedRecordImpl = class(IReplicatedRecord)
3586     constructor create;
3587    
3588     function getCount(): Cardinal; virtual; abstract;
3589     function getField(index: Cardinal): IReplicatedField; virtual; abstract;
3590     function getRawLength(): Cardinal; virtual; abstract;
3591     function getRawData(): BytePtr; virtual; abstract;
3592     end;
3593    
3594     ReplicatedTransactionVTable = class(DisposableVTable)
3595     prepare: IReplicatedTransaction_preparePtr;
3596     commit: IReplicatedTransaction_commitPtr;
3597     rollback: IReplicatedTransaction_rollbackPtr;
3598     startSavepoint: IReplicatedTransaction_startSavepointPtr;
3599     releaseSavepoint: IReplicatedTransaction_releaseSavepointPtr;
3600     rollbackSavepoint: IReplicatedTransaction_rollbackSavepointPtr;
3601     insertRecord: IReplicatedTransaction_insertRecordPtr;
3602     updateRecord: IReplicatedTransaction_updateRecordPtr;
3603     deleteRecord: IReplicatedTransaction_deleteRecordPtr;
3604     executeSql: IReplicatedTransaction_executeSqlPtr;
3605     executeSqlIntl: IReplicatedTransaction_executeSqlIntlPtr;
3606     end;
3607    
3608     IReplicatedTransaction = class(IDisposable)
3609     const VERSION = 3;
3610    
3611     procedure prepare(status: IStatus);
3612     procedure commit(status: IStatus);
3613     procedure rollback(status: IStatus);
3614     procedure startSavepoint(status: IStatus);
3615     procedure releaseSavepoint(status: IStatus);
3616     procedure rollbackSavepoint(status: IStatus);
3617     procedure insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
3618     procedure updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord);
3619     procedure deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
3620     procedure executeSql(status: IStatus; sql: PAnsiChar);
3621     procedure executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar);
3622     end;
3623    
3624     IReplicatedTransactionImpl = class(IReplicatedTransaction)
3625     constructor create;
3626    
3627     procedure dispose(); virtual; abstract;
3628     procedure prepare(status: IStatus); virtual; abstract;
3629     procedure commit(status: IStatus); virtual; abstract;
3630     procedure rollback(status: IStatus); virtual; abstract;
3631     procedure startSavepoint(status: IStatus); virtual; abstract;
3632     procedure releaseSavepoint(status: IStatus); virtual; abstract;
3633     procedure rollbackSavepoint(status: IStatus); virtual; abstract;
3634     procedure insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); virtual; abstract;
3635     procedure updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); virtual; abstract;
3636     procedure deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); virtual; abstract;
3637     procedure executeSql(status: IStatus; sql: PAnsiChar); virtual; abstract;
3638     procedure executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar); virtual; abstract;
3639     end;
3640    
3641     ReplicatedSessionVTable = class(PluginBaseVTable)
3642 tony 345 init: IReplicatedSession_initPtr;
3643 tony 315 startTransaction: IReplicatedSession_startTransactionPtr;
3644     cleanupTransaction: IReplicatedSession_cleanupTransactionPtr;
3645     setSequence: IReplicatedSession_setSequencePtr;
3646     end;
3647    
3648     IReplicatedSession = class(IPluginBase)
3649     const VERSION = 4;
3650    
3651 tony 345 function init(status: IStatus; attachment: IAttachment): Boolean;
3652 tony 315 function startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction;
3653     procedure cleanupTransaction(status: IStatus; number: Int64);
3654     procedure setSequence(status: IStatus; name: PAnsiChar; value: Int64);
3655     end;
3656    
3657     IReplicatedSessionImpl = class(IReplicatedSession)
3658     constructor create;
3659    
3660     procedure addRef(); virtual; abstract;
3661     function release(): Integer; virtual; abstract;
3662     procedure setOwner(r: IReferenceCounted); virtual; abstract;
3663     function getOwner(): IReferenceCounted; virtual; abstract;
3664 tony 345 function init(status: IStatus; attachment: IAttachment): Boolean; virtual; abstract;
3665 tony 315 function startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; virtual; abstract;
3666     procedure cleanupTransaction(status: IStatus; number: Int64); virtual; abstract;
3667     procedure setSequence(status: IStatus; name: PAnsiChar; value: Int64); virtual; abstract;
3668     end;
3669    
3670 tony 345 {function fb_get_master_interface : IMaster; cdecl; external 'fbclient';}
3671 tony 315
3672 tony 345
3673 tony 45 implementation
3674    
3675     uses IBErrorCodes;
3676    
3677     procedure IReferenceCounted.addRef();
3678     begin
3679     ReferenceCountedVTable(vTable).addRef(Self);
3680     end;
3681    
3682     function IReferenceCounted.release(): Integer;
3683     begin
3684     Result := ReferenceCountedVTable(vTable).release(Self);
3685     end;
3686    
3687     procedure IDisposable.dispose();
3688     begin
3689     DisposableVTable(vTable).dispose(Self);
3690     end;
3691    
3692     procedure IStatus.init();
3693     begin
3694     StatusVTable(vTable).init(Self);
3695     end;
3696    
3697     function IStatus.getState(): Cardinal;
3698     begin
3699     Result := StatusVTable(vTable).getState(Self);
3700     end;
3701    
3702     procedure IStatus.setErrors2(length: Cardinal; value: NativeIntPtr);
3703     begin
3704     StatusVTable(vTable).setErrors2(Self, length, value);
3705     end;
3706    
3707     procedure IStatus.setWarnings2(length: Cardinal; value: NativeIntPtr);
3708     begin
3709     StatusVTable(vTable).setWarnings2(Self, length, value);
3710     end;
3711    
3712     procedure IStatus.setErrors(value: NativeIntPtr);
3713     begin
3714     StatusVTable(vTable).setErrors(Self, value);
3715     end;
3716    
3717     procedure IStatus.setWarnings(value: NativeIntPtr);
3718     begin
3719     StatusVTable(vTable).setWarnings(Self, value);
3720     end;
3721    
3722     function IStatus.getErrors(): NativeIntPtr;
3723     begin
3724     Result := StatusVTable(vTable).getErrors(Self);
3725     end;
3726    
3727     function IStatus.getWarnings(): NativeIntPtr;
3728     begin
3729     Result := StatusVTable(vTable).getWarnings(Self);
3730     end;
3731    
3732     function IStatus.clone(): IStatus;
3733     begin
3734     Result := StatusVTable(vTable).clone(Self);
3735     end;
3736    
3737     function IMaster.getStatus(): IStatus;
3738     begin
3739     Result := MasterVTable(vTable).getStatus(Self);
3740     end;
3741    
3742     function IMaster.getDispatcher(): IProvider;
3743     begin
3744     Result := MasterVTable(vTable).getDispatcher(Self);
3745     end;
3746    
3747     function IMaster.getPluginManager(): IPluginManager;
3748     begin
3749     Result := MasterVTable(vTable).getPluginManager(Self);
3750     end;
3751    
3752     function IMaster.getTimerControl(): ITimerControl;
3753     begin
3754     Result := MasterVTable(vTable).getTimerControl(Self);
3755     end;
3756    
3757     function IMaster.getDtc(): IDtc;
3758     begin
3759     Result := MasterVTable(vTable).getDtc(Self);
3760     end;
3761    
3762     function IMaster.registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment;
3763     begin
3764     Result := MasterVTable(vTable).registerAttachment(Self, provider, attachment);
3765     end;
3766    
3767     function IMaster.registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction;
3768     begin
3769     Result := MasterVTable(vTable).registerTransaction(Self, attachment, transaction);
3770     end;
3771    
3772     function IMaster.getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder;
3773     begin
3774     Result := MasterVTable(vTable).getMetadataBuilder(Self, status, fieldCount);
3775 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3776 tony 45 end;
3777    
3778     function IMaster.serverMode(mode: Integer): Integer;
3779     begin
3780     Result := MasterVTable(vTable).serverMode(Self, mode);
3781     end;
3782    
3783     function IMaster.getUtilInterface(): IUtil;
3784     begin
3785     Result := MasterVTable(vTable).getUtilInterface(Self);
3786     end;
3787    
3788     function IMaster.getConfigManager(): IConfigManager;
3789     begin
3790     Result := MasterVTable(vTable).getConfigManager(Self);
3791     end;
3792    
3793     function IMaster.getProcessExiting(): Boolean;
3794     begin
3795     Result := MasterVTable(vTable).getProcessExiting(Self);
3796     end;
3797    
3798     procedure IPluginBase.setOwner(r: IReferenceCounted);
3799     begin
3800     PluginBaseVTable(vTable).setOwner(Self, r);
3801     end;
3802    
3803     function IPluginBase.getOwner(): IReferenceCounted;
3804     begin
3805     Result := PluginBaseVTable(vTable).getOwner(Self);
3806     end;
3807    
3808     function IPluginSet.getName(): PAnsiChar;
3809     begin
3810     Result := PluginSetVTable(vTable).getName(Self);
3811     end;
3812    
3813     function IPluginSet.getModuleName(): PAnsiChar;
3814     begin
3815     Result := PluginSetVTable(vTable).getModuleName(Self);
3816     end;
3817    
3818     function IPluginSet.getPlugin(status: IStatus): IPluginBase;
3819     begin
3820     Result := PluginSetVTable(vTable).getPlugin(Self, status);
3821 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3822 tony 45 end;
3823    
3824     procedure IPluginSet.next(status: IStatus);
3825     begin
3826     PluginSetVTable(vTable).next(Self, status);
3827 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3828 tony 45 end;
3829    
3830     procedure IPluginSet.set_(status: IStatus; s: PAnsiChar);
3831     begin
3832     PluginSetVTable(vTable).set_(Self, status, s);
3833 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3834 tony 45 end;
3835    
3836     function IConfigEntry.getName(): PAnsiChar;
3837     begin
3838     Result := ConfigEntryVTable(vTable).getName(Self);
3839     end;
3840    
3841     function IConfigEntry.getValue(): PAnsiChar;
3842     begin
3843     Result := ConfigEntryVTable(vTable).getValue(Self);
3844     end;
3845    
3846     function IConfigEntry.getIntValue(): Int64;
3847     begin
3848     Result := ConfigEntryVTable(vTable).getIntValue(Self);
3849     end;
3850    
3851     function IConfigEntry.getBoolValue(): Boolean;
3852     begin
3853     Result := ConfigEntryVTable(vTable).getBoolValue(Self);
3854     end;
3855    
3856     function IConfigEntry.getSubConfig(status: IStatus): IConfig;
3857     begin
3858     Result := ConfigEntryVTable(vTable).getSubConfig(Self, status);
3859 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3860 tony 45 end;
3861    
3862     function IConfig.find(status: IStatus; name: PAnsiChar): IConfigEntry;
3863     begin
3864     Result := ConfigVTable(vTable).find(Self, status, name);
3865 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3866 tony 45 end;
3867    
3868     function IConfig.findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
3869     begin
3870     Result := ConfigVTable(vTable).findValue(Self, status, name, value);
3871 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3872 tony 45 end;
3873    
3874     function IConfig.findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry;
3875     begin
3876     Result := ConfigVTable(vTable).findPos(Self, status, name, pos);
3877 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3878 tony 45 end;
3879    
3880     function IFirebirdConf.getKey(name: PAnsiChar): Cardinal;
3881     begin
3882     Result := FirebirdConfVTable(vTable).getKey(Self, name);
3883     end;
3884    
3885     function IFirebirdConf.asInteger(key: Cardinal): Int64;
3886     begin
3887     Result := FirebirdConfVTable(vTable).asInteger(Self, key);
3888     end;
3889    
3890     function IFirebirdConf.asString(key: Cardinal): PAnsiChar;
3891     begin
3892     Result := FirebirdConfVTable(vTable).asString(Self, key);
3893     end;
3894    
3895     function IFirebirdConf.asBoolean(key: Cardinal): Boolean;
3896     begin
3897     Result := FirebirdConfVTable(vTable).asBoolean(Self, key);
3898     end;
3899    
3900 tony 315 function IFirebirdConf.getVersion(status: IStatus): Cardinal;
3901     begin
3902     Result := FirebirdConfVTable(vTable).getVersion(Self, status);
3903     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3904     end;
3905    
3906 tony 45 function IPluginConfig.getConfigFileName(): PAnsiChar;
3907     begin
3908     Result := PluginConfigVTable(vTable).getConfigFileName(Self);
3909     end;
3910    
3911     function IPluginConfig.getDefaultConfig(status: IStatus): IConfig;
3912     begin
3913     Result := PluginConfigVTable(vTable).getDefaultConfig(Self, status);
3914 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3915 tony 45 end;
3916    
3917     function IPluginConfig.getFirebirdConf(status: IStatus): IFirebirdConf;
3918     begin
3919     Result := PluginConfigVTable(vTable).getFirebirdConf(Self, status);
3920 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3921 tony 45 end;
3922    
3923     procedure IPluginConfig.setReleaseDelay(status: IStatus; microSeconds: QWord);
3924     begin
3925     PluginConfigVTable(vTable).setReleaseDelay(Self, status, microSeconds);
3926 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3927 tony 45 end;
3928    
3929     function IPluginFactory.createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
3930     begin
3931     Result := PluginFactoryVTable(vTable).createPlugin(Self, status, factoryParameter);
3932 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3933 tony 45 end;
3934    
3935     procedure IPluginModule.doClean();
3936     begin
3937     PluginModuleVTable(vTable).doClean(Self);
3938     end;
3939    
3940 tony 315 procedure IPluginModule.threadDetach();
3941     begin
3942     PluginModuleVTable(vTable).threadDetach(Self);
3943     end;
3944    
3945 tony 45 procedure IPluginManager.registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
3946     begin
3947     PluginManagerVTable(vTable).registerPluginFactory(Self, pluginType, defaultName, factory);
3948     end;
3949    
3950     procedure IPluginManager.registerModule(cleanup: IPluginModule);
3951     begin
3952     PluginManagerVTable(vTable).registerModule(Self, cleanup);
3953     end;
3954    
3955     procedure IPluginManager.unregisterModule(cleanup: IPluginModule);
3956     begin
3957     PluginManagerVTable(vTable).unregisterModule(Self, cleanup);
3958     end;
3959    
3960     function IPluginManager.getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet;
3961     begin
3962     Result := PluginManagerVTable(vTable).getPlugins(Self, status, pluginType, namesList, firebirdConf);
3963 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3964 tony 45 end;
3965    
3966     function IPluginManager.getConfig(status: IStatus; filename: PAnsiChar): IConfig;
3967     begin
3968     Result := PluginManagerVTable(vTable).getConfig(Self, status, filename);
3969 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3970 tony 45 end;
3971    
3972     procedure IPluginManager.releasePlugin(plugin: IPluginBase);
3973     begin
3974     PluginManagerVTable(vTable).releasePlugin(Self, plugin);
3975     end;
3976    
3977     procedure ICryptKey.setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
3978     begin
3979     CryptKeyVTable(vTable).setSymmetric(Self, status, type_, keyLength, key);
3980 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3981 tony 45 end;
3982    
3983     procedure ICryptKey.setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
3984     begin
3985     CryptKeyVTable(vTable).setAsymmetric(Self, status, type_, encryptKeyLength, encryptKey, decryptKeyLength, decryptKey);
3986 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3987 tony 45 end;
3988    
3989     function ICryptKey.getEncryptKey(length: CardinalPtr): Pointer;
3990     begin
3991     Result := CryptKeyVTable(vTable).getEncryptKey(Self, length);
3992     end;
3993    
3994     function ICryptKey.getDecryptKey(length: CardinalPtr): Pointer;
3995     begin
3996     Result := CryptKeyVTable(vTable).getDecryptKey(Self, length);
3997     end;
3998    
3999     function IConfigManager.getDirectory(code: Cardinal): PAnsiChar;
4000     begin
4001     Result := ConfigManagerVTable(vTable).getDirectory(Self, code);
4002     end;
4003    
4004     function IConfigManager.getFirebirdConf(): IFirebirdConf;
4005     begin
4006     Result := ConfigManagerVTable(vTable).getFirebirdConf(Self);
4007     end;
4008    
4009     function IConfigManager.getDatabaseConf(dbName: PAnsiChar): IFirebirdConf;
4010     begin
4011     Result := ConfigManagerVTable(vTable).getDatabaseConf(Self, dbName);
4012     end;
4013    
4014     function IConfigManager.getPluginConfig(configuredPlugin: PAnsiChar): IConfig;
4015     begin
4016     Result := ConfigManagerVTable(vTable).getPluginConfig(Self, configuredPlugin);
4017     end;
4018    
4019     function IConfigManager.getInstallDirectory(): PAnsiChar;
4020     begin
4021     Result := ConfigManagerVTable(vTable).getInstallDirectory(Self);
4022     end;
4023    
4024     function IConfigManager.getRootDirectory(): PAnsiChar;
4025     begin
4026     Result := ConfigManagerVTable(vTable).getRootDirectory(Self);
4027     end;
4028    
4029 tony 315 function IConfigManager.getDefaultSecurityDb(): PAnsiChar;
4030     begin
4031     Result := ConfigManagerVTable(vTable).getDefaultSecurityDb(Self);
4032     end;
4033    
4034 tony 45 procedure IEventCallback.eventCallbackFunction(length: Cardinal; events: BytePtr);
4035     begin
4036     EventCallbackVTable(vTable).eventCallbackFunction(Self, length, events);
4037     end;
4038    
4039     procedure IBlob.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4040     begin
4041     BlobVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4042 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4043 tony 45 end;
4044    
4045     function IBlob.getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
4046     begin
4047     Result := BlobVTable(vTable).getSegment(Self, status, bufferLength, buffer, segmentLength);
4048 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4049 tony 45 end;
4050    
4051     procedure IBlob.putSegment(status: IStatus; length: Cardinal; buffer: Pointer);
4052     begin
4053     BlobVTable(vTable).putSegment(Self, status, length, buffer);
4054 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4055 tony 45 end;
4056    
4057     procedure IBlob.cancel(status: IStatus);
4058     begin
4059     BlobVTable(vTable).cancel(Self, status);
4060 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4061 tony 45 end;
4062    
4063     procedure IBlob.close(status: IStatus);
4064     begin
4065     BlobVTable(vTable).close(Self, status);
4066 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4067 tony 45 end;
4068    
4069     function IBlob.seek(status: IStatus; mode: Integer; offset: Integer): Integer;
4070     begin
4071     Result := BlobVTable(vTable).seek(Self, status, mode, offset);
4072 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4073 tony 45 end;
4074    
4075     procedure ITransaction.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4076     begin
4077     TransactionVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4078 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4079 tony 45 end;
4080    
4081     procedure ITransaction.prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
4082     begin
4083     TransactionVTable(vTable).prepare(Self, status, msgLength, message);
4084 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4085 tony 45 end;
4086    
4087     procedure ITransaction.commit(status: IStatus);
4088     begin
4089     TransactionVTable(vTable).commit(Self, status);
4090 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4091 tony 45 end;
4092    
4093     procedure ITransaction.commitRetaining(status: IStatus);
4094     begin
4095     TransactionVTable(vTable).commitRetaining(Self, status);
4096 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4097 tony 45 end;
4098    
4099     procedure ITransaction.rollback(status: IStatus);
4100     begin
4101     TransactionVTable(vTable).rollback(Self, status);
4102 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4103 tony 45 end;
4104    
4105     procedure ITransaction.rollbackRetaining(status: IStatus);
4106     begin
4107     TransactionVTable(vTable).rollbackRetaining(Self, status);
4108 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4109 tony 45 end;
4110    
4111     procedure ITransaction.disconnect(status: IStatus);
4112     begin
4113     TransactionVTable(vTable).disconnect(Self, status);
4114 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4115 tony 45 end;
4116    
4117     function ITransaction.join(status: IStatus; transaction: ITransaction): ITransaction;
4118     begin
4119     Result := TransactionVTable(vTable).join(Self, status, transaction);
4120 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4121 tony 45 end;
4122    
4123     function ITransaction.validate(status: IStatus; attachment: IAttachment): ITransaction;
4124     begin
4125     Result := TransactionVTable(vTable).validate(Self, status, attachment);
4126 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4127 tony 45 end;
4128    
4129     function ITransaction.enterDtc(status: IStatus): ITransaction;
4130     begin
4131     Result := TransactionVTable(vTable).enterDtc(Self, status);
4132 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4133 tony 45 end;
4134    
4135     function IMessageMetadata.getCount(status: IStatus): Cardinal;
4136     begin
4137     Result := MessageMetadataVTable(vTable).getCount(Self, status);
4138 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4139 tony 45 end;
4140    
4141     function IMessageMetadata.getField(status: IStatus; index: Cardinal): PAnsiChar;
4142     begin
4143     Result := MessageMetadataVTable(vTable).getField(Self, status, index);
4144 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4145 tony 45 end;
4146    
4147     function IMessageMetadata.getRelation(status: IStatus; index: Cardinal): PAnsiChar;
4148     begin
4149     Result := MessageMetadataVTable(vTable).getRelation(Self, status, index);
4150 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4151 tony 45 end;
4152    
4153     function IMessageMetadata.getOwner(status: IStatus; index: Cardinal): PAnsiChar;
4154     begin
4155     Result := MessageMetadataVTable(vTable).getOwner(Self, status, index);
4156 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4157 tony 45 end;
4158    
4159     function IMessageMetadata.getAlias(status: IStatus; index: Cardinal): PAnsiChar;
4160     begin
4161     Result := MessageMetadataVTable(vTable).getAlias(Self, status, index);
4162 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4163 tony 45 end;
4164    
4165     function IMessageMetadata.getType(status: IStatus; index: Cardinal): Cardinal;
4166     begin
4167     Result := MessageMetadataVTable(vTable).getType(Self, status, index);
4168 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4169 tony 45 end;
4170    
4171     function IMessageMetadata.isNullable(status: IStatus; index: Cardinal): Boolean;
4172     begin
4173     Result := MessageMetadataVTable(vTable).isNullable(Self, status, index);
4174 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4175 tony 45 end;
4176    
4177     function IMessageMetadata.getSubType(status: IStatus; index: Cardinal): Integer;
4178     begin
4179     Result := MessageMetadataVTable(vTable).getSubType(Self, status, index);
4180 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4181 tony 45 end;
4182    
4183     function IMessageMetadata.getLength(status: IStatus; index: Cardinal): Cardinal;
4184     begin
4185     Result := MessageMetadataVTable(vTable).getLength(Self, status, index);
4186 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4187 tony 45 end;
4188    
4189     function IMessageMetadata.getScale(status: IStatus; index: Cardinal): Integer;
4190     begin
4191     Result := MessageMetadataVTable(vTable).getScale(Self, status, index);
4192 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4193 tony 45 end;
4194    
4195     function IMessageMetadata.getCharSet(status: IStatus; index: Cardinal): Cardinal;
4196     begin
4197     Result := MessageMetadataVTable(vTable).getCharSet(Self, status, index);
4198 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4199 tony 45 end;
4200    
4201     function IMessageMetadata.getOffset(status: IStatus; index: Cardinal): Cardinal;
4202     begin
4203     Result := MessageMetadataVTable(vTable).getOffset(Self, status, index);
4204 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4205 tony 45 end;
4206    
4207     function IMessageMetadata.getNullOffset(status: IStatus; index: Cardinal): Cardinal;
4208     begin
4209     Result := MessageMetadataVTable(vTable).getNullOffset(Self, status, index);
4210 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4211 tony 45 end;
4212    
4213     function IMessageMetadata.getBuilder(status: IStatus): IMetadataBuilder;
4214     begin
4215     Result := MessageMetadataVTable(vTable).getBuilder(Self, status);
4216 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4217 tony 45 end;
4218    
4219     function IMessageMetadata.getMessageLength(status: IStatus): Cardinal;
4220     begin
4221     Result := MessageMetadataVTable(vTable).getMessageLength(Self, status);
4222 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4223 tony 45 end;
4224    
4225 tony 315 function IMessageMetadata.getAlignment(status: IStatus): Cardinal;
4226     begin
4227     Result := MessageMetadataVTable(vTable).getAlignment(Self, status);
4228     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4229     end;
4230    
4231     function IMessageMetadata.getAlignedLength(status: IStatus): Cardinal;
4232     begin
4233     Result := MessageMetadataVTable(vTable).getAlignedLength(Self, status);
4234     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4235     end;
4236    
4237 tony 45 procedure IMetadataBuilder.setType(status: IStatus; index: Cardinal; type_: Cardinal);
4238     begin
4239     MetadataBuilderVTable(vTable).setType(Self, status, index, type_);
4240 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4241 tony 45 end;
4242    
4243     procedure IMetadataBuilder.setSubType(status: IStatus; index: Cardinal; subType: Integer);
4244     begin
4245     MetadataBuilderVTable(vTable).setSubType(Self, status, index, subType);
4246 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4247 tony 45 end;
4248    
4249     procedure IMetadataBuilder.setLength(status: IStatus; index: Cardinal; length: Cardinal);
4250     begin
4251     MetadataBuilderVTable(vTable).setLength(Self, status, index, length);
4252 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4253 tony 45 end;
4254    
4255     procedure IMetadataBuilder.setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
4256     begin
4257     MetadataBuilderVTable(vTable).setCharSet(Self, status, index, charSet);
4258 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4259 tony 45 end;
4260    
4261 tony 315 procedure IMetadataBuilder.setScale(status: IStatus; index: Cardinal; scale: Integer);
4262 tony 45 begin
4263     MetadataBuilderVTable(vTable).setScale(Self, status, index, scale);
4264 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4265 tony 45 end;
4266    
4267     procedure IMetadataBuilder.truncate(status: IStatus; count: Cardinal);
4268     begin
4269     MetadataBuilderVTable(vTable).truncate(Self, status, count);
4270 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4271 tony 45 end;
4272    
4273     procedure IMetadataBuilder.moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
4274     begin
4275     MetadataBuilderVTable(vTable).moveNameToIndex(Self, status, name, index);
4276 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4277 tony 45 end;
4278    
4279     procedure IMetadataBuilder.remove(status: IStatus; index: Cardinal);
4280     begin
4281     MetadataBuilderVTable(vTable).remove(Self, status, index);
4282 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4283 tony 45 end;
4284    
4285     function IMetadataBuilder.addField(status: IStatus): Cardinal;
4286     begin
4287     Result := MetadataBuilderVTable(vTable).addField(Self, status);
4288 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4289 tony 45 end;
4290    
4291     function IMetadataBuilder.getMetadata(status: IStatus): IMessageMetadata;
4292     begin
4293     Result := MetadataBuilderVTable(vTable).getMetadata(Self, status);
4294 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4295 tony 45 end;
4296    
4297 tony 315 procedure IMetadataBuilder.setField(status: IStatus; index: Cardinal; field: PAnsiChar);
4298     begin
4299     MetadataBuilderVTable(vTable).setField(Self, status, index, field);
4300     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4301     end;
4302    
4303     procedure IMetadataBuilder.setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar);
4304     begin
4305     MetadataBuilderVTable(vTable).setRelation(Self, status, index, relation);
4306     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4307     end;
4308    
4309     procedure IMetadataBuilder.setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar);
4310     begin
4311     MetadataBuilderVTable(vTable).setOwner(Self, status, index, owner);
4312     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4313     end;
4314    
4315     procedure IMetadataBuilder.setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar);
4316     begin
4317     MetadataBuilderVTable(vTable).setAlias(Self, status, index, alias);
4318     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4319     end;
4320    
4321 tony 45 function IResultSet.fetchNext(status: IStatus; message: Pointer): Integer;
4322     begin
4323     Result := ResultSetVTable(vTable).fetchNext(Self, status, message);
4324 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4325 tony 45 end;
4326    
4327     function IResultSet.fetchPrior(status: IStatus; message: Pointer): Integer;
4328     begin
4329     Result := ResultSetVTable(vTable).fetchPrior(Self, status, message);
4330 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4331 tony 45 end;
4332    
4333     function IResultSet.fetchFirst(status: IStatus; message: Pointer): Integer;
4334     begin
4335     Result := ResultSetVTable(vTable).fetchFirst(Self, status, message);
4336 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4337 tony 45 end;
4338    
4339     function IResultSet.fetchLast(status: IStatus; message: Pointer): Integer;
4340     begin
4341     Result := ResultSetVTable(vTable).fetchLast(Self, status, message);
4342 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4343 tony 45 end;
4344    
4345     function IResultSet.fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer;
4346     begin
4347     Result := ResultSetVTable(vTable).fetchAbsolute(Self, status, position, message);
4348 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4349 tony 45 end;
4350    
4351     function IResultSet.fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer;
4352     begin
4353     Result := ResultSetVTable(vTable).fetchRelative(Self, status, offset, message);
4354 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4355 tony 45 end;
4356    
4357     function IResultSet.isEof(status: IStatus): Boolean;
4358     begin
4359     Result := ResultSetVTable(vTable).isEof(Self, status);
4360 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4361 tony 45 end;
4362    
4363     function IResultSet.isBof(status: IStatus): Boolean;
4364     begin
4365     Result := ResultSetVTable(vTable).isBof(Self, status);
4366 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4367 tony 45 end;
4368    
4369     function IResultSet.getMetadata(status: IStatus): IMessageMetadata;
4370     begin
4371     Result := ResultSetVTable(vTable).getMetadata(Self, status);
4372 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4373 tony 45 end;
4374    
4375     procedure IResultSet.close(status: IStatus);
4376     begin
4377     ResultSetVTable(vTable).close(Self, status);
4378 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4379 tony 45 end;
4380    
4381     procedure IResultSet.setDelayedOutputFormat(status: IStatus; format: IMessageMetadata);
4382     begin
4383     ResultSetVTable(vTable).setDelayedOutputFormat(Self, status, format);
4384 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4385 tony 45 end;
4386    
4387     procedure IStatement.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4388     begin
4389     StatementVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4390 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4391 tony 45 end;
4392    
4393     function IStatement.getType(status: IStatus): Cardinal;
4394     begin
4395     Result := StatementVTable(vTable).getType(Self, status);
4396 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4397 tony 45 end;
4398    
4399     function IStatement.getPlan(status: IStatus; detailed: Boolean): PAnsiChar;
4400     begin
4401     Result := StatementVTable(vTable).getPlan(Self, status, detailed);
4402 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4403 tony 45 end;
4404    
4405     function IStatement.getAffectedRecords(status: IStatus): QWord;
4406     begin
4407     Result := StatementVTable(vTable).getAffectedRecords(Self, status);
4408 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4409 tony 45 end;
4410    
4411     function IStatement.getInputMetadata(status: IStatus): IMessageMetadata;
4412     begin
4413     Result := StatementVTable(vTable).getInputMetadata(Self, status);
4414 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4415 tony 45 end;
4416    
4417     function IStatement.getOutputMetadata(status: IStatus): IMessageMetadata;
4418     begin
4419     Result := StatementVTable(vTable).getOutputMetadata(Self, status);
4420 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4421 tony 45 end;
4422    
4423     function IStatement.execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
4424     begin
4425     Result := StatementVTable(vTable).execute(Self, status, transaction, inMetadata, inBuffer, outMetadata, outBuffer);
4426 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4427 tony 45 end;
4428    
4429     function IStatement.openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet;
4430     begin
4431     Result := StatementVTable(vTable).openCursor(Self, status, transaction, inMetadata, inBuffer, outMetadata, flags);
4432 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4433 tony 45 end;
4434    
4435     procedure IStatement.setCursorName(status: IStatus; name: PAnsiChar);
4436     begin
4437     StatementVTable(vTable).setCursorName(Self, status, name);
4438 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4439 tony 45 end;
4440    
4441     procedure IStatement.free(status: IStatus);
4442     begin
4443     StatementVTable(vTable).free(Self, status);
4444 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4445 tony 45 end;
4446    
4447     function IStatement.getFlags(status: IStatus): Cardinal;
4448     begin
4449     Result := StatementVTable(vTable).getFlags(Self, status);
4450 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4451 tony 45 end;
4452    
4453 tony 315 function IStatement.getTimeout(status: IStatus): Cardinal;
4454 tony 45 begin
4455 tony 315 Result := StatementVTable(vTable).getTimeout(Self, status);
4456     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4457     end;
4458    
4459     procedure IStatement.setTimeout(status: IStatus; timeOut: Cardinal);
4460     begin
4461     StatementVTable(vTable).setTimeout(Self, status, timeOut);
4462     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4463     end;
4464    
4465     function IStatement.createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
4466     begin
4467     Result := StatementVTable(vTable).createBatch(Self, status, inMetadata, parLength, par);
4468     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4469     end;
4470    
4471     procedure IBatch.add(status: IStatus; count: Cardinal; inBuffer: Pointer);
4472     begin
4473     BatchVTable(vTable).add(Self, status, count, inBuffer);
4474     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4475     end;
4476    
4477     procedure IBatch.addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr);
4478     begin
4479     BatchVTable(vTable).addBlob(Self, status, length, inBuffer, blobId, parLength, par);
4480     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4481     end;
4482    
4483     procedure IBatch.appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer);
4484     begin
4485     BatchVTable(vTable).appendBlobData(Self, status, length, inBuffer);
4486     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4487     end;
4488    
4489     procedure IBatch.addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer);
4490     begin
4491     BatchVTable(vTable).addBlobStream(Self, status, length, inBuffer);
4492     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4493     end;
4494    
4495     procedure IBatch.registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr);
4496     begin
4497     BatchVTable(vTable).registerBlob(Self, status, existingBlob, blobId);
4498     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4499     end;
4500    
4501     function IBatch.execute(status: IStatus; transaction: ITransaction): IBatchCompletionState;
4502     begin
4503     Result := BatchVTable(vTable).execute(Self, status, transaction);
4504     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4505     end;
4506    
4507     procedure IBatch.cancel(status: IStatus);
4508     begin
4509     BatchVTable(vTable).cancel(Self, status);
4510     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4511     end;
4512    
4513     function IBatch.getBlobAlignment(status: IStatus): Cardinal;
4514     begin
4515     Result := BatchVTable(vTable).getBlobAlignment(Self, status);
4516     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4517     end;
4518    
4519     function IBatch.getMetadata(status: IStatus): IMessageMetadata;
4520     begin
4521     Result := BatchVTable(vTable).getMetadata(Self, status);
4522     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4523     end;
4524    
4525     procedure IBatch.setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr);
4526     begin
4527     BatchVTable(vTable).setDefaultBpb(Self, status, parLength, par);
4528     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4529     end;
4530    
4531 tony 345 procedure IBatch.close(status: IStatus);
4532     begin
4533     BatchVTable(vTable).close(Self, status);
4534     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4535     end;
4536    
4537 tony 315 function IBatchCompletionState.getSize(status: IStatus): Cardinal;
4538     begin
4539     Result := BatchCompletionStateVTable(vTable).getSize(Self, status);
4540     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4541     end;
4542    
4543     function IBatchCompletionState.getState(status: IStatus; pos: Cardinal): Integer;
4544     begin
4545     Result := BatchCompletionStateVTable(vTable).getState(Self, status, pos);
4546     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4547     end;
4548    
4549     function IBatchCompletionState.findError(status: IStatus; pos: Cardinal): Cardinal;
4550     begin
4551     Result := BatchCompletionStateVTable(vTable).findError(Self, status, pos);
4552     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4553     end;
4554    
4555     procedure IBatchCompletionState.getStatus(status: IStatus; to_: IStatus; pos: Cardinal);
4556     begin
4557     BatchCompletionStateVTable(vTable).getStatus(Self, status, to_, pos);
4558     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4559     end;
4560    
4561     procedure IReplicator.process(status: IStatus; length: Cardinal; data: BytePtr);
4562     begin
4563     ReplicatorVTable(vTable).process(Self, status, length, data);
4564     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4565     end;
4566    
4567     procedure IReplicator.close(status: IStatus);
4568     begin
4569     ReplicatorVTable(vTable).close(Self, status);
4570     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4571     end;
4572    
4573     procedure IRequest.receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4574     begin
4575 tony 45 RequestVTable(vTable).receive(Self, status, level, msgType, length, message);
4576 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4577 tony 45 end;
4578    
4579 tony 315 procedure IRequest.send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4580 tony 45 begin
4581     RequestVTable(vTable).send(Self, status, level, msgType, length, message);
4582 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4583 tony 45 end;
4584    
4585     procedure IRequest.getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4586     begin
4587     RequestVTable(vTable).getInfo(Self, status, level, itemsLength, items, bufferLength, buffer);
4588 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4589 tony 45 end;
4590    
4591     procedure IRequest.start(status: IStatus; tra: ITransaction; level: Integer);
4592     begin
4593     RequestVTable(vTable).start(Self, status, tra, level);
4594 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4595 tony 45 end;
4596    
4597 tony 315 procedure IRequest.startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4598 tony 45 begin
4599     RequestVTable(vTable).startAndSend(Self, status, tra, level, msgType, length, message);
4600 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4601 tony 45 end;
4602    
4603     procedure IRequest.unwind(status: IStatus; level: Integer);
4604     begin
4605     RequestVTable(vTable).unwind(Self, status, level);
4606 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4607 tony 45 end;
4608    
4609     procedure IRequest.free(status: IStatus);
4610     begin
4611     RequestVTable(vTable).free(Self, status);
4612 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4613 tony 45 end;
4614    
4615     procedure IEvents.cancel(status: IStatus);
4616     begin
4617     EventsVTable(vTable).cancel(Self, status);
4618 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4619 tony 45 end;
4620    
4621     procedure IAttachment.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4622     begin
4623     AttachmentVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4624 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4625 tony 45 end;
4626    
4627     function IAttachment.startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
4628     begin
4629     Result := AttachmentVTable(vTable).startTransaction(Self, status, tpbLength, tpb);
4630 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4631 tony 45 end;
4632    
4633     function IAttachment.reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
4634     begin
4635     Result := AttachmentVTable(vTable).reconnectTransaction(Self, status, length, id);
4636 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4637 tony 45 end;
4638    
4639     function IAttachment.compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
4640     begin
4641     Result := AttachmentVTable(vTable).compileRequest(Self, status, blrLength, blr);
4642 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4643 tony 45 end;
4644    
4645     procedure IAttachment.transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
4646     begin
4647     AttachmentVTable(vTable).transactRequest(Self, status, transaction, blrLength, blr, inMsgLength, inMsg, outMsgLength, outMsg);
4648 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4649 tony 45 end;
4650    
4651 tony 315 function IAttachment.createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4652 tony 45 begin
4653     Result := AttachmentVTable(vTable).createBlob(Self, status, transaction, id, bpbLength, bpb);
4654 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4655 tony 45 end;
4656    
4657 tony 315 function IAttachment.openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4658 tony 45 begin
4659     Result := AttachmentVTable(vTable).openBlob(Self, status, transaction, id, bpbLength, bpb);
4660 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4661 tony 45 end;
4662    
4663 tony 315 function IAttachment.getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
4664 tony 45 begin
4665     Result := AttachmentVTable(vTable).getSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
4666 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4667 tony 45 end;
4668    
4669 tony 315 procedure IAttachment.putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
4670 tony 45 begin
4671     AttachmentVTable(vTable).putSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
4672 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4673 tony 45 end;
4674    
4675     procedure IAttachment.executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
4676     begin
4677     AttachmentVTable(vTable).executeDyn(Self, status, transaction, length, dyn);
4678 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4679 tony 45 end;
4680    
4681     function IAttachment.prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
4682     begin
4683     Result := AttachmentVTable(vTable).prepare(Self, status, tra, stmtLength, sqlStmt, dialect, flags);
4684 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4685 tony 45 end;
4686    
4687     function IAttachment.execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
4688     begin
4689     Result := AttachmentVTable(vTable).execute(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, outBuffer);
4690 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4691 tony 45 end;
4692    
4693     function IAttachment.openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet;
4694     begin
4695     Result := AttachmentVTable(vTable).openCursor(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, cursorName, cursorFlags);
4696 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4697 tony 45 end;
4698    
4699     function IAttachment.queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents;
4700     begin
4701     Result := AttachmentVTable(vTable).queEvents(Self, status, callback, length, events);
4702 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4703 tony 45 end;
4704    
4705     procedure IAttachment.cancelOperation(status: IStatus; option: Integer);
4706     begin
4707     AttachmentVTable(vTable).cancelOperation(Self, status, option);
4708 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4709 tony 45 end;
4710    
4711     procedure IAttachment.ping(status: IStatus);
4712     begin
4713     AttachmentVTable(vTable).ping(Self, status);
4714 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4715 tony 45 end;
4716    
4717     procedure IAttachment.detach(status: IStatus);
4718     begin
4719     AttachmentVTable(vTable).detach(Self, status);
4720 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4721 tony 45 end;
4722    
4723     procedure IAttachment.dropDatabase(status: IStatus);
4724     begin
4725     AttachmentVTable(vTable).dropDatabase(Self, status);
4726 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4727 tony 45 end;
4728    
4729 tony 315 function IAttachment.getIdleTimeout(status: IStatus): Cardinal;
4730     begin
4731     Result := AttachmentVTable(vTable).getIdleTimeout(Self, status);
4732     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4733     end;
4734    
4735     procedure IAttachment.setIdleTimeout(status: IStatus; timeOut: Cardinal);
4736     begin
4737     AttachmentVTable(vTable).setIdleTimeout(Self, status, timeOut);
4738     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4739     end;
4740    
4741     function IAttachment.getStatementTimeout(status: IStatus): Cardinal;
4742     begin
4743     Result := AttachmentVTable(vTable).getStatementTimeout(Self, status);
4744     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4745     end;
4746    
4747     procedure IAttachment.setStatementTimeout(status: IStatus; timeOut: Cardinal);
4748     begin
4749     AttachmentVTable(vTable).setStatementTimeout(Self, status, timeOut);
4750     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4751     end;
4752    
4753     function IAttachment.createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
4754     begin
4755     Result := AttachmentVTable(vTable).createBatch(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, parLength, par);
4756     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4757     end;
4758    
4759     function IAttachment.createReplicator(status: IStatus): IReplicator;
4760     begin
4761     Result := AttachmentVTable(vTable).createReplicator(Self, status);
4762     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4763     end;
4764    
4765 tony 45 procedure IService.detach(status: IStatus);
4766     begin
4767     ServiceVTable(vTable).detach(Self, status);
4768 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4769 tony 45 end;
4770    
4771     procedure IService.query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4772     begin
4773     ServiceVTable(vTable).query(Self, status, sendLength, sendItems, receiveLength, receiveItems, bufferLength, buffer);
4774 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4775 tony 45 end;
4776    
4777     procedure IService.start(status: IStatus; spbLength: Cardinal; spb: BytePtr);
4778     begin
4779     ServiceVTable(vTable).start(Self, status, spbLength, spb);
4780 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4781 tony 45 end;
4782    
4783     function IProvider.attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
4784     begin
4785     Result := ProviderVTable(vTable).attachDatabase(Self, status, fileName, dpbLength, dpb);
4786 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4787 tony 45 end;
4788    
4789     function IProvider.createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
4790     begin
4791     Result := ProviderVTable(vTable).createDatabase(Self, status, fileName, dpbLength, dpb);
4792 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4793 tony 45 end;
4794    
4795     function IProvider.attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService;
4796     begin
4797     Result := ProviderVTable(vTable).attachServiceManager(Self, status, service, spbLength, spb);
4798 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4799 tony 45 end;
4800    
4801     procedure IProvider.shutdown(status: IStatus; timeout: Cardinal; reason: Integer);
4802     begin
4803     ProviderVTable(vTable).shutdown(Self, status, timeout, reason);
4804 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4805 tony 45 end;
4806    
4807     procedure IProvider.setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
4808     begin
4809     ProviderVTable(vTable).setDbCryptCallback(Self, status, cryptCallback);
4810 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4811 tony 45 end;
4812    
4813     procedure IDtcStart.addAttachment(status: IStatus; att: IAttachment);
4814     begin
4815     DtcStartVTable(vTable).addAttachment(Self, status, att);
4816 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4817 tony 45 end;
4818    
4819     procedure IDtcStart.addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
4820     begin
4821     DtcStartVTable(vTable).addWithTpb(Self, status, att, length, tpb);
4822 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4823 tony 45 end;
4824    
4825     function IDtcStart.start(status: IStatus): ITransaction;
4826     begin
4827     Result := DtcStartVTable(vTable).start(Self, status);
4828 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4829 tony 45 end;
4830    
4831     function IDtc.join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction;
4832     begin
4833     Result := DtcVTable(vTable).join(Self, status, one, two);
4834 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4835 tony 45 end;
4836    
4837     function IDtc.startBuilder(status: IStatus): IDtcStart;
4838     begin
4839     Result := DtcVTable(vTable).startBuilder(Self, status);
4840 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4841 tony 45 end;
4842    
4843     procedure IWriter.reset();
4844     begin
4845     WriterVTable(vTable).reset(Self);
4846     end;
4847    
4848     procedure IWriter.add(status: IStatus; name: PAnsiChar);
4849     begin
4850     WriterVTable(vTable).add(Self, status, name);
4851 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4852 tony 45 end;
4853    
4854     procedure IWriter.setType(status: IStatus; value: PAnsiChar);
4855     begin
4856     WriterVTable(vTable).setType(Self, status, value);
4857 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4858 tony 45 end;
4859    
4860     procedure IWriter.setDb(status: IStatus; value: PAnsiChar);
4861     begin
4862     WriterVTable(vTable).setDb(Self, status, value);
4863 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4864 tony 45 end;
4865    
4866     function IServerBlock.getLogin(): PAnsiChar;
4867     begin
4868     Result := ServerBlockVTable(vTable).getLogin(Self);
4869     end;
4870    
4871     function IServerBlock.getData(length: CardinalPtr): BytePtr;
4872     begin
4873     Result := ServerBlockVTable(vTable).getData(Self, length);
4874     end;
4875    
4876     procedure IServerBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
4877     begin
4878     ServerBlockVTable(vTable).putData(Self, status, length, data);
4879 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4880 tony 45 end;
4881    
4882     function IServerBlock.newKey(status: IStatus): ICryptKey;
4883     begin
4884     Result := ServerBlockVTable(vTable).newKey(Self, status);
4885 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4886 tony 45 end;
4887    
4888     function IClientBlock.getLogin(): PAnsiChar;
4889     begin
4890     Result := ClientBlockVTable(vTable).getLogin(Self);
4891     end;
4892    
4893     function IClientBlock.getPassword(): PAnsiChar;
4894     begin
4895     Result := ClientBlockVTable(vTable).getPassword(Self);
4896     end;
4897    
4898     function IClientBlock.getData(length: CardinalPtr): BytePtr;
4899     begin
4900     Result := ClientBlockVTable(vTable).getData(Self, length);
4901     end;
4902    
4903     procedure IClientBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
4904     begin
4905     ClientBlockVTable(vTable).putData(Self, status, length, data);
4906 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4907 tony 45 end;
4908    
4909     function IClientBlock.newKey(status: IStatus): ICryptKey;
4910     begin
4911     Result := ClientBlockVTable(vTable).newKey(Self, status);
4912 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4913 tony 45 end;
4914    
4915 tony 315 function IClientBlock.getAuthBlock(status: IStatus): IAuthBlock;
4916     begin
4917     Result := ClientBlockVTable(vTable).getAuthBlock(Self, status);
4918     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4919     end;
4920    
4921 tony 45 function IServer.authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
4922     begin
4923     Result := ServerVTable(vTable).authenticate(Self, status, sBlock, writerInterface);
4924 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4925 tony 45 end;
4926    
4927 tony 315 procedure IServer.setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
4928     begin
4929     ServerVTable(vTable).setDbCryptCallback(Self, status, cryptCallback);
4930     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4931     end;
4932    
4933 tony 45 function IClient.authenticate(status: IStatus; cBlock: IClientBlock): Integer;
4934     begin
4935     Result := ClientVTable(vTable).authenticate(Self, status, cBlock);
4936 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4937 tony 45 end;
4938    
4939     function IUserField.entered(): Integer;
4940     begin
4941     Result := UserFieldVTable(vTable).entered(Self);
4942     end;
4943    
4944     function IUserField.specified(): Integer;
4945     begin
4946     Result := UserFieldVTable(vTable).specified(Self);
4947     end;
4948    
4949     procedure IUserField.setEntered(status: IStatus; newValue: Integer);
4950     begin
4951     UserFieldVTable(vTable).setEntered(Self, status, newValue);
4952 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4953 tony 45 end;
4954    
4955     function ICharUserField.get(): PAnsiChar;
4956     begin
4957     Result := CharUserFieldVTable(vTable).get(Self);
4958     end;
4959    
4960     procedure ICharUserField.set_(status: IStatus; newValue: PAnsiChar);
4961     begin
4962     CharUserFieldVTable(vTable).set_(Self, status, newValue);
4963 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4964 tony 45 end;
4965    
4966     function IIntUserField.get(): Integer;
4967     begin
4968     Result := IntUserFieldVTable(vTable).get(Self);
4969     end;
4970    
4971     procedure IIntUserField.set_(status: IStatus; newValue: Integer);
4972     begin
4973     IntUserFieldVTable(vTable).set_(Self, status, newValue);
4974 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4975 tony 45 end;
4976    
4977     function IUser.operation(): Cardinal;
4978     begin
4979     Result := UserVTable(vTable).operation(Self);
4980     end;
4981    
4982     function IUser.userName(): ICharUserField;
4983     begin
4984     Result := UserVTable(vTable).userName(Self);
4985     end;
4986    
4987     function IUser.password(): ICharUserField;
4988     begin
4989     Result := UserVTable(vTable).password(Self);
4990     end;
4991    
4992     function IUser.firstName(): ICharUserField;
4993     begin
4994     Result := UserVTable(vTable).firstName(Self);
4995     end;
4996    
4997     function IUser.lastName(): ICharUserField;
4998     begin
4999     Result := UserVTable(vTable).lastName(Self);
5000     end;
5001    
5002     function IUser.middleName(): ICharUserField;
5003     begin
5004     Result := UserVTable(vTable).middleName(Self);
5005     end;
5006    
5007     function IUser.comment(): ICharUserField;
5008     begin
5009     Result := UserVTable(vTable).comment(Self);
5010     end;
5011    
5012     function IUser.attributes(): ICharUserField;
5013     begin
5014     Result := UserVTable(vTable).attributes(Self);
5015     end;
5016    
5017     function IUser.active(): IIntUserField;
5018     begin
5019     Result := UserVTable(vTable).active(Self);
5020     end;
5021    
5022     function IUser.admin(): IIntUserField;
5023     begin
5024     Result := UserVTable(vTable).admin(Self);
5025     end;
5026    
5027     procedure IUser.clear(status: IStatus);
5028     begin
5029     UserVTable(vTable).clear(Self, status);
5030 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5031 tony 45 end;
5032    
5033     procedure IListUsers.list(status: IStatus; user: IUser);
5034     begin
5035     ListUsersVTable(vTable).list(Self, status, user);
5036 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5037 tony 45 end;
5038    
5039     function ILogonInfo.name(): PAnsiChar;
5040     begin
5041     Result := LogonInfoVTable(vTable).name(Self);
5042     end;
5043    
5044     function ILogonInfo.role(): PAnsiChar;
5045     begin
5046     Result := LogonInfoVTable(vTable).role(Self);
5047     end;
5048    
5049     function ILogonInfo.networkProtocol(): PAnsiChar;
5050     begin
5051     Result := LogonInfoVTable(vTable).networkProtocol(Self);
5052     end;
5053    
5054     function ILogonInfo.remoteAddress(): PAnsiChar;
5055     begin
5056     Result := LogonInfoVTable(vTable).remoteAddress(Self);
5057     end;
5058    
5059     function ILogonInfo.authBlock(length: CardinalPtr): BytePtr;
5060     begin
5061     Result := LogonInfoVTable(vTable).authBlock(Self, length);
5062     end;
5063    
5064 tony 315 function ILogonInfo.attachment(status: IStatus): IAttachment;
5065     begin
5066     Result := LogonInfoVTable(vTable).attachment(Self, status);
5067     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5068     end;
5069    
5070     function ILogonInfo.transaction(status: IStatus): ITransaction;
5071     begin
5072     Result := LogonInfoVTable(vTable).transaction(Self, status);
5073     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5074     end;
5075    
5076 tony 45 procedure IManagement.start(status: IStatus; logonInfo: ILogonInfo);
5077     begin
5078     ManagementVTable(vTable).start(Self, status, logonInfo);
5079 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5080 tony 45 end;
5081    
5082     function IManagement.execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
5083     begin
5084     Result := ManagementVTable(vTable).execute(Self, status, user, callback);
5085 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5086 tony 45 end;
5087    
5088     procedure IManagement.commit(status: IStatus);
5089     begin
5090     ManagementVTable(vTable).commit(Self, status);
5091 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5092 tony 45 end;
5093    
5094     procedure IManagement.rollback(status: IStatus);
5095     begin
5096     ManagementVTable(vTable).rollback(Self, status);
5097 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5098 tony 45 end;
5099    
5100 tony 315 function IAuthBlock.getType(): PAnsiChar;
5101     begin
5102     Result := AuthBlockVTable(vTable).getType(Self);
5103     end;
5104    
5105     function IAuthBlock.getName(): PAnsiChar;
5106     begin
5107     Result := AuthBlockVTable(vTable).getName(Self);
5108     end;
5109    
5110     function IAuthBlock.getPlugin(): PAnsiChar;
5111     begin
5112     Result := AuthBlockVTable(vTable).getPlugin(Self);
5113     end;
5114    
5115     function IAuthBlock.getSecurityDb(): PAnsiChar;
5116     begin
5117     Result := AuthBlockVTable(vTable).getSecurityDb(Self);
5118     end;
5119    
5120     function IAuthBlock.getOriginalPlugin(): PAnsiChar;
5121     begin
5122     Result := AuthBlockVTable(vTable).getOriginalPlugin(Self);
5123     end;
5124    
5125     function IAuthBlock.next(status: IStatus): Boolean;
5126     begin
5127     Result := AuthBlockVTable(vTable).next(Self, status);
5128     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5129     end;
5130    
5131     function IAuthBlock.first(status: IStatus): Boolean;
5132     begin
5133     Result := AuthBlockVTable(vTable).first(Self, status);
5134     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5135     end;
5136    
5137 tony 45 function IWireCryptPlugin.getKnownTypes(status: IStatus): PAnsiChar;
5138     begin
5139     Result := WireCryptPluginVTable(vTable).getKnownTypes(Self, status);
5140 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5141 tony 45 end;
5142    
5143     procedure IWireCryptPlugin.setKey(status: IStatus; key: ICryptKey);
5144     begin
5145     WireCryptPluginVTable(vTable).setKey(Self, status, key);
5146 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5147 tony 45 end;
5148    
5149     procedure IWireCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5150     begin
5151     WireCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5152 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5153 tony 45 end;
5154    
5155     procedure IWireCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5156     begin
5157     WireCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5158 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5159 tony 45 end;
5160    
5161 tony 315 function IWireCryptPlugin.getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr;
5162     begin
5163     Result := WireCryptPluginVTable(vTable).getSpecificData(Self, status, keyType, length);
5164     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5165     end;
5166    
5167     procedure IWireCryptPlugin.setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr);
5168     begin
5169     WireCryptPluginVTable(vTable).setSpecificData(Self, status, keyType, length, data);
5170     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5171     end;
5172    
5173 tony 45 function ICryptKeyCallback.callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
5174     begin
5175     Result := CryptKeyCallbackVTable(vTable).callback(Self, dataLength, data, bufferLength, buffer);
5176     end;
5177    
5178     function IKeyHolderPlugin.keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
5179     begin
5180     Result := KeyHolderPluginVTable(vTable).keyCallback(Self, status, callback);
5181 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5182 tony 45 end;
5183    
5184     function IKeyHolderPlugin.keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
5185     begin
5186     Result := KeyHolderPluginVTable(vTable).keyHandle(Self, status, keyName);
5187 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5188 tony 45 end;
5189    
5190 tony 315 function IKeyHolderPlugin.useOnlyOwnKeys(status: IStatus): Boolean;
5191     begin
5192     Result := KeyHolderPluginVTable(vTable).useOnlyOwnKeys(Self, status);
5193     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5194     end;
5195    
5196     function IKeyHolderPlugin.chainHandle(status: IStatus): ICryptKeyCallback;
5197     begin
5198     Result := KeyHolderPluginVTable(vTable).chainHandle(Self, status);
5199     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5200     end;
5201    
5202     function IDbCryptInfo.getDatabaseFullPath(status: IStatus): PAnsiChar;
5203     begin
5204     Result := DbCryptInfoVTable(vTable).getDatabaseFullPath(Self, status);
5205     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5206     end;
5207    
5208 tony 45 procedure IDbCryptPlugin.setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
5209     begin
5210     DbCryptPluginVTable(vTable).setKey(Self, status, length, sources, keyName);
5211 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5212 tony 45 end;
5213    
5214     procedure IDbCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5215     begin
5216     DbCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5217 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5218 tony 45 end;
5219    
5220     procedure IDbCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5221     begin
5222     DbCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5223 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5224 tony 45 end;
5225    
5226 tony 315 procedure IDbCryptPlugin.setInfo(status: IStatus; info: IDbCryptInfo);
5227     begin
5228     DbCryptPluginVTable(vTable).setInfo(Self, status, info);
5229     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5230     end;
5231    
5232 tony 45 function IExternalContext.getMaster(): IMaster;
5233     begin
5234     Result := ExternalContextVTable(vTable).getMaster(Self);
5235     end;
5236    
5237     function IExternalContext.getEngine(status: IStatus): IExternalEngine;
5238     begin
5239     Result := ExternalContextVTable(vTable).getEngine(Self, status);
5240 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5241 tony 45 end;
5242    
5243     function IExternalContext.getAttachment(status: IStatus): IAttachment;
5244     begin
5245     Result := ExternalContextVTable(vTable).getAttachment(Self, status);
5246 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5247 tony 45 end;
5248    
5249     function IExternalContext.getTransaction(status: IStatus): ITransaction;
5250     begin
5251     Result := ExternalContextVTable(vTable).getTransaction(Self, status);
5252 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5253 tony 45 end;
5254    
5255     function IExternalContext.getUserName(): PAnsiChar;
5256     begin
5257     Result := ExternalContextVTable(vTable).getUserName(Self);
5258     end;
5259    
5260     function IExternalContext.getDatabaseName(): PAnsiChar;
5261     begin
5262     Result := ExternalContextVTable(vTable).getDatabaseName(Self);
5263     end;
5264    
5265     function IExternalContext.getClientCharSet(): PAnsiChar;
5266     begin
5267     Result := ExternalContextVTable(vTable).getClientCharSet(Self);
5268     end;
5269    
5270     function IExternalContext.obtainInfoCode(): Integer;
5271     begin
5272     Result := ExternalContextVTable(vTable).obtainInfoCode(Self);
5273     end;
5274    
5275     function IExternalContext.getInfo(code: Integer): Pointer;
5276     begin
5277     Result := ExternalContextVTable(vTable).getInfo(Self, code);
5278     end;
5279    
5280     function IExternalContext.setInfo(code: Integer; value: Pointer): Pointer;
5281     begin
5282     Result := ExternalContextVTable(vTable).setInfo(Self, code, value);
5283     end;
5284    
5285     function IExternalResultSet.fetch(status: IStatus): Boolean;
5286     begin
5287     Result := ExternalResultSetVTable(vTable).fetch(Self, status);
5288 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5289 tony 45 end;
5290    
5291     procedure IExternalFunction.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5292     begin
5293     ExternalFunctionVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5294 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5295 tony 45 end;
5296    
5297     procedure IExternalFunction.execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer);
5298     begin
5299     ExternalFunctionVTable(vTable).execute(Self, status, context, inMsg, outMsg);
5300 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5301 tony 45 end;
5302    
5303     procedure IExternalProcedure.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5304     begin
5305     ExternalProcedureVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5306 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5307 tony 45 end;
5308    
5309     function IExternalProcedure.open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet;
5310     begin
5311     Result := ExternalProcedureVTable(vTable).open(Self, status, context, inMsg, outMsg);
5312 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5313 tony 45 end;
5314    
5315     procedure IExternalTrigger.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5316     begin
5317     ExternalTriggerVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5318 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5319 tony 45 end;
5320    
5321     procedure IExternalTrigger.execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer);
5322     begin
5323     ExternalTriggerVTable(vTable).execute(Self, status, context, action, oldMsg, newMsg);
5324 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5325 tony 45 end;
5326    
5327     function IRoutineMetadata.getPackage(status: IStatus): PAnsiChar;
5328     begin
5329     Result := RoutineMetadataVTable(vTable).getPackage(Self, status);
5330 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5331 tony 45 end;
5332    
5333     function IRoutineMetadata.getName(status: IStatus): PAnsiChar;
5334     begin
5335     Result := RoutineMetadataVTable(vTable).getName(Self, status);
5336 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5337 tony 45 end;
5338    
5339     function IRoutineMetadata.getEntryPoint(status: IStatus): PAnsiChar;
5340     begin
5341     Result := RoutineMetadataVTable(vTable).getEntryPoint(Self, status);
5342 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5343 tony 45 end;
5344    
5345     function IRoutineMetadata.getBody(status: IStatus): PAnsiChar;
5346     begin
5347     Result := RoutineMetadataVTable(vTable).getBody(Self, status);
5348 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5349 tony 45 end;
5350    
5351     function IRoutineMetadata.getInputMetadata(status: IStatus): IMessageMetadata;
5352     begin
5353     Result := RoutineMetadataVTable(vTable).getInputMetadata(Self, status);
5354 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5355 tony 45 end;
5356    
5357     function IRoutineMetadata.getOutputMetadata(status: IStatus): IMessageMetadata;
5358     begin
5359     Result := RoutineMetadataVTable(vTable).getOutputMetadata(Self, status);
5360 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5361 tony 45 end;
5362    
5363     function IRoutineMetadata.getTriggerMetadata(status: IStatus): IMessageMetadata;
5364     begin
5365     Result := RoutineMetadataVTable(vTable).getTriggerMetadata(Self, status);
5366 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5367 tony 45 end;
5368    
5369     function IRoutineMetadata.getTriggerTable(status: IStatus): PAnsiChar;
5370     begin
5371     Result := RoutineMetadataVTable(vTable).getTriggerTable(Self, status);
5372 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5373 tony 45 end;
5374    
5375     function IRoutineMetadata.getTriggerType(status: IStatus): Cardinal;
5376     begin
5377     Result := RoutineMetadataVTable(vTable).getTriggerType(Self, status);
5378 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5379 tony 45 end;
5380    
5381     procedure IExternalEngine.open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
5382     begin
5383     ExternalEngineVTable(vTable).open(Self, status, context, charSet, charSetSize);
5384 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5385 tony 45 end;
5386    
5387     procedure IExternalEngine.openAttachment(status: IStatus; context: IExternalContext);
5388     begin
5389     ExternalEngineVTable(vTable).openAttachment(Self, status, context);
5390 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5391 tony 45 end;
5392    
5393     procedure IExternalEngine.closeAttachment(status: IStatus; context: IExternalContext);
5394     begin
5395     ExternalEngineVTable(vTable).closeAttachment(Self, status, context);
5396 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5397 tony 45 end;
5398    
5399     function IExternalEngine.makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction;
5400     begin
5401     Result := ExternalEngineVTable(vTable).makeFunction(Self, status, context, metadata, inBuilder, outBuilder);
5402 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5403 tony 45 end;
5404    
5405     function IExternalEngine.makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure;
5406     begin
5407     Result := ExternalEngineVTable(vTable).makeProcedure(Self, status, context, metadata, inBuilder, outBuilder);
5408 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5409 tony 45 end;
5410    
5411     function IExternalEngine.makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger;
5412     begin
5413     Result := ExternalEngineVTable(vTable).makeTrigger(Self, status, context, metadata, fieldsBuilder);
5414 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5415 tony 45 end;
5416    
5417     procedure ITimer.handler();
5418     begin
5419     TimerVTable(vTable).handler(Self);
5420     end;
5421    
5422     procedure ITimerControl.start(status: IStatus; timer: ITimer; microSeconds: QWord);
5423     begin
5424     TimerControlVTable(vTable).start(Self, status, timer, microSeconds);
5425 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5426 tony 45 end;
5427    
5428     procedure ITimerControl.stop(status: IStatus; timer: ITimer);
5429     begin
5430     TimerControlVTable(vTable).stop(Self, status, timer);
5431 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5432 tony 45 end;
5433    
5434     procedure IVersionCallback.callback(status: IStatus; text: PAnsiChar);
5435     begin
5436     VersionCallbackVTable(vTable).callback(Self, status, text);
5437 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5438 tony 45 end;
5439    
5440     procedure IUtil.getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
5441     begin
5442     UtilVTable(vTable).getFbVersion(Self, status, att, callback);
5443 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5444 tony 45 end;
5445    
5446 tony 315 procedure IUtil.loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5447 tony 45 begin
5448     UtilVTable(vTable).loadBlob(Self, status, blobId, att, tra, file_, txt);
5449 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5450 tony 45 end;
5451    
5452 tony 315 procedure IUtil.dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5453 tony 45 begin
5454     UtilVTable(vTable).dumpBlob(Self, status, blobId, att, tra, file_, txt);
5455 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5456 tony 45 end;
5457    
5458     procedure IUtil.getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
5459     begin
5460     UtilVTable(vTable).getPerfCounters(Self, status, att, countersSet, counters);
5461 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5462 tony 45 end;
5463    
5464     function IUtil.executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
5465     begin
5466     Result := UtilVTable(vTable).executeCreateDatabase(Self, status, stmtLength, creatDBstatement, dialect, stmtIsCreateDb);
5467 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5468 tony 45 end;
5469    
5470     procedure IUtil.decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
5471     begin
5472     UtilVTable(vTable).decodeDate(Self, date, year, month, day);
5473     end;
5474    
5475     procedure IUtil.decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr);
5476     begin
5477     UtilVTable(vTable).decodeTime(Self, time, hours, minutes, seconds, fractions);
5478     end;
5479    
5480     function IUtil.encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE;
5481     begin
5482     Result := UtilVTable(vTable).encodeDate(Self, year, month, day);
5483     end;
5484    
5485     function IUtil.encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME;
5486     begin
5487     Result := UtilVTable(vTable).encodeTime(Self, hours, minutes, seconds, fractions);
5488     end;
5489    
5490     function IUtil.formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal;
5491     begin
5492     Result := UtilVTable(vTable).formatStatus(Self, buffer, bufferSize, status);
5493     end;
5494    
5495     function IUtil.getClientVersion(): Cardinal;
5496     begin
5497     Result := UtilVTable(vTable).getClientVersion(Self);
5498     end;
5499    
5500     function IUtil.getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
5501     begin
5502     Result := UtilVTable(vTable).getXpbBuilder(Self, status, kind, buf, len);
5503 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5504 tony 45 end;
5505    
5506     function IUtil.setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
5507     begin
5508     Result := UtilVTable(vTable).setOffsets(Self, status, metadata, callback);
5509 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5510 tony 45 end;
5511    
5512 tony 315 function IUtil.getDecFloat16(status: IStatus): IDecFloat16;
5513     begin
5514     Result := UtilVTable(vTable).getDecFloat16(Self, status);
5515     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5516     end;
5517    
5518     function IUtil.getDecFloat34(status: IStatus): IDecFloat34;
5519     begin
5520     Result := UtilVTable(vTable).getDecFloat34(Self, status);
5521     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5522     end;
5523    
5524     procedure IUtil.decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5525     begin
5526     UtilVTable(vTable).decodeTimeTz(Self, status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5527     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5528     end;
5529    
5530     procedure IUtil.decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5531     begin
5532     UtilVTable(vTable).decodeTimeStampTz(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5533     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5534     end;
5535    
5536     procedure IUtil.encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
5537     begin
5538     UtilVTable(vTable).encodeTimeTz(Self, status, timeTz, hours, minutes, seconds, fractions, timeZone);
5539     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5540     end;
5541    
5542     procedure IUtil.encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
5543     begin
5544     UtilVTable(vTable).encodeTimeStampTz(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZone);
5545     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5546     end;
5547    
5548     function IUtil.getInt128(status: IStatus): IInt128;
5549     begin
5550     Result := UtilVTable(vTable).getInt128(Self, status);
5551     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5552     end;
5553    
5554     procedure IUtil.decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5555     begin
5556     UtilVTable(vTable).decodeTimeTzEx(Self, status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5557     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5558     end;
5559    
5560     procedure IUtil.decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5561     begin
5562     UtilVTable(vTable).decodeTimeStampTzEx(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5563     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5564     end;
5565    
5566 tony 45 procedure IOffsetsCallback.setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
5567     begin
5568     OffsetsCallbackVTable(vTable).setOffset(Self, status, index, offset, nullOffset);
5569 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5570 tony 45 end;
5571    
5572     procedure IXpbBuilder.clear(status: IStatus);
5573     begin
5574     XpbBuilderVTable(vTable).clear(Self, status);
5575 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5576 tony 45 end;
5577    
5578     procedure IXpbBuilder.removeCurrent(status: IStatus);
5579     begin
5580     XpbBuilderVTable(vTable).removeCurrent(Self, status);
5581 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5582 tony 45 end;
5583    
5584     procedure IXpbBuilder.insertInt(status: IStatus; tag: Byte; value: Integer);
5585     begin
5586     XpbBuilderVTable(vTable).insertInt(Self, status, tag, value);
5587 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5588 tony 45 end;
5589    
5590     procedure IXpbBuilder.insertBigInt(status: IStatus; tag: Byte; value: Int64);
5591     begin
5592     XpbBuilderVTable(vTable).insertBigInt(Self, status, tag, value);
5593 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5594 tony 45 end;
5595    
5596     procedure IXpbBuilder.insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal);
5597     begin
5598     XpbBuilderVTable(vTable).insertBytes(Self, status, tag, bytes, length);
5599 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5600 tony 45 end;
5601    
5602     procedure IXpbBuilder.insertString(status: IStatus; tag: Byte; str: PAnsiChar);
5603     begin
5604     XpbBuilderVTable(vTable).insertString(Self, status, tag, str);
5605 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5606 tony 45 end;
5607    
5608     procedure IXpbBuilder.insertTag(status: IStatus; tag: Byte);
5609     begin
5610     XpbBuilderVTable(vTable).insertTag(Self, status, tag);
5611 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5612 tony 45 end;
5613    
5614     function IXpbBuilder.isEof(status: IStatus): Boolean;
5615     begin
5616     Result := XpbBuilderVTable(vTable).isEof(Self, status);
5617 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5618 tony 45 end;
5619    
5620     procedure IXpbBuilder.moveNext(status: IStatus);
5621     begin
5622     XpbBuilderVTable(vTable).moveNext(Self, status);
5623 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5624 tony 45 end;
5625    
5626     procedure IXpbBuilder.rewind(status: IStatus);
5627     begin
5628     XpbBuilderVTable(vTable).rewind(Self, status);
5629 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5630 tony 45 end;
5631    
5632     function IXpbBuilder.findFirst(status: IStatus; tag: Byte): Boolean;
5633     begin
5634     Result := XpbBuilderVTable(vTable).findFirst(Self, status, tag);
5635 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5636 tony 45 end;
5637    
5638     function IXpbBuilder.findNext(status: IStatus): Boolean;
5639     begin
5640     Result := XpbBuilderVTable(vTable).findNext(Self, status);
5641 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5642 tony 45 end;
5643    
5644     function IXpbBuilder.getTag(status: IStatus): Byte;
5645     begin
5646     Result := XpbBuilderVTable(vTable).getTag(Self, status);
5647 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5648 tony 45 end;
5649    
5650     function IXpbBuilder.getLength(status: IStatus): Cardinal;
5651     begin
5652     Result := XpbBuilderVTable(vTable).getLength(Self, status);
5653 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5654 tony 45 end;
5655    
5656     function IXpbBuilder.getInt(status: IStatus): Integer;
5657     begin
5658     Result := XpbBuilderVTable(vTable).getInt(Self, status);
5659 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5660 tony 45 end;
5661    
5662     function IXpbBuilder.getBigInt(status: IStatus): Int64;
5663     begin
5664     Result := XpbBuilderVTable(vTable).getBigInt(Self, status);
5665 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5666 tony 45 end;
5667    
5668     function IXpbBuilder.getString(status: IStatus): PAnsiChar;
5669     begin
5670     Result := XpbBuilderVTable(vTable).getString(Self, status);
5671 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5672 tony 45 end;
5673    
5674     function IXpbBuilder.getBytes(status: IStatus): BytePtr;
5675     begin
5676     Result := XpbBuilderVTable(vTable).getBytes(Self, status);
5677 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5678 tony 45 end;
5679    
5680     function IXpbBuilder.getBufferLength(status: IStatus): Cardinal;
5681     begin
5682     Result := XpbBuilderVTable(vTable).getBufferLength(Self, status);
5683 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5684 tony 45 end;
5685    
5686     function IXpbBuilder.getBuffer(status: IStatus): BytePtr;
5687     begin
5688     Result := XpbBuilderVTable(vTable).getBuffer(Self, status);
5689 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5690 tony 45 end;
5691    
5692     function ITraceConnection.getKind(): Cardinal;
5693     begin
5694     Result := TraceConnectionVTable(vTable).getKind(Self);
5695     end;
5696    
5697     function ITraceConnection.getProcessID(): Integer;
5698     begin
5699     Result := TraceConnectionVTable(vTable).getProcessID(Self);
5700     end;
5701    
5702     function ITraceConnection.getUserName(): PAnsiChar;
5703     begin
5704     Result := TraceConnectionVTable(vTable).getUserName(Self);
5705     end;
5706    
5707     function ITraceConnection.getRoleName(): PAnsiChar;
5708     begin
5709     Result := TraceConnectionVTable(vTable).getRoleName(Self);
5710     end;
5711    
5712     function ITraceConnection.getCharSet(): PAnsiChar;
5713     begin
5714     Result := TraceConnectionVTable(vTable).getCharSet(Self);
5715     end;
5716    
5717     function ITraceConnection.getRemoteProtocol(): PAnsiChar;
5718     begin
5719     Result := TraceConnectionVTable(vTable).getRemoteProtocol(Self);
5720     end;
5721    
5722     function ITraceConnection.getRemoteAddress(): PAnsiChar;
5723     begin
5724     Result := TraceConnectionVTable(vTable).getRemoteAddress(Self);
5725     end;
5726    
5727     function ITraceConnection.getRemoteProcessID(): Integer;
5728     begin
5729     Result := TraceConnectionVTable(vTable).getRemoteProcessID(Self);
5730     end;
5731    
5732     function ITraceConnection.getRemoteProcessName(): PAnsiChar;
5733     begin
5734     Result := TraceConnectionVTable(vTable).getRemoteProcessName(Self);
5735     end;
5736    
5737     function ITraceDatabaseConnection.getConnectionID(): Int64;
5738     begin
5739     Result := TraceDatabaseConnectionVTable(vTable).getConnectionID(Self);
5740     end;
5741    
5742     function ITraceDatabaseConnection.getDatabaseName(): PAnsiChar;
5743     begin
5744     Result := TraceDatabaseConnectionVTable(vTable).getDatabaseName(Self);
5745     end;
5746    
5747     function ITraceTransaction.getTransactionID(): Int64;
5748     begin
5749     Result := TraceTransactionVTable(vTable).getTransactionID(Self);
5750     end;
5751    
5752     function ITraceTransaction.getReadOnly(): Boolean;
5753     begin
5754     Result := TraceTransactionVTable(vTable).getReadOnly(Self);
5755     end;
5756    
5757     function ITraceTransaction.getWait(): Integer;
5758     begin
5759     Result := TraceTransactionVTable(vTable).getWait(Self);
5760     end;
5761    
5762     function ITraceTransaction.getIsolation(): Cardinal;
5763     begin
5764     Result := TraceTransactionVTable(vTable).getIsolation(Self);
5765     end;
5766    
5767     function ITraceTransaction.getPerf(): PerformanceInfoPtr;
5768     begin
5769     Result := TraceTransactionVTable(vTable).getPerf(Self);
5770     end;
5771    
5772 tony 315 function ITraceTransaction.getInitialID(): Int64;
5773     begin
5774     Result := TraceTransactionVTable(vTable).getInitialID(Self);
5775     end;
5776    
5777     function ITraceTransaction.getPreviousID(): Int64;
5778     begin
5779     Result := TraceTransactionVTable(vTable).getPreviousID(Self);
5780     end;
5781    
5782 tony 45 function ITraceParams.getCount(): Cardinal;
5783     begin
5784     Result := TraceParamsVTable(vTable).getCount(Self);
5785     end;
5786    
5787     function ITraceParams.getParam(idx: Cardinal): dscPtr;
5788     begin
5789     Result := TraceParamsVTable(vTable).getParam(Self, idx);
5790     end;
5791    
5792 tony 315 function ITraceParams.getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar;
5793     begin
5794     Result := TraceParamsVTable(vTable).getTextUTF8(Self, status, idx);
5795     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5796     end;
5797    
5798 tony 45 function ITraceStatement.getStmtID(): Int64;
5799     begin
5800     Result := TraceStatementVTable(vTable).getStmtID(Self);
5801     end;
5802    
5803     function ITraceStatement.getPerf(): PerformanceInfoPtr;
5804     begin
5805     Result := TraceStatementVTable(vTable).getPerf(Self);
5806     end;
5807    
5808     function ITraceSQLStatement.getText(): PAnsiChar;
5809     begin
5810     Result := TraceSQLStatementVTable(vTable).getText(Self);
5811     end;
5812    
5813     function ITraceSQLStatement.getPlan(): PAnsiChar;
5814     begin
5815     Result := TraceSQLStatementVTable(vTable).getPlan(Self);
5816     end;
5817    
5818     function ITraceSQLStatement.getInputs(): ITraceParams;
5819     begin
5820     Result := TraceSQLStatementVTable(vTable).getInputs(Self);
5821     end;
5822    
5823     function ITraceSQLStatement.getTextUTF8(): PAnsiChar;
5824     begin
5825     Result := TraceSQLStatementVTable(vTable).getTextUTF8(Self);
5826     end;
5827    
5828     function ITraceSQLStatement.getExplainedPlan(): PAnsiChar;
5829     begin
5830     Result := TraceSQLStatementVTable(vTable).getExplainedPlan(Self);
5831     end;
5832    
5833     function ITraceBLRStatement.getData(): BytePtr;
5834     begin
5835     Result := TraceBLRStatementVTable(vTable).getData(Self);
5836     end;
5837    
5838     function ITraceBLRStatement.getDataLength(): Cardinal;
5839     begin
5840     Result := TraceBLRStatementVTable(vTable).getDataLength(Self);
5841     end;
5842    
5843     function ITraceBLRStatement.getText(): PAnsiChar;
5844     begin
5845     Result := TraceBLRStatementVTable(vTable).getText(Self);
5846     end;
5847    
5848     function ITraceDYNRequest.getData(): BytePtr;
5849     begin
5850     Result := TraceDYNRequestVTable(vTable).getData(Self);
5851     end;
5852    
5853     function ITraceDYNRequest.getDataLength(): Cardinal;
5854     begin
5855     Result := TraceDYNRequestVTable(vTable).getDataLength(Self);
5856     end;
5857    
5858     function ITraceDYNRequest.getText(): PAnsiChar;
5859     begin
5860     Result := TraceDYNRequestVTable(vTable).getText(Self);
5861     end;
5862    
5863     function ITraceContextVariable.getNameSpace(): PAnsiChar;
5864     begin
5865     Result := TraceContextVariableVTable(vTable).getNameSpace(Self);
5866     end;
5867    
5868     function ITraceContextVariable.getVarName(): PAnsiChar;
5869     begin
5870     Result := TraceContextVariableVTable(vTable).getVarName(Self);
5871     end;
5872    
5873     function ITraceContextVariable.getVarValue(): PAnsiChar;
5874     begin
5875     Result := TraceContextVariableVTable(vTable).getVarValue(Self);
5876     end;
5877    
5878     function ITraceProcedure.getProcName(): PAnsiChar;
5879     begin
5880     Result := TraceProcedureVTable(vTable).getProcName(Self);
5881     end;
5882    
5883     function ITraceProcedure.getInputs(): ITraceParams;
5884     begin
5885     Result := TraceProcedureVTable(vTable).getInputs(Self);
5886     end;
5887    
5888     function ITraceProcedure.getPerf(): PerformanceInfoPtr;
5889     begin
5890     Result := TraceProcedureVTable(vTable).getPerf(Self);
5891     end;
5892    
5893     function ITraceFunction.getFuncName(): PAnsiChar;
5894     begin
5895     Result := TraceFunctionVTable(vTable).getFuncName(Self);
5896     end;
5897    
5898     function ITraceFunction.getInputs(): ITraceParams;
5899     begin
5900     Result := TraceFunctionVTable(vTable).getInputs(Self);
5901     end;
5902    
5903     function ITraceFunction.getResult(): ITraceParams;
5904     begin
5905     Result := TraceFunctionVTable(vTable).getResult(Self);
5906     end;
5907    
5908     function ITraceFunction.getPerf(): PerformanceInfoPtr;
5909     begin
5910     Result := TraceFunctionVTable(vTable).getPerf(Self);
5911     end;
5912    
5913     function ITraceTrigger.getTriggerName(): PAnsiChar;
5914     begin
5915     Result := TraceTriggerVTable(vTable).getTriggerName(Self);
5916     end;
5917    
5918     function ITraceTrigger.getRelationName(): PAnsiChar;
5919     begin
5920     Result := TraceTriggerVTable(vTable).getRelationName(Self);
5921     end;
5922    
5923     function ITraceTrigger.getAction(): Integer;
5924     begin
5925     Result := TraceTriggerVTable(vTable).getAction(Self);
5926     end;
5927    
5928     function ITraceTrigger.getWhich(): Integer;
5929     begin
5930     Result := TraceTriggerVTable(vTable).getWhich(Self);
5931     end;
5932    
5933     function ITraceTrigger.getPerf(): PerformanceInfoPtr;
5934     begin
5935     Result := TraceTriggerVTable(vTable).getPerf(Self);
5936     end;
5937    
5938     function ITraceServiceConnection.getServiceID(): Pointer;
5939     begin
5940     Result := TraceServiceConnectionVTable(vTable).getServiceID(Self);
5941     end;
5942    
5943     function ITraceServiceConnection.getServiceMgr(): PAnsiChar;
5944     begin
5945     Result := TraceServiceConnectionVTable(vTable).getServiceMgr(Self);
5946     end;
5947    
5948     function ITraceServiceConnection.getServiceName(): PAnsiChar;
5949     begin
5950     Result := TraceServiceConnectionVTable(vTable).getServiceName(Self);
5951     end;
5952    
5953     function ITraceStatusVector.hasError(): Boolean;
5954     begin
5955     Result := TraceStatusVectorVTable(vTable).hasError(Self);
5956     end;
5957    
5958     function ITraceStatusVector.hasWarning(): Boolean;
5959     begin
5960     Result := TraceStatusVectorVTable(vTable).hasWarning(Self);
5961     end;
5962    
5963     function ITraceStatusVector.getStatus(): IStatus;
5964     begin
5965     Result := TraceStatusVectorVTable(vTable).getStatus(Self);
5966     end;
5967    
5968     function ITraceStatusVector.getText(): PAnsiChar;
5969     begin
5970     Result := TraceStatusVectorVTable(vTable).getText(Self);
5971     end;
5972    
5973     function ITraceSweepInfo.getOIT(): Int64;
5974     begin
5975     Result := TraceSweepInfoVTable(vTable).getOIT(Self);
5976     end;
5977    
5978     function ITraceSweepInfo.getOST(): Int64;
5979     begin
5980     Result := TraceSweepInfoVTable(vTable).getOST(Self);
5981     end;
5982    
5983     function ITraceSweepInfo.getOAT(): Int64;
5984     begin
5985     Result := TraceSweepInfoVTable(vTable).getOAT(Self);
5986     end;
5987    
5988     function ITraceSweepInfo.getNext(): Int64;
5989     begin
5990     Result := TraceSweepInfoVTable(vTable).getNext(Self);
5991     end;
5992    
5993     function ITraceSweepInfo.getPerf(): PerformanceInfoPtr;
5994     begin
5995     Result := TraceSweepInfoVTable(vTable).getPerf(Self);
5996     end;
5997    
5998     function ITraceLogWriter.write(buf: Pointer; size: Cardinal): Cardinal;
5999     begin
6000     Result := TraceLogWriterVTable(vTable).write(Self, buf, size);
6001     end;
6002    
6003 tony 315 function ITraceLogWriter.write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal;
6004     begin
6005     Result := TraceLogWriterVTable(vTable).write_s(Self, status, buf, size);
6006     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6007     end;
6008    
6009 tony 45 function ITraceInitInfo.getConfigText(): PAnsiChar;
6010     begin
6011     Result := TraceInitInfoVTable(vTable).getConfigText(Self);
6012     end;
6013    
6014     function ITraceInitInfo.getTraceSessionID(): Integer;
6015     begin
6016     Result := TraceInitInfoVTable(vTable).getTraceSessionID(Self);
6017     end;
6018    
6019     function ITraceInitInfo.getTraceSessionName(): PAnsiChar;
6020     begin
6021     Result := TraceInitInfoVTable(vTable).getTraceSessionName(Self);
6022     end;
6023    
6024     function ITraceInitInfo.getFirebirdRootDirectory(): PAnsiChar;
6025     begin
6026     Result := TraceInitInfoVTable(vTable).getFirebirdRootDirectory(Self);
6027     end;
6028    
6029     function ITraceInitInfo.getDatabaseName(): PAnsiChar;
6030     begin
6031     Result := TraceInitInfoVTable(vTable).getDatabaseName(Self);
6032     end;
6033    
6034     function ITraceInitInfo.getConnection(): ITraceDatabaseConnection;
6035     begin
6036     Result := TraceInitInfoVTable(vTable).getConnection(Self);
6037     end;
6038    
6039     function ITraceInitInfo.getLogWriter(): ITraceLogWriter;
6040     begin
6041     Result := TraceInitInfoVTable(vTable).getLogWriter(Self);
6042     end;
6043    
6044     function ITracePlugin.trace_get_error(): PAnsiChar;
6045     begin
6046     Result := TracePluginVTable(vTable).trace_get_error(Self);
6047     end;
6048    
6049     function ITracePlugin.trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean;
6050     begin
6051     Result := TracePluginVTable(vTable).trace_attach(Self, connection, create_db, att_result);
6052     end;
6053    
6054     function ITracePlugin.trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean;
6055     begin
6056     Result := TracePluginVTable(vTable).trace_detach(Self, connection, drop_db);
6057     end;
6058    
6059     function ITracePlugin.trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean;
6060     begin
6061     Result := TracePluginVTable(vTable).trace_transaction_start(Self, connection, transaction, tpb_length, tpb, tra_result);
6062     end;
6063    
6064     function ITracePlugin.trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean;
6065     begin
6066     Result := TracePluginVTable(vTable).trace_transaction_end(Self, connection, transaction, commit, retain_context, tra_result);
6067     end;
6068    
6069     function ITracePlugin.trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean;
6070     begin
6071     Result := TracePluginVTable(vTable).trace_proc_execute(Self, connection, transaction, procedure_, started, proc_result);
6072     end;
6073    
6074     function ITracePlugin.trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean;
6075     begin
6076     Result := TracePluginVTable(vTable).trace_trigger_execute(Self, connection, transaction, trigger, started, trig_result);
6077     end;
6078    
6079     function ITracePlugin.trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean;
6080     begin
6081     Result := TracePluginVTable(vTable).trace_set_context(Self, connection, transaction, variable);
6082     end;
6083    
6084     function ITracePlugin.trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean;
6085     begin
6086     Result := TracePluginVTable(vTable).trace_dsql_prepare(Self, connection, transaction, statement, time_millis, req_result);
6087     end;
6088    
6089     function ITracePlugin.trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean;
6090     begin
6091     Result := TracePluginVTable(vTable).trace_dsql_free(Self, connection, statement, option);
6092     end;
6093    
6094     function ITracePlugin.trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean;
6095     begin
6096     Result := TracePluginVTable(vTable).trace_dsql_execute(Self, connection, transaction, statement, started, req_result);
6097     end;
6098    
6099     function ITracePlugin.trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean;
6100     begin
6101     Result := TracePluginVTable(vTable).trace_blr_compile(Self, connection, transaction, statement, time_millis, req_result);
6102     end;
6103    
6104     function ITracePlugin.trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean;
6105     begin
6106     Result := TracePluginVTable(vTable).trace_blr_execute(Self, connection, transaction, statement, req_result);
6107     end;
6108    
6109     function ITracePlugin.trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean;
6110     begin
6111     Result := TracePluginVTable(vTable).trace_dyn_execute(Self, connection, transaction, request, time_millis, req_result);
6112     end;
6113    
6114     function ITracePlugin.trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean;
6115     begin
6116     Result := TracePluginVTable(vTable).trace_service_attach(Self, service, att_result);
6117     end;
6118    
6119     function ITracePlugin.trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean;
6120     begin
6121     Result := TracePluginVTable(vTable).trace_service_start(Self, service, switches_length, switches, start_result);
6122     end;
6123    
6124     function ITracePlugin.trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean;
6125     begin
6126     Result := TracePluginVTable(vTable).trace_service_query(Self, service, send_item_length, send_items, recv_item_length, recv_items, query_result);
6127     end;
6128    
6129     function ITracePlugin.trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean;
6130     begin
6131     Result := TracePluginVTable(vTable).trace_service_detach(Self, service, detach_result);
6132     end;
6133    
6134     function ITracePlugin.trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean;
6135     begin
6136     Result := TracePluginVTable(vTable).trace_event_error(Self, connection, status, function_);
6137     end;
6138    
6139     function ITracePlugin.trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean;
6140     begin
6141     Result := TracePluginVTable(vTable).trace_event_sweep(Self, connection, sweep, sweep_state);
6142     end;
6143    
6144     function ITracePlugin.trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean;
6145     begin
6146     Result := TracePluginVTable(vTable).trace_func_execute(Self, connection, transaction, function_, started, func_result);
6147     end;
6148    
6149     function ITraceFactory.trace_needs(): QWord;
6150     begin
6151     Result := TraceFactoryVTable(vTable).trace_needs(Self);
6152     end;
6153    
6154     function ITraceFactory.trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin;
6155     begin
6156     Result := TraceFactoryVTable(vTable).trace_create(Self, status, init_info);
6157 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6158 tony 45 end;
6159    
6160     procedure IUdrFunctionFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6161     begin
6162     UdrFunctionFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6163 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6164 tony 45 end;
6165    
6166     function IUdrFunctionFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction;
6167     begin
6168     Result := UdrFunctionFactoryVTable(vTable).newItem(Self, status, context, metadata);
6169 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6170 tony 45 end;
6171    
6172     procedure IUdrProcedureFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6173     begin
6174     UdrProcedureFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6175 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6176 tony 45 end;
6177    
6178     function IUdrProcedureFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure;
6179     begin
6180     Result := UdrProcedureFactoryVTable(vTable).newItem(Self, status, context, metadata);
6181 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6182 tony 45 end;
6183    
6184     procedure IUdrTriggerFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder);
6185     begin
6186     UdrTriggerFactoryVTable(vTable).setup(Self, status, context, metadata, fieldsBuilder);
6187 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6188 tony 45 end;
6189    
6190     function IUdrTriggerFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger;
6191     begin
6192     Result := UdrTriggerFactoryVTable(vTable).newItem(Self, status, context, metadata);
6193 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6194 tony 45 end;
6195    
6196     function IUdrPlugin.getMaster(): IMaster;
6197     begin
6198     Result := UdrPluginVTable(vTable).getMaster(Self);
6199     end;
6200    
6201     procedure IUdrPlugin.registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
6202     begin
6203     UdrPluginVTable(vTable).registerFunction(Self, status, name, factory);
6204 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6205 tony 45 end;
6206    
6207     procedure IUdrPlugin.registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory);
6208     begin
6209     UdrPluginVTable(vTable).registerProcedure(Self, status, name, factory);
6210 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6211 tony 45 end;
6212    
6213     procedure IUdrPlugin.registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory);
6214     begin
6215     UdrPluginVTable(vTable).registerTrigger(Self, status, name, factory);
6216 tony 315 {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6217 tony 45 end;
6218    
6219 tony 315 procedure IDecFloat16.toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
6220     begin
6221     DecFloat16VTable(vTable).toBcd(Self, from, sign, bcd, exp);
6222     end;
6223    
6224     procedure IDecFloat16.toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
6225     begin
6226     DecFloat16VTable(vTable).toString(Self, status, from, bufferLength, buffer);
6227     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6228     end;
6229    
6230     procedure IDecFloat16.fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr);
6231     begin
6232     DecFloat16VTable(vTable).fromBcd(Self, sign, bcd, exp, to_);
6233     end;
6234    
6235     procedure IDecFloat16.fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr);
6236     begin
6237     DecFloat16VTable(vTable).fromString(Self, status, from, to_);
6238     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6239     end;
6240    
6241     procedure IDecFloat34.toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
6242     begin
6243     DecFloat34VTable(vTable).toBcd(Self, from, sign, bcd, exp);
6244     end;
6245    
6246     procedure IDecFloat34.toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
6247     begin
6248     DecFloat34VTable(vTable).toString(Self, status, from, bufferLength, buffer);
6249     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6250     end;
6251    
6252     procedure IDecFloat34.fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr);
6253     begin
6254     DecFloat34VTable(vTable).fromBcd(Self, sign, bcd, exp, to_);
6255     end;
6256    
6257     procedure IDecFloat34.fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr);
6258     begin
6259     DecFloat34VTable(vTable).fromString(Self, status, from, to_);
6260     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6261     end;
6262    
6263     procedure IInt128.toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar);
6264     begin
6265     Int128VTable(vTable).toString(Self, status, from, scale, bufferLength, buffer);
6266     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6267     end;
6268    
6269     procedure IInt128.fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr);
6270     begin
6271     Int128VTable(vTable).fromString(Self, status, scale, from, to_);
6272     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6273     end;
6274    
6275     function IReplicatedField.getName(): PAnsiChar;
6276     begin
6277     Result := ReplicatedFieldVTable(vTable).getName(Self);
6278     end;
6279    
6280     function IReplicatedField.getType(): Cardinal;
6281     begin
6282     Result := ReplicatedFieldVTable(vTable).getType(Self);
6283     end;
6284    
6285     function IReplicatedField.getSubType(): Integer;
6286     begin
6287     Result := ReplicatedFieldVTable(vTable).getSubType(Self);
6288     end;
6289    
6290     function IReplicatedField.getScale(): Integer;
6291     begin
6292     Result := ReplicatedFieldVTable(vTable).getScale(Self);
6293     end;
6294    
6295     function IReplicatedField.getLength(): Cardinal;
6296     begin
6297     Result := ReplicatedFieldVTable(vTable).getLength(Self);
6298     end;
6299    
6300     function IReplicatedField.getCharSet(): Cardinal;
6301     begin
6302     Result := ReplicatedFieldVTable(vTable).getCharSet(Self);
6303     end;
6304    
6305     function IReplicatedField.getData(): Pointer;
6306     begin
6307     Result := ReplicatedFieldVTable(vTable).getData(Self);
6308     end;
6309    
6310     function IReplicatedRecord.getCount(): Cardinal;
6311     begin
6312     Result := ReplicatedRecordVTable(vTable).getCount(Self);
6313     end;
6314    
6315     function IReplicatedRecord.getField(index: Cardinal): IReplicatedField;
6316     begin
6317     Result := ReplicatedRecordVTable(vTable).getField(Self, index);
6318     end;
6319    
6320     function IReplicatedRecord.getRawLength(): Cardinal;
6321     begin
6322     Result := ReplicatedRecordVTable(vTable).getRawLength(Self);
6323     end;
6324    
6325     function IReplicatedRecord.getRawData(): BytePtr;
6326     begin
6327     Result := ReplicatedRecordVTable(vTable).getRawData(Self);
6328     end;
6329    
6330     procedure IReplicatedTransaction.prepare(status: IStatus);
6331     begin
6332     ReplicatedTransactionVTable(vTable).prepare(Self, status);
6333     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6334     end;
6335    
6336     procedure IReplicatedTransaction.commit(status: IStatus);
6337     begin
6338     ReplicatedTransactionVTable(vTable).commit(Self, status);
6339     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6340     end;
6341    
6342     procedure IReplicatedTransaction.rollback(status: IStatus);
6343     begin
6344     ReplicatedTransactionVTable(vTable).rollback(Self, status);
6345     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6346     end;
6347    
6348     procedure IReplicatedTransaction.startSavepoint(status: IStatus);
6349     begin
6350     ReplicatedTransactionVTable(vTable).startSavepoint(Self, status);
6351     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6352     end;
6353    
6354     procedure IReplicatedTransaction.releaseSavepoint(status: IStatus);
6355     begin
6356     ReplicatedTransactionVTable(vTable).releaseSavepoint(Self, status);
6357     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6358     end;
6359    
6360     procedure IReplicatedTransaction.rollbackSavepoint(status: IStatus);
6361     begin
6362     ReplicatedTransactionVTable(vTable).rollbackSavepoint(Self, status);
6363     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6364     end;
6365    
6366     procedure IReplicatedTransaction.insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
6367     begin
6368     ReplicatedTransactionVTable(vTable).insertRecord(Self, status, name, record_);
6369     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6370     end;
6371    
6372     procedure IReplicatedTransaction.updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord);
6373     begin
6374     ReplicatedTransactionVTable(vTable).updateRecord(Self, status, name, orgRecord, newRecord);
6375     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6376     end;
6377    
6378     procedure IReplicatedTransaction.deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
6379     begin
6380     ReplicatedTransactionVTable(vTable).deleteRecord(Self, status, name, record_);
6381     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6382     end;
6383    
6384     procedure IReplicatedTransaction.executeSql(status: IStatus; sql: PAnsiChar);
6385     begin
6386     ReplicatedTransactionVTable(vTable).executeSql(Self, status, sql);
6387     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6388     end;
6389    
6390     procedure IReplicatedTransaction.executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar);
6391     begin
6392     ReplicatedTransactionVTable(vTable).executeSqlIntl(Self, status, charset, sql);
6393     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6394     end;
6395    
6396 tony 345 function IReplicatedSession.init(status: IStatus; attachment: IAttachment): Boolean;
6397 tony 315 begin
6398 tony 345 Result := ReplicatedSessionVTable(vTable).init(Self, status, attachment);
6399     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6400 tony 315 end;
6401    
6402     function IReplicatedSession.startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction;
6403     begin
6404     Result := ReplicatedSessionVTable(vTable).startTransaction(Self, status, transaction, number);
6405     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6406     end;
6407    
6408     procedure IReplicatedSession.cleanupTransaction(status: IStatus; number: Int64);
6409     begin
6410     ReplicatedSessionVTable(vTable).cleanupTransaction(Self, status, number);
6411     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6412     end;
6413    
6414     procedure IReplicatedSession.setSequence(status: IStatus; name: PAnsiChar; value: Int64);
6415     begin
6416     ReplicatedSessionVTable(vTable).setSequence(Self, status, name, value);
6417     {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6418     end;
6419    
6420 tony 45 var
6421     IVersionedImpl_vTable: VersionedVTable;
6422    
6423     constructor IVersionedImpl.create;
6424     begin
6425     vTable := IVersionedImpl_vTable;
6426     end;
6427    
6428     procedure IReferenceCountedImpl_addRefDispatcher(this: IReferenceCounted); cdecl;
6429     begin
6430     try
6431     IReferenceCountedImpl(this).addRef();
6432     except
6433     on e: Exception do FbException.catchException(nil, e);
6434     end
6435     end;
6436    
6437     function IReferenceCountedImpl_releaseDispatcher(this: IReferenceCounted): Integer; cdecl;
6438     begin
6439     try
6440     Result := IReferenceCountedImpl(this).release();
6441     except
6442     on e: Exception do FbException.catchException(nil, e);
6443     end
6444     end;
6445    
6446     var
6447     IReferenceCountedImpl_vTable: ReferenceCountedVTable;
6448    
6449     constructor IReferenceCountedImpl.create;
6450     begin
6451     vTable := IReferenceCountedImpl_vTable;
6452     end;
6453    
6454     procedure IDisposableImpl_disposeDispatcher(this: IDisposable); cdecl;
6455     begin
6456     try
6457     IDisposableImpl(this).dispose();
6458     except
6459     on e: Exception do FbException.catchException(nil, e);
6460     end
6461     end;
6462    
6463     var
6464     IDisposableImpl_vTable: DisposableVTable;
6465    
6466     constructor IDisposableImpl.create;
6467     begin
6468     vTable := IDisposableImpl_vTable;
6469     end;
6470    
6471     procedure IStatusImpl_disposeDispatcher(this: IStatus); cdecl;
6472     begin
6473     try
6474     IStatusImpl(this).dispose();
6475     except
6476     on e: Exception do FbException.catchException(nil, e);
6477     end
6478     end;
6479    
6480     procedure IStatusImpl_initDispatcher(this: IStatus); cdecl;
6481     begin
6482     try
6483     IStatusImpl(this).init();
6484     except
6485     on e: Exception do FbException.catchException(nil, e);
6486     end
6487     end;
6488    
6489     function IStatusImpl_getStateDispatcher(this: IStatus): Cardinal; cdecl;
6490     begin
6491     try
6492     Result := IStatusImpl(this).getState();
6493     except
6494     on e: Exception do FbException.catchException(nil, e);
6495     end
6496     end;
6497    
6498     procedure IStatusImpl_setErrors2Dispatcher(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
6499     begin
6500     try
6501     IStatusImpl(this).setErrors2(length, value);
6502     except
6503     on e: Exception do FbException.catchException(nil, e);
6504     end
6505     end;
6506    
6507     procedure IStatusImpl_setWarnings2Dispatcher(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
6508     begin
6509     try
6510     IStatusImpl(this).setWarnings2(length, value);
6511     except
6512     on e: Exception do FbException.catchException(nil, e);
6513     end
6514     end;
6515    
6516     procedure IStatusImpl_setErrorsDispatcher(this: IStatus; value: NativeIntPtr); cdecl;
6517     begin
6518     try
6519     IStatusImpl(this).setErrors(value);
6520     except
6521     on e: Exception do FbException.catchException(nil, e);
6522     end
6523     end;
6524    
6525     procedure IStatusImpl_setWarningsDispatcher(this: IStatus; value: NativeIntPtr); cdecl;
6526     begin
6527     try
6528     IStatusImpl(this).setWarnings(value);
6529     except
6530     on e: Exception do FbException.catchException(nil, e);
6531     end
6532     end;
6533    
6534     function IStatusImpl_getErrorsDispatcher(this: IStatus): NativeIntPtr; cdecl;
6535     begin
6536     try
6537     Result := IStatusImpl(this).getErrors();
6538     except
6539     on e: Exception do FbException.catchException(nil, e);
6540     end
6541     end;
6542    
6543     function IStatusImpl_getWarningsDispatcher(this: IStatus): NativeIntPtr; cdecl;
6544     begin
6545     try
6546     Result := IStatusImpl(this).getWarnings();
6547     except
6548     on e: Exception do FbException.catchException(nil, e);
6549     end
6550     end;
6551    
6552     function IStatusImpl_cloneDispatcher(this: IStatus): IStatus; cdecl;
6553     begin
6554     try
6555     Result := IStatusImpl(this).clone();
6556     except
6557     on e: Exception do FbException.catchException(nil, e);
6558     end
6559     end;
6560    
6561     var
6562     IStatusImpl_vTable: StatusVTable;
6563    
6564     constructor IStatusImpl.create;
6565     begin
6566     vTable := IStatusImpl_vTable;
6567     end;
6568    
6569     function IMasterImpl_getStatusDispatcher(this: IMaster): IStatus; cdecl;
6570     begin
6571     try
6572     Result := IMasterImpl(this).getStatus();
6573     except
6574     on e: Exception do FbException.catchException(nil, e);
6575     end
6576     end;
6577    
6578     function IMasterImpl_getDispatcherDispatcher(this: IMaster): IProvider; cdecl;
6579     begin
6580     try
6581     Result := IMasterImpl(this).getDispatcher();
6582     except
6583     on e: Exception do FbException.catchException(nil, e);
6584     end
6585     end;
6586    
6587     function IMasterImpl_getPluginManagerDispatcher(this: IMaster): IPluginManager; cdecl;
6588     begin
6589     try
6590     Result := IMasterImpl(this).getPluginManager();
6591     except
6592     on e: Exception do FbException.catchException(nil, e);
6593     end
6594     end;
6595    
6596     function IMasterImpl_getTimerControlDispatcher(this: IMaster): ITimerControl; cdecl;
6597     begin
6598     try
6599     Result := IMasterImpl(this).getTimerControl();
6600     except
6601     on e: Exception do FbException.catchException(nil, e);
6602     end
6603     end;
6604    
6605     function IMasterImpl_getDtcDispatcher(this: IMaster): IDtc; cdecl;
6606     begin
6607     try
6608     Result := IMasterImpl(this).getDtc();
6609     except
6610     on e: Exception do FbException.catchException(nil, e);
6611     end
6612     end;
6613    
6614     function IMasterImpl_registerAttachmentDispatcher(this: IMaster; provider: IProvider; attachment: IAttachment): IAttachment; cdecl;
6615     begin
6616     try
6617     Result := IMasterImpl(this).registerAttachment(provider, attachment);
6618     except
6619     on e: Exception do FbException.catchException(nil, e);
6620     end
6621     end;
6622    
6623     function IMasterImpl_registerTransactionDispatcher(this: IMaster; attachment: IAttachment; transaction: ITransaction): ITransaction; cdecl;
6624     begin
6625     try
6626     Result := IMasterImpl(this).registerTransaction(attachment, transaction);
6627     except
6628     on e: Exception do FbException.catchException(nil, e);
6629     end
6630     end;
6631    
6632     function IMasterImpl_getMetadataBuilderDispatcher(this: IMaster; status: IStatus; fieldCount: Cardinal): IMetadataBuilder; cdecl;
6633     begin
6634     try
6635     Result := IMasterImpl(this).getMetadataBuilder(status, fieldCount);
6636     except
6637     on e: Exception do FbException.catchException(status, e);
6638     end
6639     end;
6640    
6641     function IMasterImpl_serverModeDispatcher(this: IMaster; mode: Integer): Integer; cdecl;
6642     begin
6643     try
6644     Result := IMasterImpl(this).serverMode(mode);
6645     except
6646     on e: Exception do FbException.catchException(nil, e);
6647     end
6648     end;
6649    
6650     function IMasterImpl_getUtilInterfaceDispatcher(this: IMaster): IUtil; cdecl;
6651     begin
6652     try
6653     Result := IMasterImpl(this).getUtilInterface();
6654     except
6655     on e: Exception do FbException.catchException(nil, e);
6656     end
6657     end;
6658    
6659     function IMasterImpl_getConfigManagerDispatcher(this: IMaster): IConfigManager; cdecl;
6660     begin
6661     try
6662     Result := IMasterImpl(this).getConfigManager();
6663     except
6664     on e: Exception do FbException.catchException(nil, e);
6665     end
6666     end;
6667    
6668     function IMasterImpl_getProcessExitingDispatcher(this: IMaster): Boolean; cdecl;
6669     begin
6670     try
6671     Result := IMasterImpl(this).getProcessExiting();
6672     except
6673     on e: Exception do FbException.catchException(nil, e);
6674     end
6675     end;
6676    
6677     var
6678     IMasterImpl_vTable: MasterVTable;
6679    
6680     constructor IMasterImpl.create;
6681     begin
6682     vTable := IMasterImpl_vTable;
6683     end;
6684    
6685     procedure IPluginBaseImpl_addRefDispatcher(this: IPluginBase); cdecl;
6686     begin
6687     try
6688     IPluginBaseImpl(this).addRef();
6689     except
6690     on e: Exception do FbException.catchException(nil, e);
6691     end
6692     end;
6693    
6694     function IPluginBaseImpl_releaseDispatcher(this: IPluginBase): Integer; cdecl;
6695     begin
6696     try
6697     Result := IPluginBaseImpl(this).release();
6698     except
6699     on e: Exception do FbException.catchException(nil, e);
6700     end
6701     end;
6702    
6703     procedure IPluginBaseImpl_setOwnerDispatcher(this: IPluginBase; r: IReferenceCounted); cdecl;
6704     begin
6705     try
6706     IPluginBaseImpl(this).setOwner(r);
6707     except
6708     on e: Exception do FbException.catchException(nil, e);
6709     end
6710     end;
6711    
6712     function IPluginBaseImpl_getOwnerDispatcher(this: IPluginBase): IReferenceCounted; cdecl;
6713     begin
6714     try
6715     Result := IPluginBaseImpl(this).getOwner();
6716     except
6717     on e: Exception do FbException.catchException(nil, e);
6718     end
6719     end;
6720    
6721     var
6722     IPluginBaseImpl_vTable: PluginBaseVTable;
6723    
6724     constructor IPluginBaseImpl.create;
6725     begin
6726     vTable := IPluginBaseImpl_vTable;
6727     end;
6728    
6729     procedure IPluginSetImpl_addRefDispatcher(this: IPluginSet); cdecl;
6730     begin
6731     try
6732     IPluginSetImpl(this).addRef();
6733     except
6734     on e: Exception do FbException.catchException(nil, e);
6735     end
6736     end;
6737    
6738     function IPluginSetImpl_releaseDispatcher(this: IPluginSet): Integer; cdecl;
6739     begin
6740     try
6741     Result := IPluginSetImpl(this).release();
6742     except
6743     on e: Exception do FbException.catchException(nil, e);
6744     end
6745     end;
6746    
6747     function IPluginSetImpl_getNameDispatcher(this: IPluginSet): PAnsiChar; cdecl;
6748     begin
6749     try
6750     Result := IPluginSetImpl(this).getName();
6751     except
6752     on e: Exception do FbException.catchException(nil, e);
6753     end
6754     end;
6755    
6756     function IPluginSetImpl_getModuleNameDispatcher(this: IPluginSet): PAnsiChar; cdecl;
6757     begin
6758     try
6759     Result := IPluginSetImpl(this).getModuleName();
6760     except
6761     on e: Exception do FbException.catchException(nil, e);
6762     end
6763     end;
6764    
6765     function IPluginSetImpl_getPluginDispatcher(this: IPluginSet; status: IStatus): IPluginBase; cdecl;
6766     begin
6767     try
6768     Result := IPluginSetImpl(this).getPlugin(status);
6769     except
6770     on e: Exception do FbException.catchException(status, e);
6771     end
6772     end;
6773    
6774     procedure IPluginSetImpl_nextDispatcher(this: IPluginSet; status: IStatus); cdecl;
6775     begin
6776     try
6777     IPluginSetImpl(this).next(status);
6778     except
6779     on e: Exception do FbException.catchException(status, e);
6780     end
6781     end;
6782    
6783     procedure IPluginSetImpl_set_Dispatcher(this: IPluginSet; status: IStatus; s: PAnsiChar); cdecl;
6784     begin
6785     try
6786     IPluginSetImpl(this).set_(status, s);
6787     except
6788     on e: Exception do FbException.catchException(status, e);
6789     end
6790     end;
6791    
6792     var
6793     IPluginSetImpl_vTable: PluginSetVTable;
6794    
6795     constructor IPluginSetImpl.create;
6796     begin
6797     vTable := IPluginSetImpl_vTable;
6798     end;
6799    
6800     procedure IConfigEntryImpl_addRefDispatcher(this: IConfigEntry); cdecl;
6801     begin
6802     try
6803     IConfigEntryImpl(this).addRef();
6804     except
6805     on e: Exception do FbException.catchException(nil, e);
6806     end
6807     end;
6808    
6809     function IConfigEntryImpl_releaseDispatcher(this: IConfigEntry): Integer; cdecl;
6810     begin
6811     try
6812     Result := IConfigEntryImpl(this).release();
6813     except
6814     on e: Exception do FbException.catchException(nil, e);
6815     end
6816     end;
6817    
6818     function IConfigEntryImpl_getNameDispatcher(this: IConfigEntry): PAnsiChar; cdecl;
6819     begin
6820     try
6821     Result := IConfigEntryImpl(this).getName();
6822     except
6823     on e: Exception do FbException.catchException(nil, e);
6824     end
6825     end;
6826    
6827     function IConfigEntryImpl_getValueDispatcher(this: IConfigEntry): PAnsiChar; cdecl;
6828     begin
6829     try
6830     Result := IConfigEntryImpl(this).getValue();
6831     except
6832     on e: Exception do FbException.catchException(nil, e);
6833     end
6834     end;
6835    
6836     function IConfigEntryImpl_getIntValueDispatcher(this: IConfigEntry): Int64; cdecl;
6837     begin
6838     try
6839     Result := IConfigEntryImpl(this).getIntValue();
6840     except
6841     on e: Exception do FbException.catchException(nil, e);
6842     end
6843     end;
6844    
6845     function IConfigEntryImpl_getBoolValueDispatcher(this: IConfigEntry): Boolean; cdecl;
6846     begin
6847     try
6848     Result := IConfigEntryImpl(this).getBoolValue();
6849     except
6850     on e: Exception do FbException.catchException(nil, e);
6851     end
6852     end;
6853    
6854     function IConfigEntryImpl_getSubConfigDispatcher(this: IConfigEntry; status: IStatus): IConfig; cdecl;
6855     begin
6856     try
6857     Result := IConfigEntryImpl(this).getSubConfig(status);
6858     except
6859     on e: Exception do FbException.catchException(status, e);
6860     end
6861     end;
6862    
6863     var
6864     IConfigEntryImpl_vTable: ConfigEntryVTable;
6865    
6866     constructor IConfigEntryImpl.create;
6867     begin
6868     vTable := IConfigEntryImpl_vTable;
6869     end;
6870    
6871     procedure IConfigImpl_addRefDispatcher(this: IConfig); cdecl;
6872     begin
6873     try
6874     IConfigImpl(this).addRef();
6875     except
6876     on e: Exception do FbException.catchException(nil, e);
6877     end
6878     end;
6879    
6880     function IConfigImpl_releaseDispatcher(this: IConfig): Integer; cdecl;
6881     begin
6882     try
6883     Result := IConfigImpl(this).release();
6884     except
6885     on e: Exception do FbException.catchException(nil, e);
6886     end
6887     end;
6888    
6889     function IConfigImpl_findDispatcher(this: IConfig; status: IStatus; name: PAnsiChar): IConfigEntry; cdecl;
6890     begin
6891     try
6892     Result := IConfigImpl(this).find(status, name);
6893     except
6894     on e: Exception do FbException.catchException(status, e);
6895     end
6896     end;
6897    
6898     function IConfigImpl_findValueDispatcher(this: IConfig; status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; cdecl;
6899     begin
6900     try
6901     Result := IConfigImpl(this).findValue(status, name, value);
6902     except
6903     on e: Exception do FbException.catchException(status, e);
6904     end
6905     end;
6906    
6907     function IConfigImpl_findPosDispatcher(this: IConfig; status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; cdecl;
6908     begin
6909     try
6910     Result := IConfigImpl(this).findPos(status, name, pos);
6911     except
6912     on e: Exception do FbException.catchException(status, e);
6913     end
6914     end;
6915    
6916     var
6917     IConfigImpl_vTable: ConfigVTable;
6918    
6919     constructor IConfigImpl.create;
6920     begin
6921     vTable := IConfigImpl_vTable;
6922     end;
6923    
6924     procedure IFirebirdConfImpl_addRefDispatcher(this: IFirebirdConf); cdecl;
6925     begin
6926     try
6927     IFirebirdConfImpl(this).addRef();
6928     except
6929     on e: Exception do FbException.catchException(nil, e);
6930     end
6931     end;
6932    
6933     function IFirebirdConfImpl_releaseDispatcher(this: IFirebirdConf): Integer; cdecl;
6934     begin
6935     try
6936     Result := IFirebirdConfImpl(this).release();
6937     except
6938     on e: Exception do FbException.catchException(nil, e);
6939     end
6940     end;
6941    
6942     function IFirebirdConfImpl_getKeyDispatcher(this: IFirebirdConf; name: PAnsiChar): Cardinal; cdecl;
6943     begin
6944     try
6945     Result := IFirebirdConfImpl(this).getKey(name);
6946     except
6947     on e: Exception do FbException.catchException(nil, e);
6948     end
6949     end;
6950    
6951     function IFirebirdConfImpl_asIntegerDispatcher(this: IFirebirdConf; key: Cardinal): Int64; cdecl;
6952     begin
6953     try
6954     Result := IFirebirdConfImpl(this).asInteger(key);
6955     except
6956     on e: Exception do FbException.catchException(nil, e);
6957     end
6958     end;
6959    
6960     function IFirebirdConfImpl_asStringDispatcher(this: IFirebirdConf; key: Cardinal): PAnsiChar; cdecl;
6961     begin
6962     try
6963     Result := IFirebirdConfImpl(this).asString(key);
6964     except
6965     on e: Exception do FbException.catchException(nil, e);
6966     end
6967     end;
6968    
6969     function IFirebirdConfImpl_asBooleanDispatcher(this: IFirebirdConf; key: Cardinal): Boolean; cdecl;
6970     begin
6971     try
6972     Result := IFirebirdConfImpl(this).asBoolean(key);
6973     except
6974     on e: Exception do FbException.catchException(nil, e);
6975     end
6976     end;
6977    
6978 tony 315 function IFirebirdConfImpl_getVersionDispatcher(this: IFirebirdConf; status: IStatus): Cardinal; cdecl;
6979     begin
6980     try
6981     Result := IFirebirdConfImpl(this).getVersion(status);
6982     except
6983     on e: Exception do FbException.catchException(status, e);
6984     end
6985     end;
6986    
6987 tony 45 var
6988     IFirebirdConfImpl_vTable: FirebirdConfVTable;
6989    
6990     constructor IFirebirdConfImpl.create;
6991     begin
6992     vTable := IFirebirdConfImpl_vTable;
6993     end;
6994    
6995     procedure IPluginConfigImpl_addRefDispatcher(this: IPluginConfig); cdecl;
6996     begin
6997     try
6998     IPluginConfigImpl(this).addRef();
6999     except
7000     on e: Exception do FbException.catchException(nil, e);
7001     end
7002     end;
7003    
7004     function IPluginConfigImpl_releaseDispatcher(this: IPluginConfig): Integer; cdecl;
7005     begin
7006     try
7007     Result := IPluginConfigImpl(this).release();
7008     except
7009     on e: Exception do FbException.catchException(nil, e);
7010     end
7011     end;
7012    
7013     function IPluginConfigImpl_getConfigFileNameDispatcher(this: IPluginConfig): PAnsiChar; cdecl;
7014     begin
7015     try
7016     Result := IPluginConfigImpl(this).getConfigFileName();
7017     except
7018     on e: Exception do FbException.catchException(nil, e);
7019     end
7020     end;
7021    
7022     function IPluginConfigImpl_getDefaultConfigDispatcher(this: IPluginConfig; status: IStatus): IConfig; cdecl;
7023     begin
7024     try
7025     Result := IPluginConfigImpl(this).getDefaultConfig(status);
7026     except
7027     on e: Exception do FbException.catchException(status, e);
7028     end
7029     end;
7030    
7031     function IPluginConfigImpl_getFirebirdConfDispatcher(this: IPluginConfig; status: IStatus): IFirebirdConf; cdecl;
7032     begin
7033     try
7034     Result := IPluginConfigImpl(this).getFirebirdConf(status);
7035     except
7036     on e: Exception do FbException.catchException(status, e);
7037     end
7038     end;
7039    
7040     procedure IPluginConfigImpl_setReleaseDelayDispatcher(this: IPluginConfig; status: IStatus; microSeconds: QWord); cdecl;
7041     begin
7042     try
7043     IPluginConfigImpl(this).setReleaseDelay(status, microSeconds);
7044     except
7045     on e: Exception do FbException.catchException(status, e);
7046     end
7047     end;
7048    
7049     var
7050     IPluginConfigImpl_vTable: PluginConfigVTable;
7051    
7052     constructor IPluginConfigImpl.create;
7053     begin
7054     vTable := IPluginConfigImpl_vTable;
7055     end;
7056    
7057     function IPluginFactoryImpl_createPluginDispatcher(this: IPluginFactory; status: IStatus; factoryParameter: IPluginConfig): IPluginBase; cdecl;
7058     begin
7059     try
7060     Result := IPluginFactoryImpl(this).createPlugin(status, factoryParameter);
7061     except
7062     on e: Exception do FbException.catchException(status, e);
7063     end
7064     end;
7065    
7066     var
7067     IPluginFactoryImpl_vTable: PluginFactoryVTable;
7068    
7069     constructor IPluginFactoryImpl.create;
7070     begin
7071     vTable := IPluginFactoryImpl_vTable;
7072     end;
7073    
7074     procedure IPluginModuleImpl_doCleanDispatcher(this: IPluginModule); cdecl;
7075     begin
7076     try
7077     IPluginModuleImpl(this).doClean();
7078     except
7079     on e: Exception do FbException.catchException(nil, e);
7080     end
7081     end;
7082    
7083 tony 315 procedure IPluginModuleImpl_threadDetachDispatcher(this: IPluginModule); cdecl;
7084     begin
7085     try
7086     IPluginModuleImpl(this).threadDetach();
7087     except
7088     on e: Exception do FbException.catchException(nil, e);
7089     end
7090     end;
7091    
7092 tony 45 var
7093     IPluginModuleImpl_vTable: PluginModuleVTable;
7094    
7095     constructor IPluginModuleImpl.create;
7096     begin
7097     vTable := IPluginModuleImpl_vTable;
7098     end;
7099    
7100     procedure IPluginManagerImpl_registerPluginFactoryDispatcher(this: IPluginManager; pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); cdecl;
7101     begin
7102     try
7103     IPluginManagerImpl(this).registerPluginFactory(pluginType, defaultName, factory);
7104     except
7105     on e: Exception do FbException.catchException(nil, e);
7106     end
7107     end;
7108    
7109     procedure IPluginManagerImpl_registerModuleDispatcher(this: IPluginManager; cleanup: IPluginModule); cdecl;
7110     begin
7111     try
7112     IPluginManagerImpl(this).registerModule(cleanup);
7113     except
7114     on e: Exception do FbException.catchException(nil, e);
7115     end
7116     end;
7117    
7118     procedure IPluginManagerImpl_unregisterModuleDispatcher(this: IPluginManager; cleanup: IPluginModule); cdecl;
7119     begin
7120     try
7121     IPluginManagerImpl(this).unregisterModule(cleanup);
7122     except
7123     on e: Exception do FbException.catchException(nil, e);
7124     end
7125     end;
7126    
7127     function IPluginManagerImpl_getPluginsDispatcher(this: IPluginManager; status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; cdecl;
7128     begin
7129     try
7130     Result := IPluginManagerImpl(this).getPlugins(status, pluginType, namesList, firebirdConf);
7131     except
7132     on e: Exception do FbException.catchException(status, e);
7133     end
7134     end;
7135    
7136     function IPluginManagerImpl_getConfigDispatcher(this: IPluginManager; status: IStatus; filename: PAnsiChar): IConfig; cdecl;
7137     begin
7138     try
7139     Result := IPluginManagerImpl(this).getConfig(status, filename);
7140     except
7141     on e: Exception do FbException.catchException(status, e);
7142     end
7143     end;
7144    
7145     procedure IPluginManagerImpl_releasePluginDispatcher(this: IPluginManager; plugin: IPluginBase); cdecl;
7146     begin
7147     try
7148     IPluginManagerImpl(this).releasePlugin(plugin);
7149     except
7150     on e: Exception do FbException.catchException(nil, e);
7151     end
7152     end;
7153    
7154     var
7155     IPluginManagerImpl_vTable: PluginManagerVTable;
7156    
7157     constructor IPluginManagerImpl.create;
7158     begin
7159     vTable := IPluginManagerImpl_vTable;
7160     end;
7161    
7162     procedure ICryptKeyImpl_setSymmetricDispatcher(this: ICryptKey; status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); cdecl;
7163     begin
7164     try
7165     ICryptKeyImpl(this).setSymmetric(status, type_, keyLength, key);
7166     except
7167     on e: Exception do FbException.catchException(status, e);
7168     end
7169     end;
7170    
7171     procedure ICryptKeyImpl_setAsymmetricDispatcher(this: ICryptKey; status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); cdecl;
7172     begin
7173     try
7174     ICryptKeyImpl(this).setAsymmetric(status, type_, encryptKeyLength, encryptKey, decryptKeyLength, decryptKey);
7175     except
7176     on e: Exception do FbException.catchException(status, e);
7177     end
7178     end;
7179    
7180     function ICryptKeyImpl_getEncryptKeyDispatcher(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
7181     begin
7182     try
7183     Result := ICryptKeyImpl(this).getEncryptKey(length);
7184     except
7185     on e: Exception do FbException.catchException(nil, e);
7186     end
7187     end;
7188    
7189     function ICryptKeyImpl_getDecryptKeyDispatcher(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
7190     begin
7191     try
7192     Result := ICryptKeyImpl(this).getDecryptKey(length);
7193     except
7194     on e: Exception do FbException.catchException(nil, e);
7195     end
7196     end;
7197    
7198     var
7199     ICryptKeyImpl_vTable: CryptKeyVTable;
7200    
7201     constructor ICryptKeyImpl.create;
7202     begin
7203     vTable := ICryptKeyImpl_vTable;
7204     end;
7205    
7206     function IConfigManagerImpl_getDirectoryDispatcher(this: IConfigManager; code: Cardinal): PAnsiChar; cdecl;
7207     begin
7208     try
7209     Result := IConfigManagerImpl(this).getDirectory(code);
7210     except
7211     on e: Exception do FbException.catchException(nil, e);
7212     end
7213     end;
7214    
7215     function IConfigManagerImpl_getFirebirdConfDispatcher(this: IConfigManager): IFirebirdConf; cdecl;
7216     begin
7217     try
7218     Result := IConfigManagerImpl(this).getFirebirdConf();
7219     except
7220     on e: Exception do FbException.catchException(nil, e);
7221     end
7222     end;
7223    
7224     function IConfigManagerImpl_getDatabaseConfDispatcher(this: IConfigManager; dbName: PAnsiChar): IFirebirdConf; cdecl;
7225     begin
7226     try
7227     Result := IConfigManagerImpl(this).getDatabaseConf(dbName);
7228     except
7229     on e: Exception do FbException.catchException(nil, e);
7230     end
7231     end;
7232    
7233     function IConfigManagerImpl_getPluginConfigDispatcher(this: IConfigManager; configuredPlugin: PAnsiChar): IConfig; cdecl;
7234     begin
7235     try
7236     Result := IConfigManagerImpl(this).getPluginConfig(configuredPlugin);
7237     except
7238     on e: Exception do FbException.catchException(nil, e);
7239     end
7240     end;
7241    
7242     function IConfigManagerImpl_getInstallDirectoryDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7243     begin
7244     try
7245     Result := IConfigManagerImpl(this).getInstallDirectory();
7246     except
7247     on e: Exception do FbException.catchException(nil, e);
7248     end
7249     end;
7250    
7251     function IConfigManagerImpl_getRootDirectoryDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7252     begin
7253     try
7254     Result := IConfigManagerImpl(this).getRootDirectory();
7255     except
7256     on e: Exception do FbException.catchException(nil, e);
7257     end
7258     end;
7259    
7260 tony 315 function IConfigManagerImpl_getDefaultSecurityDbDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7261     begin
7262     try
7263     Result := IConfigManagerImpl(this).getDefaultSecurityDb();
7264     except
7265     on e: Exception do FbException.catchException(nil, e);
7266     end
7267     end;
7268    
7269 tony 45 var
7270     IConfigManagerImpl_vTable: ConfigManagerVTable;
7271    
7272     constructor IConfigManagerImpl.create;
7273     begin
7274     vTable := IConfigManagerImpl_vTable;
7275     end;
7276    
7277     procedure IEventCallbackImpl_addRefDispatcher(this: IEventCallback); cdecl;
7278     begin
7279     try
7280     IEventCallbackImpl(this).addRef();
7281     except
7282     on e: Exception do FbException.catchException(nil, e);
7283     end
7284     end;
7285    
7286     function IEventCallbackImpl_releaseDispatcher(this: IEventCallback): Integer; cdecl;
7287     begin
7288     try
7289     Result := IEventCallbackImpl(this).release();
7290     except
7291     on e: Exception do FbException.catchException(nil, e);
7292     end
7293     end;
7294    
7295     procedure IEventCallbackImpl_eventCallbackFunctionDispatcher(this: IEventCallback; length: Cardinal; events: BytePtr); cdecl;
7296     begin
7297     try
7298     IEventCallbackImpl(this).eventCallbackFunction(length, events);
7299     except
7300     on e: Exception do FbException.catchException(nil, e);
7301     end
7302     end;
7303    
7304     var
7305     IEventCallbackImpl_vTable: EventCallbackVTable;
7306    
7307     constructor IEventCallbackImpl.create;
7308     begin
7309     vTable := IEventCallbackImpl_vTable;
7310     end;
7311    
7312     procedure IBlobImpl_addRefDispatcher(this: IBlob); cdecl;
7313     begin
7314     try
7315     IBlobImpl(this).addRef();
7316     except
7317     on e: Exception do FbException.catchException(nil, e);
7318     end
7319     end;
7320    
7321     function IBlobImpl_releaseDispatcher(this: IBlob): Integer; cdecl;
7322     begin
7323     try
7324     Result := IBlobImpl(this).release();
7325     except
7326     on e: Exception do FbException.catchException(nil, e);
7327     end
7328     end;
7329    
7330     procedure IBlobImpl_getInfoDispatcher(this: IBlob; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
7331     begin
7332     try
7333     IBlobImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
7334     except
7335     on e: Exception do FbException.catchException(status, e);
7336     end
7337     end;
7338    
7339     function IBlobImpl_getSegmentDispatcher(this: IBlob; status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; cdecl;
7340     begin
7341     try
7342     Result := IBlobImpl(this).getSegment(status, bufferLength, buffer, segmentLength);
7343     except
7344     on e: Exception do FbException.catchException(status, e);
7345     end
7346     end;
7347    
7348     procedure IBlobImpl_putSegmentDispatcher(this: IBlob; status: IStatus; length: Cardinal; buffer: Pointer); cdecl;
7349     begin
7350     try
7351     IBlobImpl(this).putSegment(status, length, buffer);
7352     except
7353     on e: Exception do FbException.catchException(status, e);
7354     end
7355     end;
7356    
7357     procedure IBlobImpl_cancelDispatcher(this: IBlob; status: IStatus); cdecl;
7358     begin
7359     try
7360     IBlobImpl(this).cancel(status);
7361     except
7362     on e: Exception do FbException.catchException(status, e);
7363     end
7364     end;
7365    
7366     procedure IBlobImpl_closeDispatcher(this: IBlob; status: IStatus); cdecl;
7367     begin
7368     try
7369     IBlobImpl(this).close(status);
7370     except
7371     on e: Exception do FbException.catchException(status, e);
7372     end
7373     end;
7374    
7375     function IBlobImpl_seekDispatcher(this: IBlob; status: IStatus; mode: Integer; offset: Integer): Integer; cdecl;
7376     begin
7377     try
7378     Result := IBlobImpl(this).seek(status, mode, offset);
7379     except
7380     on e: Exception do FbException.catchException(status, e);
7381     end
7382     end;
7383    
7384     var
7385     IBlobImpl_vTable: BlobVTable;
7386    
7387     constructor IBlobImpl.create;
7388     begin
7389     vTable := IBlobImpl_vTable;
7390     end;
7391    
7392     procedure ITransactionImpl_addRefDispatcher(this: ITransaction); cdecl;
7393     begin
7394     try
7395     ITransactionImpl(this).addRef();
7396     except
7397     on e: Exception do FbException.catchException(nil, e);
7398     end
7399     end;
7400    
7401     function ITransactionImpl_releaseDispatcher(this: ITransaction): Integer; cdecl;
7402     begin
7403     try
7404     Result := ITransactionImpl(this).release();
7405     except
7406     on e: Exception do FbException.catchException(nil, e);
7407     end
7408     end;
7409    
7410     procedure ITransactionImpl_getInfoDispatcher(this: ITransaction; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
7411     begin
7412     try
7413     ITransactionImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
7414     except
7415     on e: Exception do FbException.catchException(status, e);
7416     end
7417     end;
7418    
7419     procedure ITransactionImpl_prepareDispatcher(this: ITransaction; status: IStatus; msgLength: Cardinal; message: BytePtr); cdecl;
7420     begin
7421     try
7422     ITransactionImpl(this).prepare(status, msgLength, message);
7423     except
7424     on e: Exception do FbException.catchException(status, e);
7425     end
7426     end;
7427    
7428     procedure ITransactionImpl_commitDispatcher(this: ITransaction; status: IStatus); cdecl;
7429     begin
7430     try
7431     ITransactionImpl(this).commit(status);
7432     except
7433     on e: Exception do FbException.catchException(status, e);
7434     end
7435     end;
7436    
7437     procedure ITransactionImpl_commitRetainingDispatcher(this: ITransaction; status: IStatus); cdecl;
7438     begin
7439     try
7440     ITransactionImpl(this).commitRetaining(status);
7441     except
7442     on e: Exception do FbException.catchException(status, e);
7443     end
7444     end;
7445    
7446     procedure ITransactionImpl_rollbackDispatcher(this: ITransaction; status: IStatus); cdecl;
7447     begin
7448     try
7449     ITransactionImpl(this).rollback(status);
7450     except
7451     on e: Exception do FbException.catchException(status, e);
7452     end
7453     end;
7454    
7455     procedure ITransactionImpl_rollbackRetainingDispatcher(this: ITransaction; status: IStatus); cdecl;
7456     begin
7457     try
7458     ITransactionImpl(this).rollbackRetaining(status);
7459     except
7460     on e: Exception do FbException.catchException(status, e);
7461     end
7462     end;
7463    
7464     procedure ITransactionImpl_disconnectDispatcher(this: ITransaction; status: IStatus); cdecl;
7465     begin
7466     try
7467     ITransactionImpl(this).disconnect(status);
7468     except
7469     on e: Exception do FbException.catchException(status, e);
7470     end
7471     end;
7472    
7473     function ITransactionImpl_joinDispatcher(this: ITransaction; status: IStatus; transaction: ITransaction): ITransaction; cdecl;
7474     begin
7475     try
7476     Result := ITransactionImpl(this).join(status, transaction);
7477     except
7478     on e: Exception do FbException.catchException(status, e);
7479     end
7480     end;
7481    
7482     function ITransactionImpl_validateDispatcher(this: ITransaction; status: IStatus; attachment: IAttachment): ITransaction; cdecl;
7483     begin
7484     try
7485     Result := ITransactionImpl(this).validate(status, attachment);
7486     except
7487     on e: Exception do FbException.catchException(status, e);
7488     end
7489     end;
7490    
7491     function ITransactionImpl_enterDtcDispatcher(this: ITransaction; status: IStatus): ITransaction; cdecl;
7492     begin
7493     try
7494     Result := ITransactionImpl(this).enterDtc(status);
7495     except
7496     on e: Exception do FbException.catchException(status, e);
7497     end
7498     end;
7499    
7500     var
7501     ITransactionImpl_vTable: TransactionVTable;
7502    
7503     constructor ITransactionImpl.create;
7504     begin
7505     vTable := ITransactionImpl_vTable;
7506     end;
7507    
7508     procedure IMessageMetadataImpl_addRefDispatcher(this: IMessageMetadata); cdecl;
7509     begin
7510     try
7511     IMessageMetadataImpl(this).addRef();
7512     except
7513     on e: Exception do FbException.catchException(nil, e);
7514     end
7515     end;
7516    
7517     function IMessageMetadataImpl_releaseDispatcher(this: IMessageMetadata): Integer; cdecl;
7518     begin
7519     try
7520     Result := IMessageMetadataImpl(this).release();
7521     except
7522     on e: Exception do FbException.catchException(nil, e);
7523     end
7524     end;
7525    
7526     function IMessageMetadataImpl_getCountDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7527     begin
7528     try
7529     Result := IMessageMetadataImpl(this).getCount(status);
7530     except
7531     on e: Exception do FbException.catchException(status, e);
7532     end
7533     end;
7534    
7535     function IMessageMetadataImpl_getFieldDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7536     begin
7537     try
7538     Result := IMessageMetadataImpl(this).getField(status, index);
7539     except
7540     on e: Exception do FbException.catchException(status, e);
7541     end
7542     end;
7543    
7544     function IMessageMetadataImpl_getRelationDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7545     begin
7546     try
7547     Result := IMessageMetadataImpl(this).getRelation(status, index);
7548     except
7549     on e: Exception do FbException.catchException(status, e);
7550     end
7551     end;
7552    
7553     function IMessageMetadataImpl_getOwnerDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7554     begin
7555     try
7556     Result := IMessageMetadataImpl(this).getOwner(status, index);
7557     except
7558     on e: Exception do FbException.catchException(status, e);
7559     end
7560     end;
7561    
7562     function IMessageMetadataImpl_getAliasDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7563     begin
7564     try
7565     Result := IMessageMetadataImpl(this).getAlias(status, index);
7566     except
7567     on e: Exception do FbException.catchException(status, e);
7568     end
7569     end;
7570    
7571     function IMessageMetadataImpl_getTypeDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7572     begin
7573     try
7574     Result := IMessageMetadataImpl(this).getType(status, index);
7575     except
7576     on e: Exception do FbException.catchException(status, e);
7577     end
7578     end;
7579    
7580     function IMessageMetadataImpl_isNullableDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Boolean; cdecl;
7581     begin
7582     try
7583     Result := IMessageMetadataImpl(this).isNullable(status, index);
7584     except
7585     on e: Exception do FbException.catchException(status, e);
7586     end
7587     end;
7588    
7589     function IMessageMetadataImpl_getSubTypeDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
7590     begin
7591     try
7592     Result := IMessageMetadataImpl(this).getSubType(status, index);
7593     except
7594     on e: Exception do FbException.catchException(status, e);
7595     end
7596     end;
7597    
7598     function IMessageMetadataImpl_getLengthDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7599     begin
7600     try
7601     Result := IMessageMetadataImpl(this).getLength(status, index);
7602     except
7603     on e: Exception do FbException.catchException(status, e);
7604     end
7605     end;
7606    
7607     function IMessageMetadataImpl_getScaleDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
7608     begin
7609     try
7610     Result := IMessageMetadataImpl(this).getScale(status, index);
7611     except
7612     on e: Exception do FbException.catchException(status, e);
7613     end
7614     end;
7615    
7616     function IMessageMetadataImpl_getCharSetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7617     begin
7618     try
7619     Result := IMessageMetadataImpl(this).getCharSet(status, index);
7620     except
7621     on e: Exception do FbException.catchException(status, e);
7622     end
7623     end;
7624    
7625     function IMessageMetadataImpl_getOffsetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7626     begin
7627     try
7628     Result := IMessageMetadataImpl(this).getOffset(status, index);
7629     except
7630     on e: Exception do FbException.catchException(status, e);
7631     end
7632     end;
7633    
7634     function IMessageMetadataImpl_getNullOffsetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7635     begin
7636     try
7637     Result := IMessageMetadataImpl(this).getNullOffset(status, index);
7638     except
7639     on e: Exception do FbException.catchException(status, e);
7640     end
7641     end;
7642    
7643     function IMessageMetadataImpl_getBuilderDispatcher(this: IMessageMetadata; status: IStatus): IMetadataBuilder; cdecl;
7644     begin
7645     try
7646     Result := IMessageMetadataImpl(this).getBuilder(status);
7647     except
7648     on e: Exception do FbException.catchException(status, e);
7649     end
7650     end;
7651    
7652     function IMessageMetadataImpl_getMessageLengthDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7653     begin
7654     try
7655     Result := IMessageMetadataImpl(this).getMessageLength(status);
7656     except
7657     on e: Exception do FbException.catchException(status, e);
7658     end
7659     end;
7660    
7661 tony 315 function IMessageMetadataImpl_getAlignmentDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7662     begin
7663     try
7664     Result := IMessageMetadataImpl(this).getAlignment(status);
7665     except
7666     on e: Exception do FbException.catchException(status, e);
7667     end
7668     end;
7669    
7670     function IMessageMetadataImpl_getAlignedLengthDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7671     begin
7672     try
7673     Result := IMessageMetadataImpl(this).getAlignedLength(status);
7674     except
7675     on e: Exception do FbException.catchException(status, e);
7676     end
7677     end;
7678    
7679 tony 45 var
7680     IMessageMetadataImpl_vTable: MessageMetadataVTable;
7681    
7682     constructor IMessageMetadataImpl.create;
7683     begin
7684     vTable := IMessageMetadataImpl_vTable;
7685     end;
7686    
7687     procedure IMetadataBuilderImpl_addRefDispatcher(this: IMetadataBuilder); cdecl;
7688     begin
7689     try
7690     IMetadataBuilderImpl(this).addRef();
7691     except
7692     on e: Exception do FbException.catchException(nil, e);
7693     end
7694     end;
7695    
7696     function IMetadataBuilderImpl_releaseDispatcher(this: IMetadataBuilder): Integer; cdecl;
7697     begin
7698     try
7699     Result := IMetadataBuilderImpl(this).release();
7700     except
7701     on e: Exception do FbException.catchException(nil, e);
7702     end
7703     end;
7704    
7705     procedure IMetadataBuilderImpl_setTypeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; type_: Cardinal); cdecl;
7706     begin
7707     try
7708     IMetadataBuilderImpl(this).setType(status, index, type_);
7709     except
7710     on e: Exception do FbException.catchException(status, e);
7711     end
7712     end;
7713    
7714     procedure IMetadataBuilderImpl_setSubTypeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; subType: Integer); cdecl;
7715     begin
7716     try
7717     IMetadataBuilderImpl(this).setSubType(status, index, subType);
7718     except
7719     on e: Exception do FbException.catchException(status, e);
7720     end
7721     end;
7722    
7723     procedure IMetadataBuilderImpl_setLengthDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; length: Cardinal); cdecl;
7724     begin
7725     try
7726     IMetadataBuilderImpl(this).setLength(status, index, length);
7727     except
7728     on e: Exception do FbException.catchException(status, e);
7729     end
7730     end;
7731    
7732     procedure IMetadataBuilderImpl_setCharSetDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; charSet: Cardinal); cdecl;
7733     begin
7734     try
7735     IMetadataBuilderImpl(this).setCharSet(status, index, charSet);
7736     except
7737     on e: Exception do FbException.catchException(status, e);
7738     end
7739     end;
7740    
7741 tony 315 procedure IMetadataBuilderImpl_setScaleDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: Integer); cdecl;
7742 tony 45 begin
7743     try
7744     IMetadataBuilderImpl(this).setScale(status, index, scale);
7745     except
7746     on e: Exception do FbException.catchException(status, e);
7747     end
7748     end;
7749    
7750     procedure IMetadataBuilderImpl_truncateDispatcher(this: IMetadataBuilder; status: IStatus; count: Cardinal); cdecl;
7751     begin
7752     try
7753     IMetadataBuilderImpl(this).truncate(status, count);
7754     except
7755     on e: Exception do FbException.catchException(status, e);
7756     end
7757     end;
7758    
7759     procedure IMetadataBuilderImpl_moveNameToIndexDispatcher(this: IMetadataBuilder; status: IStatus; name: PAnsiChar; index: Cardinal); cdecl;
7760     begin
7761     try
7762     IMetadataBuilderImpl(this).moveNameToIndex(status, name, index);
7763     except
7764     on e: Exception do FbException.catchException(status, e);
7765     end
7766     end;
7767    
7768     procedure IMetadataBuilderImpl_removeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal); cdecl;
7769     begin
7770     try
7771     IMetadataBuilderImpl(this).remove(status, index);
7772     except
7773     on e: Exception do FbException.catchException(status, e);
7774     end
7775     end;
7776    
7777     function IMetadataBuilderImpl_addFieldDispatcher(this: IMetadataBuilder; status: IStatus): Cardinal; cdecl;
7778     begin
7779     try
7780     Result := IMetadataBuilderImpl(this).addField(status);
7781     except
7782     on e: Exception do FbException.catchException(status, e);
7783     end
7784     end;
7785    
7786     function IMetadataBuilderImpl_getMetadataDispatcher(this: IMetadataBuilder; status: IStatus): IMessageMetadata; cdecl;
7787     begin
7788     try
7789     Result := IMetadataBuilderImpl(this).getMetadata(status);
7790     except
7791     on e: Exception do FbException.catchException(status, e);
7792     end
7793     end;
7794    
7795 tony 315 procedure IMetadataBuilderImpl_setFieldDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; field: PAnsiChar); cdecl;
7796     begin
7797     try
7798     IMetadataBuilderImpl(this).setField(status, index, field);
7799     except
7800     on e: Exception do FbException.catchException(status, e);
7801     end
7802     end;
7803    
7804     procedure IMetadataBuilderImpl_setRelationDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; relation: PAnsiChar); cdecl;
7805     begin
7806     try
7807     IMetadataBuilderImpl(this).setRelation(status, index, relation);
7808     except
7809     on e: Exception do FbException.catchException(status, e);
7810     end
7811     end;
7812    
7813     procedure IMetadataBuilderImpl_setOwnerDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; owner: PAnsiChar); cdecl;
7814     begin
7815     try
7816     IMetadataBuilderImpl(this).setOwner(status, index, owner);
7817     except
7818     on e: Exception do FbException.catchException(status, e);
7819     end
7820     end;
7821    
7822     procedure IMetadataBuilderImpl_setAliasDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; alias: PAnsiChar); cdecl;
7823     begin
7824     try
7825     IMetadataBuilderImpl(this).setAlias(status, index, alias);
7826     except
7827     on e: Exception do FbException.catchException(status, e);
7828     end
7829     end;
7830    
7831 tony 45 var
7832     IMetadataBuilderImpl_vTable: MetadataBuilderVTable;
7833    
7834     constructor IMetadataBuilderImpl.create;
7835     begin
7836     vTable := IMetadataBuilderImpl_vTable;
7837     end;
7838    
7839     procedure IResultSetImpl_addRefDispatcher(this: IResultSet); cdecl;
7840     begin
7841     try
7842     IResultSetImpl(this).addRef();
7843     except
7844     on e: Exception do FbException.catchException(nil, e);
7845     end
7846     end;
7847    
7848     function IResultSetImpl_releaseDispatcher(this: IResultSet): Integer; cdecl;
7849     begin
7850     try
7851     Result := IResultSetImpl(this).release();
7852     except
7853     on e: Exception do FbException.catchException(nil, e);
7854     end
7855     end;
7856    
7857     function IResultSetImpl_fetchNextDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
7858     begin
7859     try
7860     Result := IResultSetImpl(this).fetchNext(status, message);
7861     except
7862     on e: Exception do FbException.catchException(status, e);
7863     end
7864     end;
7865    
7866     function IResultSetImpl_fetchPriorDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
7867     begin
7868     try
7869     Result := IResultSetImpl(this).fetchPrior(status, message);
7870     except
7871     on e: Exception do FbException.catchException(status, e);
7872     end
7873     end;
7874    
7875     function IResultSetImpl_fetchFirstDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
7876     begin
7877     try
7878     Result := IResultSetImpl(this).fetchFirst(status, message);
7879     except
7880     on e: Exception do FbException.catchException(status, e);
7881     end
7882     end;
7883    
7884     function IResultSetImpl_fetchLastDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
7885     begin
7886     try
7887     Result := IResultSetImpl(this).fetchLast(status, message);
7888     except
7889     on e: Exception do FbException.catchException(status, e);
7890     end
7891     end;
7892    
7893     function IResultSetImpl_fetchAbsoluteDispatcher(this: IResultSet; status: IStatus; position: Integer; message: Pointer): Integer; cdecl;
7894     begin
7895     try
7896     Result := IResultSetImpl(this).fetchAbsolute(status, position, message);
7897     except
7898     on e: Exception do FbException.catchException(status, e);
7899     end
7900     end;
7901    
7902     function IResultSetImpl_fetchRelativeDispatcher(this: IResultSet; status: IStatus; offset: Integer; message: Pointer): Integer; cdecl;
7903     begin
7904     try
7905     Result := IResultSetImpl(this).fetchRelative(status, offset, message);
7906     except
7907     on e: Exception do FbException.catchException(status, e);
7908     end
7909     end;
7910    
7911     function IResultSetImpl_isEofDispatcher(this: IResultSet; status: IStatus): Boolean; cdecl;
7912     begin
7913     try
7914     Result := IResultSetImpl(this).isEof(status);
7915     except
7916     on e: Exception do FbException.catchException(status, e);
7917     end
7918     end;
7919    
7920     function IResultSetImpl_isBofDispatcher(this: IResultSet; status: IStatus): Boolean; cdecl;
7921     begin
7922     try
7923     Result := IResultSetImpl(this).isBof(status);
7924     except
7925     on e: Exception do FbException.catchException(status, e);
7926     end
7927     end;
7928    
7929     function IResultSetImpl_getMetadataDispatcher(this: IResultSet; status: IStatus): IMessageMetadata; cdecl;
7930     begin
7931     try
7932     Result := IResultSetImpl(this).getMetadata(status);
7933     except
7934     on e: Exception do FbException.catchException(status, e);
7935     end
7936     end;
7937    
7938     procedure IResultSetImpl_closeDispatcher(this: IResultSet; status: IStatus); cdecl;
7939     begin
7940     try
7941     IResultSetImpl(this).close(status);
7942     except
7943     on e: Exception do FbException.catchException(status, e);
7944     end
7945     end;
7946    
7947     procedure IResultSetImpl_setDelayedOutputFormatDispatcher(this: IResultSet; status: IStatus; format: IMessageMetadata); cdecl;
7948     begin
7949     try
7950     IResultSetImpl(this).setDelayedOutputFormat(status, format);
7951     except
7952     on e: Exception do FbException.catchException(status, e);
7953     end
7954     end;
7955    
7956     var
7957     IResultSetImpl_vTable: ResultSetVTable;
7958    
7959     constructor IResultSetImpl.create;
7960     begin
7961     vTable := IResultSetImpl_vTable;
7962     end;
7963    
7964     procedure IStatementImpl_addRefDispatcher(this: IStatement); cdecl;
7965     begin
7966     try
7967     IStatementImpl(this).addRef();
7968     except
7969     on e: Exception do FbException.catchException(nil, e);
7970     end
7971     end;
7972    
7973     function IStatementImpl_releaseDispatcher(this: IStatement): Integer; cdecl;
7974     begin
7975     try
7976     Result := IStatementImpl(this).release();
7977     except
7978     on e: Exception do FbException.catchException(nil, e);
7979     end
7980     end;
7981    
7982     procedure IStatementImpl_getInfoDispatcher(this: IStatement; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
7983     begin
7984     try
7985     IStatementImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
7986     except
7987     on e: Exception do FbException.catchException(status, e);
7988     end
7989     end;
7990    
7991     function IStatementImpl_getTypeDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
7992     begin
7993     try
7994     Result := IStatementImpl(this).getType(status);
7995     except
7996     on e: Exception do FbException.catchException(status, e);
7997     end
7998     end;
7999    
8000     function IStatementImpl_getPlanDispatcher(this: IStatement; status: IStatus; detailed: Boolean): PAnsiChar; cdecl;
8001     begin
8002     try
8003     Result := IStatementImpl(this).getPlan(status, detailed);
8004     except
8005     on e: Exception do FbException.catchException(status, e);
8006     end
8007     end;
8008    
8009     function IStatementImpl_getAffectedRecordsDispatcher(this: IStatement; status: IStatus): QWord; cdecl;
8010     begin
8011     try
8012     Result := IStatementImpl(this).getAffectedRecords(status);
8013     except
8014     on e: Exception do FbException.catchException(status, e);
8015     end
8016     end;
8017    
8018     function IStatementImpl_getInputMetadataDispatcher(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
8019     begin
8020     try
8021     Result := IStatementImpl(this).getInputMetadata(status);
8022     except
8023     on e: Exception do FbException.catchException(status, e);
8024     end
8025     end;
8026    
8027     function IStatementImpl_getOutputMetadataDispatcher(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
8028     begin
8029     try
8030     Result := IStatementImpl(this).getOutputMetadata(status);
8031     except
8032     on e: Exception do FbException.catchException(status, e);
8033     end
8034     end;
8035    
8036     function IStatementImpl_executeDispatcher(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
8037     begin
8038     try
8039     Result := IStatementImpl(this).execute(status, transaction, inMetadata, inBuffer, outMetadata, outBuffer);
8040     except
8041     on e: Exception do FbException.catchException(status, e);
8042     end
8043     end;
8044    
8045     function IStatementImpl_openCursorDispatcher(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; cdecl;
8046     begin
8047     try
8048     Result := IStatementImpl(this).openCursor(status, transaction, inMetadata, inBuffer, outMetadata, flags);
8049     except
8050     on e: Exception do FbException.catchException(status, e);
8051     end
8052     end;
8053    
8054     procedure IStatementImpl_setCursorNameDispatcher(this: IStatement; status: IStatus; name: PAnsiChar); cdecl;
8055     begin
8056     try
8057     IStatementImpl(this).setCursorName(status, name);
8058     except
8059     on e: Exception do FbException.catchException(status, e);
8060     end
8061     end;
8062    
8063     procedure IStatementImpl_freeDispatcher(this: IStatement; status: IStatus); cdecl;
8064     begin
8065     try
8066     IStatementImpl(this).free(status);
8067     except
8068     on e: Exception do FbException.catchException(status, e);
8069     end
8070     end;
8071    
8072     function IStatementImpl_getFlagsDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
8073     begin
8074     try
8075     Result := IStatementImpl(this).getFlags(status);
8076     except
8077     on e: Exception do FbException.catchException(status, e);
8078     end
8079     end;
8080    
8081 tony 315 function IStatementImpl_getTimeoutDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
8082     begin
8083     try
8084     Result := IStatementImpl(this).getTimeout(status);
8085     except
8086     on e: Exception do FbException.catchException(status, e);
8087     end
8088     end;
8089    
8090     procedure IStatementImpl_setTimeoutDispatcher(this: IStatement; status: IStatus; timeOut: Cardinal); cdecl;
8091     begin
8092     try
8093     IStatementImpl(this).setTimeout(status, timeOut);
8094     except
8095     on e: Exception do FbException.catchException(status, e);
8096     end
8097     end;
8098    
8099     function IStatementImpl_createBatchDispatcher(this: IStatement; status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
8100     begin
8101     try
8102     Result := IStatementImpl(this).createBatch(status, inMetadata, parLength, par);
8103     except
8104     on e: Exception do FbException.catchException(status, e);
8105     end
8106     end;
8107    
8108 tony 45 var
8109     IStatementImpl_vTable: StatementVTable;
8110    
8111     constructor IStatementImpl.create;
8112     begin
8113     vTable := IStatementImpl_vTable;
8114     end;
8115    
8116 tony 315 procedure IBatchImpl_addRefDispatcher(this: IBatch); cdecl;
8117     begin
8118     try
8119     IBatchImpl(this).addRef();
8120     except
8121     on e: Exception do FbException.catchException(nil, e);
8122     end
8123     end;
8124    
8125     function IBatchImpl_releaseDispatcher(this: IBatch): Integer; cdecl;
8126     begin
8127     try
8128     Result := IBatchImpl(this).release();
8129     except
8130     on e: Exception do FbException.catchException(nil, e);
8131     end
8132     end;
8133    
8134     procedure IBatchImpl_addDispatcher(this: IBatch; status: IStatus; count: Cardinal; inBuffer: Pointer); cdecl;
8135     begin
8136     try
8137     IBatchImpl(this).add(status, count, inBuffer);
8138     except
8139     on e: Exception do FbException.catchException(status, e);
8140     end
8141     end;
8142    
8143     procedure IBatchImpl_addBlobDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); cdecl;
8144     begin
8145     try
8146     IBatchImpl(this).addBlob(status, length, inBuffer, blobId, parLength, par);
8147     except
8148     on e: Exception do FbException.catchException(status, e);
8149     end
8150     end;
8151    
8152     procedure IBatchImpl_appendBlobDataDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
8153     begin
8154     try
8155     IBatchImpl(this).appendBlobData(status, length, inBuffer);
8156     except
8157     on e: Exception do FbException.catchException(status, e);
8158     end
8159     end;
8160    
8161     procedure IBatchImpl_addBlobStreamDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
8162     begin
8163     try
8164     IBatchImpl(this).addBlobStream(status, length, inBuffer);
8165     except
8166     on e: Exception do FbException.catchException(status, e);
8167     end
8168     end;
8169    
8170     procedure IBatchImpl_registerBlobDispatcher(this: IBatch; status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); cdecl;
8171     begin
8172     try
8173     IBatchImpl(this).registerBlob(status, existingBlob, blobId);
8174     except
8175     on e: Exception do FbException.catchException(status, e);
8176     end
8177     end;
8178    
8179     function IBatchImpl_executeDispatcher(this: IBatch; status: IStatus; transaction: ITransaction): IBatchCompletionState; cdecl;
8180     begin
8181     try
8182     Result := IBatchImpl(this).execute(status, transaction);
8183     except
8184     on e: Exception do FbException.catchException(status, e);
8185     end
8186     end;
8187    
8188     procedure IBatchImpl_cancelDispatcher(this: IBatch; status: IStatus); cdecl;
8189     begin
8190     try
8191     IBatchImpl(this).cancel(status);
8192     except
8193     on e: Exception do FbException.catchException(status, e);
8194     end
8195     end;
8196    
8197     function IBatchImpl_getBlobAlignmentDispatcher(this: IBatch; status: IStatus): Cardinal; cdecl;
8198     begin
8199     try
8200     Result := IBatchImpl(this).getBlobAlignment(status);
8201     except
8202     on e: Exception do FbException.catchException(status, e);
8203     end
8204     end;
8205    
8206     function IBatchImpl_getMetadataDispatcher(this: IBatch; status: IStatus): IMessageMetadata; cdecl;
8207     begin
8208     try
8209     Result := IBatchImpl(this).getMetadata(status);
8210     except
8211     on e: Exception do FbException.catchException(status, e);
8212     end
8213     end;
8214    
8215     procedure IBatchImpl_setDefaultBpbDispatcher(this: IBatch; status: IStatus; parLength: Cardinal; par: BytePtr); cdecl;
8216     begin
8217     try
8218     IBatchImpl(this).setDefaultBpb(status, parLength, par);
8219     except
8220     on e: Exception do FbException.catchException(status, e);
8221     end
8222     end;
8223    
8224 tony 345 procedure IBatchImpl_closeDispatcher(this: IBatch; status: IStatus); cdecl;
8225     begin
8226     try
8227     IBatchImpl(this).close(status);
8228     except
8229     on e: Exception do FbException.catchException(status, e);
8230     end
8231     end;
8232    
8233 tony 315 var
8234     IBatchImpl_vTable: BatchVTable;
8235    
8236     constructor IBatchImpl.create;
8237     begin
8238     vTable := IBatchImpl_vTable;
8239     end;
8240    
8241     procedure IBatchCompletionStateImpl_disposeDispatcher(this: IBatchCompletionState); cdecl;
8242     begin
8243     try
8244     IBatchCompletionStateImpl(this).dispose();
8245     except
8246     on e: Exception do FbException.catchException(nil, e);
8247     end
8248     end;
8249    
8250     function IBatchCompletionStateImpl_getSizeDispatcher(this: IBatchCompletionState; status: IStatus): Cardinal; cdecl;
8251     begin
8252     try
8253     Result := IBatchCompletionStateImpl(this).getSize(status);
8254     except
8255     on e: Exception do FbException.catchException(status, e);
8256     end
8257     end;
8258    
8259     function IBatchCompletionStateImpl_getStateDispatcher(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Integer; cdecl;
8260     begin
8261     try
8262     Result := IBatchCompletionStateImpl(this).getState(status, pos);
8263     except
8264     on e: Exception do FbException.catchException(status, e);
8265     end
8266     end;
8267    
8268     function IBatchCompletionStateImpl_findErrorDispatcher(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Cardinal; cdecl;
8269     begin
8270     try
8271     Result := IBatchCompletionStateImpl(this).findError(status, pos);
8272     except
8273     on e: Exception do FbException.catchException(status, e);
8274     end
8275     end;
8276    
8277     procedure IBatchCompletionStateImpl_getStatusDispatcher(this: IBatchCompletionState; status: IStatus; to_: IStatus; pos: Cardinal); cdecl;
8278     begin
8279     try
8280     IBatchCompletionStateImpl(this).getStatus(status, to_, pos);
8281     except
8282     on e: Exception do FbException.catchException(status, e);
8283     end
8284     end;
8285    
8286     var
8287     IBatchCompletionStateImpl_vTable: BatchCompletionStateVTable;
8288    
8289     constructor IBatchCompletionStateImpl.create;
8290     begin
8291     vTable := IBatchCompletionStateImpl_vTable;
8292     end;
8293    
8294     procedure IReplicatorImpl_addRefDispatcher(this: IReplicator); cdecl;
8295     begin
8296     try
8297     IReplicatorImpl(this).addRef();
8298     except
8299     on e: Exception do FbException.catchException(nil, e);
8300     end
8301     end;
8302    
8303     function IReplicatorImpl_releaseDispatcher(this: IReplicator): Integer; cdecl;
8304     begin
8305     try
8306     Result := IReplicatorImpl(this).release();
8307     except
8308     on e: Exception do FbException.catchException(nil, e);
8309     end
8310     end;
8311    
8312     procedure IReplicatorImpl_processDispatcher(this: IReplicator; status: IStatus; length: Cardinal; data: BytePtr); cdecl;
8313     begin
8314     try
8315     IReplicatorImpl(this).process(status, length, data);
8316     except
8317     on e: Exception do FbException.catchException(status, e);
8318     end
8319     end;
8320    
8321     procedure IReplicatorImpl_closeDispatcher(this: IReplicator; status: IStatus); cdecl;
8322     begin
8323     try
8324     IReplicatorImpl(this).close(status);
8325     except
8326     on e: Exception do FbException.catchException(status, e);
8327     end
8328     end;
8329    
8330     var
8331     IReplicatorImpl_vTable: ReplicatorVTable;
8332    
8333     constructor IReplicatorImpl.create;
8334     begin
8335     vTable := IReplicatorImpl_vTable;
8336     end;
8337    
8338 tony 45 procedure IRequestImpl_addRefDispatcher(this: IRequest); cdecl;
8339     begin
8340     try
8341     IRequestImpl(this).addRef();
8342     except
8343     on e: Exception do FbException.catchException(nil, e);
8344     end
8345     end;
8346    
8347     function IRequestImpl_releaseDispatcher(this: IRequest): Integer; cdecl;
8348     begin
8349     try
8350     Result := IRequestImpl(this).release();
8351     except
8352     on e: Exception do FbException.catchException(nil, e);
8353     end
8354     end;
8355    
8356 tony 315 procedure IRequestImpl_receiveDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8357 tony 45 begin
8358     try
8359     IRequestImpl(this).receive(status, level, msgType, length, message);
8360     except
8361     on e: Exception do FbException.catchException(status, e);
8362     end
8363     end;
8364    
8365 tony 315 procedure IRequestImpl_sendDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8366 tony 45 begin
8367     try
8368     IRequestImpl(this).send(status, level, msgType, length, message);
8369     except
8370     on e: Exception do FbException.catchException(status, e);
8371     end
8372     end;
8373    
8374     procedure IRequestImpl_getInfoDispatcher(this: IRequest; status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8375     begin
8376     try
8377     IRequestImpl(this).getInfo(status, level, itemsLength, items, bufferLength, buffer);
8378     except
8379     on e: Exception do FbException.catchException(status, e);
8380     end
8381     end;
8382    
8383     procedure IRequestImpl_startDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer); cdecl;
8384     begin
8385     try
8386     IRequestImpl(this).start(status, tra, level);
8387     except
8388     on e: Exception do FbException.catchException(status, e);
8389     end
8390     end;
8391    
8392 tony 315 procedure IRequestImpl_startAndSendDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8393 tony 45 begin
8394     try
8395     IRequestImpl(this).startAndSend(status, tra, level, msgType, length, message);
8396     except
8397     on e: Exception do FbException.catchException(status, e);
8398     end
8399     end;
8400    
8401     procedure IRequestImpl_unwindDispatcher(this: IRequest; status: IStatus; level: Integer); cdecl;
8402     begin
8403     try
8404     IRequestImpl(this).unwind(status, level);
8405     except
8406     on e: Exception do FbException.catchException(status, e);
8407     end
8408     end;
8409    
8410     procedure IRequestImpl_freeDispatcher(this: IRequest; status: IStatus); cdecl;
8411     begin
8412     try
8413     IRequestImpl(this).free(status);
8414     except
8415     on e: Exception do FbException.catchException(status, e);
8416     end
8417     end;
8418    
8419     var
8420     IRequestImpl_vTable: RequestVTable;
8421    
8422     constructor IRequestImpl.create;
8423     begin
8424     vTable := IRequestImpl_vTable;
8425     end;
8426    
8427     procedure IEventsImpl_addRefDispatcher(this: IEvents); cdecl;
8428     begin
8429     try
8430     IEventsImpl(this).addRef();
8431     except
8432     on e: Exception do FbException.catchException(nil, e);
8433     end
8434     end;
8435    
8436     function IEventsImpl_releaseDispatcher(this: IEvents): Integer; cdecl;
8437     begin
8438     try
8439     Result := IEventsImpl(this).release();
8440     except
8441     on e: Exception do FbException.catchException(nil, e);
8442     end
8443     end;
8444    
8445     procedure IEventsImpl_cancelDispatcher(this: IEvents; status: IStatus); cdecl;
8446     begin
8447     try
8448     IEventsImpl(this).cancel(status);
8449     except
8450     on e: Exception do FbException.catchException(status, e);
8451     end
8452     end;
8453    
8454     var
8455     IEventsImpl_vTable: EventsVTable;
8456    
8457     constructor IEventsImpl.create;
8458     begin
8459     vTable := IEventsImpl_vTable;
8460     end;
8461    
8462     procedure IAttachmentImpl_addRefDispatcher(this: IAttachment); cdecl;
8463     begin
8464     try
8465     IAttachmentImpl(this).addRef();
8466     except
8467     on e: Exception do FbException.catchException(nil, e);
8468     end
8469     end;
8470    
8471     function IAttachmentImpl_releaseDispatcher(this: IAttachment): Integer; cdecl;
8472     begin
8473     try
8474     Result := IAttachmentImpl(this).release();
8475     except
8476     on e: Exception do FbException.catchException(nil, e);
8477     end
8478     end;
8479    
8480     procedure IAttachmentImpl_getInfoDispatcher(this: IAttachment; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8481     begin
8482     try
8483     IAttachmentImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
8484     except
8485     on e: Exception do FbException.catchException(status, e);
8486     end
8487     end;
8488    
8489     function IAttachmentImpl_startTransactionDispatcher(this: IAttachment; status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; cdecl;
8490     begin
8491     try
8492     Result := IAttachmentImpl(this).startTransaction(status, tpbLength, tpb);
8493     except
8494     on e: Exception do FbException.catchException(status, e);
8495     end
8496     end;
8497    
8498     function IAttachmentImpl_reconnectTransactionDispatcher(this: IAttachment; status: IStatus; length: Cardinal; id: BytePtr): ITransaction; cdecl;
8499     begin
8500     try
8501     Result := IAttachmentImpl(this).reconnectTransaction(status, length, id);
8502     except
8503     on e: Exception do FbException.catchException(status, e);
8504     end
8505     end;
8506    
8507     function IAttachmentImpl_compileRequestDispatcher(this: IAttachment; status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; cdecl;
8508     begin
8509     try
8510     Result := IAttachmentImpl(this).compileRequest(status, blrLength, blr);
8511     except
8512     on e: Exception do FbException.catchException(status, e);
8513     end
8514     end;
8515    
8516     procedure IAttachmentImpl_transactRequestDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); cdecl;
8517     begin
8518     try
8519     IAttachmentImpl(this).transactRequest(status, transaction, blrLength, blr, inMsgLength, inMsg, outMsgLength, outMsg);
8520     except
8521     on e: Exception do FbException.catchException(status, e);
8522     end
8523     end;
8524    
8525 tony 315 function IAttachmentImpl_createBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8526 tony 45 begin
8527     try
8528     Result := IAttachmentImpl(this).createBlob(status, transaction, id, bpbLength, bpb);
8529     except
8530     on e: Exception do FbException.catchException(status, e);
8531     end
8532     end;
8533    
8534 tony 315 function IAttachmentImpl_openBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8535 tony 45 begin
8536     try
8537     Result := IAttachmentImpl(this).openBlob(status, transaction, id, bpbLength, bpb);
8538     except
8539     on e: Exception do FbException.catchException(status, e);
8540     end
8541     end;
8542    
8543 tony 315 function IAttachmentImpl_getSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
8544 tony 45 begin
8545     try
8546     Result := IAttachmentImpl(this).getSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
8547     except
8548     on e: Exception do FbException.catchException(status, e);
8549     end
8550     end;
8551    
8552 tony 315 procedure IAttachmentImpl_putSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
8553 tony 45 begin
8554     try
8555     IAttachmentImpl(this).putSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
8556     except
8557     on e: Exception do FbException.catchException(status, e);
8558     end
8559     end;
8560    
8561     procedure IAttachmentImpl_executeDynDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); cdecl;
8562     begin
8563     try
8564     IAttachmentImpl(this).executeDyn(status, transaction, length, dyn);
8565     except
8566     on e: Exception do FbException.catchException(status, e);
8567     end
8568     end;
8569    
8570     function IAttachmentImpl_prepareDispatcher(this: IAttachment; status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; cdecl;
8571     begin
8572     try
8573     Result := IAttachmentImpl(this).prepare(status, tra, stmtLength, sqlStmt, dialect, flags);
8574     except
8575     on e: Exception do FbException.catchException(status, e);
8576     end
8577     end;
8578    
8579     function IAttachmentImpl_executeDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
8580     begin
8581     try
8582     Result := IAttachmentImpl(this).execute(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, outBuffer);
8583     except
8584     on e: Exception do FbException.catchException(status, e);
8585     end
8586     end;
8587    
8588     function IAttachmentImpl_openCursorDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; cdecl;
8589     begin
8590     try
8591     Result := IAttachmentImpl(this).openCursor(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, cursorName, cursorFlags);
8592     except
8593     on e: Exception do FbException.catchException(status, e);
8594     end
8595     end;
8596    
8597     function IAttachmentImpl_queEventsDispatcher(this: IAttachment; status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; cdecl;
8598     begin
8599     try
8600     Result := IAttachmentImpl(this).queEvents(status, callback, length, events);
8601     except
8602     on e: Exception do FbException.catchException(status, e);
8603     end
8604     end;
8605    
8606     procedure IAttachmentImpl_cancelOperationDispatcher(this: IAttachment; status: IStatus; option: Integer); cdecl;
8607     begin
8608     try
8609     IAttachmentImpl(this).cancelOperation(status, option);
8610     except
8611     on e: Exception do FbException.catchException(status, e);
8612     end
8613     end;
8614    
8615     procedure IAttachmentImpl_pingDispatcher(this: IAttachment; status: IStatus); cdecl;
8616     begin
8617     try
8618     IAttachmentImpl(this).ping(status);
8619     except
8620     on e: Exception do FbException.catchException(status, e);
8621     end
8622     end;
8623    
8624     procedure IAttachmentImpl_detachDispatcher(this: IAttachment; status: IStatus); cdecl;
8625     begin
8626     try
8627     IAttachmentImpl(this).detach(status);
8628     except
8629     on e: Exception do FbException.catchException(status, e);
8630     end
8631     end;
8632    
8633     procedure IAttachmentImpl_dropDatabaseDispatcher(this: IAttachment; status: IStatus); cdecl;
8634     begin
8635     try
8636     IAttachmentImpl(this).dropDatabase(status);
8637     except
8638     on e: Exception do FbException.catchException(status, e);
8639     end
8640     end;
8641    
8642 tony 315 function IAttachmentImpl_getIdleTimeoutDispatcher(this: IAttachment; status: IStatus): Cardinal; cdecl;
8643     begin
8644     try
8645     Result := IAttachmentImpl(this).getIdleTimeout(status);
8646     except
8647     on e: Exception do FbException.catchException(status, e);
8648     end
8649     end;
8650    
8651     procedure IAttachmentImpl_setIdleTimeoutDispatcher(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
8652     begin
8653     try
8654     IAttachmentImpl(this).setIdleTimeout(status, timeOut);
8655     except
8656     on e: Exception do FbException.catchException(status, e);
8657     end
8658     end;
8659    
8660     function IAttachmentImpl_getStatementTimeoutDispatcher(this: IAttachment; status: IStatus): Cardinal; cdecl;
8661     begin
8662     try
8663     Result := IAttachmentImpl(this).getStatementTimeout(status);
8664     except
8665     on e: Exception do FbException.catchException(status, e);
8666     end
8667     end;
8668    
8669     procedure IAttachmentImpl_setStatementTimeoutDispatcher(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
8670     begin
8671     try
8672     IAttachmentImpl(this).setStatementTimeout(status, timeOut);
8673     except
8674     on e: Exception do FbException.catchException(status, e);
8675     end
8676     end;
8677    
8678     function IAttachmentImpl_createBatchDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
8679     begin
8680     try
8681     Result := IAttachmentImpl(this).createBatch(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, parLength, par);
8682     except
8683     on e: Exception do FbException.catchException(status, e);
8684     end
8685     end;
8686    
8687     function IAttachmentImpl_createReplicatorDispatcher(this: IAttachment; status: IStatus): IReplicator; cdecl;
8688     begin
8689     try
8690     Result := IAttachmentImpl(this).createReplicator(status);
8691     except
8692     on e: Exception do FbException.catchException(status, e);
8693     end
8694     end;
8695    
8696 tony 45 var
8697     IAttachmentImpl_vTable: AttachmentVTable;
8698    
8699     constructor IAttachmentImpl.create;
8700     begin
8701     vTable := IAttachmentImpl_vTable;
8702     end;
8703    
8704     procedure IServiceImpl_addRefDispatcher(this: IService); cdecl;
8705     begin
8706     try
8707     IServiceImpl(this).addRef();
8708     except
8709     on e: Exception do FbException.catchException(nil, e);
8710     end
8711     end;
8712    
8713     function IServiceImpl_releaseDispatcher(this: IService): Integer; cdecl;
8714     begin
8715     try
8716     Result := IServiceImpl(this).release();
8717     except
8718     on e: Exception do FbException.catchException(nil, e);
8719     end
8720     end;
8721    
8722     procedure IServiceImpl_detachDispatcher(this: IService; status: IStatus); cdecl;
8723     begin
8724     try
8725     IServiceImpl(this).detach(status);
8726     except
8727     on e: Exception do FbException.catchException(status, e);
8728     end
8729     end;
8730    
8731     procedure IServiceImpl_queryDispatcher(this: IService; status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8732     begin
8733     try
8734     IServiceImpl(this).query(status, sendLength, sendItems, receiveLength, receiveItems, bufferLength, buffer);
8735     except
8736     on e: Exception do FbException.catchException(status, e);
8737     end
8738     end;
8739    
8740     procedure IServiceImpl_startDispatcher(this: IService; status: IStatus; spbLength: Cardinal; spb: BytePtr); cdecl;
8741     begin
8742     try
8743     IServiceImpl(this).start(status, spbLength, spb);
8744     except
8745     on e: Exception do FbException.catchException(status, e);
8746     end
8747     end;
8748    
8749     var
8750     IServiceImpl_vTable: ServiceVTable;
8751    
8752     constructor IServiceImpl.create;
8753     begin
8754     vTable := IServiceImpl_vTable;
8755     end;
8756    
8757     procedure IProviderImpl_addRefDispatcher(this: IProvider); cdecl;
8758     begin
8759     try
8760     IProviderImpl(this).addRef();
8761     except
8762     on e: Exception do FbException.catchException(nil, e);
8763     end
8764     end;
8765    
8766     function IProviderImpl_releaseDispatcher(this: IProvider): Integer; cdecl;
8767     begin
8768     try
8769     Result := IProviderImpl(this).release();
8770     except
8771     on e: Exception do FbException.catchException(nil, e);
8772     end
8773     end;
8774    
8775     procedure IProviderImpl_setOwnerDispatcher(this: IProvider; r: IReferenceCounted); cdecl;
8776     begin
8777     try
8778     IProviderImpl(this).setOwner(r);
8779     except
8780     on e: Exception do FbException.catchException(nil, e);
8781     end
8782     end;
8783    
8784     function IProviderImpl_getOwnerDispatcher(this: IProvider): IReferenceCounted; cdecl;
8785     begin
8786     try
8787     Result := IProviderImpl(this).getOwner();
8788     except
8789     on e: Exception do FbException.catchException(nil, e);
8790     end
8791     end;
8792    
8793     function IProviderImpl_attachDatabaseDispatcher(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
8794     begin
8795     try
8796     Result := IProviderImpl(this).attachDatabase(status, fileName, dpbLength, dpb);
8797     except
8798     on e: Exception do FbException.catchException(status, e);
8799     end
8800     end;
8801    
8802     function IProviderImpl_createDatabaseDispatcher(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
8803     begin
8804     try
8805     Result := IProviderImpl(this).createDatabase(status, fileName, dpbLength, dpb);
8806     except
8807     on e: Exception do FbException.catchException(status, e);
8808     end
8809     end;
8810    
8811     function IProviderImpl_attachServiceManagerDispatcher(this: IProvider; status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; cdecl;
8812     begin
8813     try
8814     Result := IProviderImpl(this).attachServiceManager(status, service, spbLength, spb);
8815     except
8816     on e: Exception do FbException.catchException(status, e);
8817     end
8818     end;
8819    
8820     procedure IProviderImpl_shutdownDispatcher(this: IProvider; status: IStatus; timeout: Cardinal; reason: Integer); cdecl;
8821     begin
8822     try
8823     IProviderImpl(this).shutdown(status, timeout, reason);
8824     except
8825     on e: Exception do FbException.catchException(status, e);
8826     end
8827     end;
8828    
8829     procedure IProviderImpl_setDbCryptCallbackDispatcher(this: IProvider; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
8830     begin
8831     try
8832     IProviderImpl(this).setDbCryptCallback(status, cryptCallback);
8833     except
8834     on e: Exception do FbException.catchException(status, e);
8835     end
8836     end;
8837    
8838     var
8839     IProviderImpl_vTable: ProviderVTable;
8840    
8841     constructor IProviderImpl.create;
8842     begin
8843     vTable := IProviderImpl_vTable;
8844     end;
8845    
8846     procedure IDtcStartImpl_disposeDispatcher(this: IDtcStart); cdecl;
8847     begin
8848     try
8849     IDtcStartImpl(this).dispose();
8850     except
8851     on e: Exception do FbException.catchException(nil, e);
8852     end
8853     end;
8854    
8855     procedure IDtcStartImpl_addAttachmentDispatcher(this: IDtcStart; status: IStatus; att: IAttachment); cdecl;
8856     begin
8857     try
8858     IDtcStartImpl(this).addAttachment(status, att);
8859     except
8860     on e: Exception do FbException.catchException(status, e);
8861     end
8862     end;
8863    
8864     procedure IDtcStartImpl_addWithTpbDispatcher(this: IDtcStart; status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); cdecl;
8865     begin
8866     try
8867     IDtcStartImpl(this).addWithTpb(status, att, length, tpb);
8868     except
8869     on e: Exception do FbException.catchException(status, e);
8870     end
8871     end;
8872    
8873     function IDtcStartImpl_startDispatcher(this: IDtcStart; status: IStatus): ITransaction; cdecl;
8874     begin
8875     try
8876     Result := IDtcStartImpl(this).start(status);
8877     except
8878     on e: Exception do FbException.catchException(status, e);
8879     end
8880     end;
8881    
8882     var
8883     IDtcStartImpl_vTable: DtcStartVTable;
8884    
8885     constructor IDtcStartImpl.create;
8886     begin
8887     vTable := IDtcStartImpl_vTable;
8888     end;
8889    
8890     function IDtcImpl_joinDispatcher(this: IDtc; status: IStatus; one: ITransaction; two: ITransaction): ITransaction; cdecl;
8891     begin
8892     try
8893     Result := IDtcImpl(this).join(status, one, two);
8894     except
8895     on e: Exception do FbException.catchException(status, e);
8896     end
8897     end;
8898    
8899     function IDtcImpl_startBuilderDispatcher(this: IDtc; status: IStatus): IDtcStart; cdecl;
8900     begin
8901     try
8902     Result := IDtcImpl(this).startBuilder(status);
8903     except
8904     on e: Exception do FbException.catchException(status, e);
8905     end
8906     end;
8907    
8908     var
8909     IDtcImpl_vTable: DtcVTable;
8910    
8911     constructor IDtcImpl.create;
8912     begin
8913     vTable := IDtcImpl_vTable;
8914     end;
8915    
8916     procedure IAuthImpl_addRefDispatcher(this: IAuth); cdecl;
8917     begin
8918     try
8919     IAuthImpl(this).addRef();
8920     except
8921     on e: Exception do FbException.catchException(nil, e);
8922     end
8923     end;
8924    
8925     function IAuthImpl_releaseDispatcher(this: IAuth): Integer; cdecl;
8926     begin
8927     try
8928     Result := IAuthImpl(this).release();
8929     except
8930     on e: Exception do FbException.catchException(nil, e);
8931     end
8932     end;
8933    
8934     procedure IAuthImpl_setOwnerDispatcher(this: IAuth; r: IReferenceCounted); cdecl;
8935     begin
8936     try
8937     IAuthImpl(this).setOwner(r);
8938     except
8939     on e: Exception do FbException.catchException(nil, e);
8940     end
8941     end;
8942    
8943     function IAuthImpl_getOwnerDispatcher(this: IAuth): IReferenceCounted; cdecl;
8944     begin
8945     try
8946     Result := IAuthImpl(this).getOwner();
8947     except
8948     on e: Exception do FbException.catchException(nil, e);
8949     end
8950     end;
8951    
8952     var
8953     IAuthImpl_vTable: AuthVTable;
8954    
8955     constructor IAuthImpl.create;
8956     begin
8957     vTable := IAuthImpl_vTable;
8958     end;
8959    
8960     procedure IWriterImpl_resetDispatcher(this: IWriter); cdecl;
8961     begin
8962     try
8963     IWriterImpl(this).reset();
8964     except
8965     on e: Exception do FbException.catchException(nil, e);
8966     end
8967     end;
8968    
8969     procedure IWriterImpl_addDispatcher(this: IWriter; status: IStatus; name: PAnsiChar); cdecl;
8970     begin
8971     try
8972     IWriterImpl(this).add(status, name);
8973     except
8974     on e: Exception do FbException.catchException(status, e);
8975     end
8976     end;
8977    
8978     procedure IWriterImpl_setTypeDispatcher(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
8979     begin
8980     try
8981     IWriterImpl(this).setType(status, value);
8982     except
8983     on e: Exception do FbException.catchException(status, e);
8984     end
8985     end;
8986    
8987     procedure IWriterImpl_setDbDispatcher(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
8988     begin
8989     try
8990     IWriterImpl(this).setDb(status, value);
8991     except
8992     on e: Exception do FbException.catchException(status, e);
8993     end
8994     end;
8995    
8996     var
8997     IWriterImpl_vTable: WriterVTable;
8998    
8999     constructor IWriterImpl.create;
9000     begin
9001     vTable := IWriterImpl_vTable;
9002     end;
9003    
9004     function IServerBlockImpl_getLoginDispatcher(this: IServerBlock): PAnsiChar; cdecl;
9005     begin
9006     try
9007     Result := IServerBlockImpl(this).getLogin();
9008     except
9009     on e: Exception do FbException.catchException(nil, e);
9010     end
9011     end;
9012    
9013     function IServerBlockImpl_getDataDispatcher(this: IServerBlock; length: CardinalPtr): BytePtr; cdecl;
9014     begin
9015     try
9016     Result := IServerBlockImpl(this).getData(length);
9017     except
9018     on e: Exception do FbException.catchException(nil, e);
9019     end
9020     end;
9021    
9022     procedure IServerBlockImpl_putDataDispatcher(this: IServerBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
9023     begin
9024     try
9025     IServerBlockImpl(this).putData(status, length, data);
9026     except
9027     on e: Exception do FbException.catchException(status, e);
9028     end
9029     end;
9030    
9031     function IServerBlockImpl_newKeyDispatcher(this: IServerBlock; status: IStatus): ICryptKey; cdecl;
9032     begin
9033     try
9034     Result := IServerBlockImpl(this).newKey(status);
9035     except
9036     on e: Exception do FbException.catchException(status, e);
9037     end
9038     end;
9039    
9040     var
9041     IServerBlockImpl_vTable: ServerBlockVTable;
9042    
9043     constructor IServerBlockImpl.create;
9044     begin
9045     vTable := IServerBlockImpl_vTable;
9046     end;
9047    
9048     procedure IClientBlockImpl_addRefDispatcher(this: IClientBlock); cdecl;
9049     begin
9050     try
9051     IClientBlockImpl(this).addRef();
9052     except
9053     on e: Exception do FbException.catchException(nil, e);
9054     end
9055     end;
9056    
9057     function IClientBlockImpl_releaseDispatcher(this: IClientBlock): Integer; cdecl;
9058     begin
9059     try
9060     Result := IClientBlockImpl(this).release();
9061     except
9062     on e: Exception do FbException.catchException(nil, e);
9063     end
9064     end;
9065    
9066     function IClientBlockImpl_getLoginDispatcher(this: IClientBlock): PAnsiChar; cdecl;
9067     begin
9068     try
9069     Result := IClientBlockImpl(this).getLogin();
9070     except
9071     on e: Exception do FbException.catchException(nil, e);
9072     end
9073     end;
9074    
9075     function IClientBlockImpl_getPasswordDispatcher(this: IClientBlock): PAnsiChar; cdecl;
9076     begin
9077     try
9078     Result := IClientBlockImpl(this).getPassword();
9079     except
9080     on e: Exception do FbException.catchException(nil, e);
9081     end
9082     end;
9083    
9084     function IClientBlockImpl_getDataDispatcher(this: IClientBlock; length: CardinalPtr): BytePtr; cdecl;
9085     begin
9086     try
9087     Result := IClientBlockImpl(this).getData(length);
9088     except
9089     on e: Exception do FbException.catchException(nil, e);
9090     end
9091     end;
9092    
9093     procedure IClientBlockImpl_putDataDispatcher(this: IClientBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
9094     begin
9095     try
9096     IClientBlockImpl(this).putData(status, length, data);
9097     except
9098     on e: Exception do FbException.catchException(status, e);
9099     end
9100     end;
9101    
9102     function IClientBlockImpl_newKeyDispatcher(this: IClientBlock; status: IStatus): ICryptKey; cdecl;
9103     begin
9104     try
9105     Result := IClientBlockImpl(this).newKey(status);
9106     except
9107     on e: Exception do FbException.catchException(status, e);
9108     end
9109     end;
9110    
9111 tony 315 function IClientBlockImpl_getAuthBlockDispatcher(this: IClientBlock; status: IStatus): IAuthBlock; cdecl;
9112     begin
9113     try
9114     Result := IClientBlockImpl(this).getAuthBlock(status);
9115     except
9116     on e: Exception do FbException.catchException(status, e);
9117     end
9118     end;
9119    
9120 tony 45 var
9121     IClientBlockImpl_vTable: ClientBlockVTable;
9122    
9123     constructor IClientBlockImpl.create;
9124     begin
9125     vTable := IClientBlockImpl_vTable;
9126     end;
9127    
9128     procedure IServerImpl_addRefDispatcher(this: IServer); cdecl;
9129     begin
9130     try
9131     IServerImpl(this).addRef();
9132     except
9133     on e: Exception do FbException.catchException(nil, e);
9134     end
9135     end;
9136    
9137     function IServerImpl_releaseDispatcher(this: IServer): Integer; cdecl;
9138     begin
9139     try
9140     Result := IServerImpl(this).release();
9141     except
9142     on e: Exception do FbException.catchException(nil, e);
9143     end
9144     end;
9145    
9146     procedure IServerImpl_setOwnerDispatcher(this: IServer; r: IReferenceCounted); cdecl;
9147     begin
9148     try
9149     IServerImpl(this).setOwner(r);
9150     except
9151     on e: Exception do FbException.catchException(nil, e);
9152     end
9153     end;
9154    
9155     function IServerImpl_getOwnerDispatcher(this: IServer): IReferenceCounted; cdecl;
9156     begin
9157     try
9158     Result := IServerImpl(this).getOwner();
9159     except
9160     on e: Exception do FbException.catchException(nil, e);
9161     end
9162     end;
9163    
9164     function IServerImpl_authenticateDispatcher(this: IServer; status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; cdecl;
9165     begin
9166     try
9167     Result := IServerImpl(this).authenticate(status, sBlock, writerInterface);
9168     except
9169     on e: Exception do FbException.catchException(status, e);
9170     end
9171     end;
9172    
9173 tony 315 procedure IServerImpl_setDbCryptCallbackDispatcher(this: IServer; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
9174     begin
9175     try
9176     IServerImpl(this).setDbCryptCallback(status, cryptCallback);
9177     except
9178     on e: Exception do FbException.catchException(status, e);
9179     end
9180     end;
9181    
9182 tony 45 var
9183     IServerImpl_vTable: ServerVTable;
9184    
9185     constructor IServerImpl.create;
9186     begin
9187     vTable := IServerImpl_vTable;
9188     end;
9189    
9190     procedure IClientImpl_addRefDispatcher(this: IClient); cdecl;
9191     begin
9192     try
9193     IClientImpl(this).addRef();
9194     except
9195     on e: Exception do FbException.catchException(nil, e);
9196     end
9197     end;
9198    
9199     function IClientImpl_releaseDispatcher(this: IClient): Integer; cdecl;
9200     begin
9201     try
9202     Result := IClientImpl(this).release();
9203     except
9204     on e: Exception do FbException.catchException(nil, e);
9205     end
9206     end;
9207    
9208     procedure IClientImpl_setOwnerDispatcher(this: IClient; r: IReferenceCounted); cdecl;
9209     begin
9210     try
9211     IClientImpl(this).setOwner(r);
9212     except
9213     on e: Exception do FbException.catchException(nil, e);
9214     end
9215     end;
9216    
9217     function IClientImpl_getOwnerDispatcher(this: IClient): IReferenceCounted; cdecl;
9218     begin
9219     try
9220     Result := IClientImpl(this).getOwner();
9221     except
9222     on e: Exception do FbException.catchException(nil, e);
9223     end
9224     end;
9225    
9226     function IClientImpl_authenticateDispatcher(this: IClient; status: IStatus; cBlock: IClientBlock): Integer; cdecl;
9227     begin
9228     try
9229     Result := IClientImpl(this).authenticate(status, cBlock);
9230     except
9231     on e: Exception do FbException.catchException(status, e);
9232     end
9233     end;
9234    
9235     var
9236     IClientImpl_vTable: ClientVTable;
9237    
9238     constructor IClientImpl.create;
9239     begin
9240     vTable := IClientImpl_vTable;
9241     end;
9242    
9243     function IUserFieldImpl_enteredDispatcher(this: IUserField): Integer; cdecl;
9244     begin
9245     try
9246     Result := IUserFieldImpl(this).entered();
9247     except
9248     on e: Exception do FbException.catchException(nil, e);
9249     end
9250     end;
9251    
9252     function IUserFieldImpl_specifiedDispatcher(this: IUserField): Integer; cdecl;
9253     begin
9254     try
9255     Result := IUserFieldImpl(this).specified();
9256     except
9257     on e: Exception do FbException.catchException(nil, e);
9258     end
9259     end;
9260    
9261     procedure IUserFieldImpl_setEnteredDispatcher(this: IUserField; status: IStatus; newValue: Integer); cdecl;
9262     begin
9263     try
9264     IUserFieldImpl(this).setEntered(status, newValue);
9265     except
9266     on e: Exception do FbException.catchException(status, e);
9267     end
9268     end;
9269    
9270     var
9271     IUserFieldImpl_vTable: UserFieldVTable;
9272    
9273     constructor IUserFieldImpl.create;
9274     begin
9275     vTable := IUserFieldImpl_vTable;
9276     end;
9277    
9278     function ICharUserFieldImpl_enteredDispatcher(this: ICharUserField): Integer; cdecl;
9279     begin
9280     try
9281     Result := ICharUserFieldImpl(this).entered();
9282     except
9283     on e: Exception do FbException.catchException(nil, e);
9284     end
9285     end;
9286    
9287     function ICharUserFieldImpl_specifiedDispatcher(this: ICharUserField): Integer; cdecl;
9288     begin
9289     try
9290     Result := ICharUserFieldImpl(this).specified();
9291     except
9292     on e: Exception do FbException.catchException(nil, e);
9293     end
9294     end;
9295    
9296     procedure ICharUserFieldImpl_setEnteredDispatcher(this: ICharUserField; status: IStatus; newValue: Integer); cdecl;
9297     begin
9298     try
9299     ICharUserFieldImpl(this).setEntered(status, newValue);
9300     except
9301     on e: Exception do FbException.catchException(status, e);
9302     end
9303     end;
9304    
9305     function ICharUserFieldImpl_getDispatcher(this: ICharUserField): PAnsiChar; cdecl;
9306     begin
9307     try
9308     Result := ICharUserFieldImpl(this).get();
9309     except
9310     on e: Exception do FbException.catchException(nil, e);
9311     end
9312     end;
9313    
9314     procedure ICharUserFieldImpl_set_Dispatcher(this: ICharUserField; status: IStatus; newValue: PAnsiChar); cdecl;
9315     begin
9316     try
9317     ICharUserFieldImpl(this).set_(status, newValue);
9318     except
9319     on e: Exception do FbException.catchException(status, e);
9320     end
9321     end;
9322    
9323     var
9324     ICharUserFieldImpl_vTable: CharUserFieldVTable;
9325    
9326     constructor ICharUserFieldImpl.create;
9327     begin
9328     vTable := ICharUserFieldImpl_vTable;
9329     end;
9330    
9331     function IIntUserFieldImpl_enteredDispatcher(this: IIntUserField): Integer; cdecl;
9332     begin
9333     try
9334     Result := IIntUserFieldImpl(this).entered();
9335     except
9336     on e: Exception do FbException.catchException(nil, e);
9337     end
9338     end;
9339    
9340     function IIntUserFieldImpl_specifiedDispatcher(this: IIntUserField): Integer; cdecl;
9341     begin
9342     try
9343     Result := IIntUserFieldImpl(this).specified();
9344     except
9345     on e: Exception do FbException.catchException(nil, e);
9346     end
9347     end;
9348    
9349     procedure IIntUserFieldImpl_setEnteredDispatcher(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
9350     begin
9351     try
9352     IIntUserFieldImpl(this).setEntered(status, newValue);
9353     except
9354     on e: Exception do FbException.catchException(status, e);
9355     end
9356     end;
9357    
9358     function IIntUserFieldImpl_getDispatcher(this: IIntUserField): Integer; cdecl;
9359     begin
9360     try
9361     Result := IIntUserFieldImpl(this).get();
9362     except
9363     on e: Exception do FbException.catchException(nil, e);
9364     end
9365     end;
9366    
9367     procedure IIntUserFieldImpl_set_Dispatcher(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
9368     begin
9369     try
9370     IIntUserFieldImpl(this).set_(status, newValue);
9371     except
9372     on e: Exception do FbException.catchException(status, e);
9373     end
9374     end;
9375    
9376     var
9377     IIntUserFieldImpl_vTable: IntUserFieldVTable;
9378    
9379     constructor IIntUserFieldImpl.create;
9380     begin
9381     vTable := IIntUserFieldImpl_vTable;
9382     end;
9383    
9384     function IUserImpl_operationDispatcher(this: IUser): Cardinal; cdecl;
9385     begin
9386     try
9387     Result := IUserImpl(this).operation();
9388     except
9389     on e: Exception do FbException.catchException(nil, e);
9390     end
9391     end;
9392    
9393     function IUserImpl_userNameDispatcher(this: IUser): ICharUserField; cdecl;
9394     begin
9395     try
9396     Result := IUserImpl(this).userName();
9397     except
9398     on e: Exception do FbException.catchException(nil, e);
9399     end
9400     end;
9401    
9402     function IUserImpl_passwordDispatcher(this: IUser): ICharUserField; cdecl;
9403     begin
9404     try
9405     Result := IUserImpl(this).password();
9406     except
9407     on e: Exception do FbException.catchException(nil, e);
9408     end
9409     end;
9410    
9411     function IUserImpl_firstNameDispatcher(this: IUser): ICharUserField; cdecl;
9412     begin
9413     try
9414     Result := IUserImpl(this).firstName();
9415     except
9416     on e: Exception do FbException.catchException(nil, e);
9417     end
9418     end;
9419    
9420     function IUserImpl_lastNameDispatcher(this: IUser): ICharUserField; cdecl;
9421     begin
9422     try
9423     Result := IUserImpl(this).lastName();
9424     except
9425     on e: Exception do FbException.catchException(nil, e);
9426     end
9427     end;
9428    
9429     function IUserImpl_middleNameDispatcher(this: IUser): ICharUserField; cdecl;
9430     begin
9431     try
9432     Result := IUserImpl(this).middleName();
9433     except
9434     on e: Exception do FbException.catchException(nil, e);
9435     end
9436     end;
9437    
9438     function IUserImpl_commentDispatcher(this: IUser): ICharUserField; cdecl;
9439     begin
9440     try
9441     Result := IUserImpl(this).comment();
9442     except
9443     on e: Exception do FbException.catchException(nil, e);
9444     end
9445     end;
9446    
9447     function IUserImpl_attributesDispatcher(this: IUser): ICharUserField; cdecl;
9448     begin
9449     try
9450     Result := IUserImpl(this).attributes();
9451     except
9452     on e: Exception do FbException.catchException(nil, e);
9453     end
9454     end;
9455    
9456     function IUserImpl_activeDispatcher(this: IUser): IIntUserField; cdecl;
9457     begin
9458     try
9459     Result := IUserImpl(this).active();
9460     except
9461     on e: Exception do FbException.catchException(nil, e);
9462     end
9463     end;
9464    
9465     function IUserImpl_adminDispatcher(this: IUser): IIntUserField; cdecl;
9466     begin
9467     try
9468     Result := IUserImpl(this).admin();
9469     except
9470     on e: Exception do FbException.catchException(nil, e);
9471     end
9472     end;
9473    
9474     procedure IUserImpl_clearDispatcher(this: IUser; status: IStatus); cdecl;
9475     begin
9476     try
9477     IUserImpl(this).clear(status);
9478     except
9479     on e: Exception do FbException.catchException(status, e);
9480     end
9481     end;
9482    
9483     var
9484     IUserImpl_vTable: UserVTable;
9485    
9486     constructor IUserImpl.create;
9487     begin
9488     vTable := IUserImpl_vTable;
9489     end;
9490    
9491     procedure IListUsersImpl_listDispatcher(this: IListUsers; status: IStatus; user: IUser); cdecl;
9492     begin
9493     try
9494     IListUsersImpl(this).list(status, user);
9495     except
9496     on e: Exception do FbException.catchException(status, e);
9497     end
9498     end;
9499    
9500     var
9501     IListUsersImpl_vTable: ListUsersVTable;
9502    
9503     constructor IListUsersImpl.create;
9504     begin
9505     vTable := IListUsersImpl_vTable;
9506     end;
9507    
9508     function ILogonInfoImpl_nameDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9509     begin
9510     try
9511     Result := ILogonInfoImpl(this).name();
9512     except
9513     on e: Exception do FbException.catchException(nil, e);
9514     end
9515     end;
9516    
9517     function ILogonInfoImpl_roleDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9518     begin
9519     try
9520     Result := ILogonInfoImpl(this).role();
9521     except
9522     on e: Exception do FbException.catchException(nil, e);
9523     end
9524     end;
9525    
9526     function ILogonInfoImpl_networkProtocolDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9527     begin
9528     try
9529     Result := ILogonInfoImpl(this).networkProtocol();
9530     except
9531     on e: Exception do FbException.catchException(nil, e);
9532     end
9533     end;
9534    
9535     function ILogonInfoImpl_remoteAddressDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9536     begin
9537     try
9538     Result := ILogonInfoImpl(this).remoteAddress();
9539     except
9540     on e: Exception do FbException.catchException(nil, e);
9541     end
9542     end;
9543    
9544     function ILogonInfoImpl_authBlockDispatcher(this: ILogonInfo; length: CardinalPtr): BytePtr; cdecl;
9545     begin
9546     try
9547     Result := ILogonInfoImpl(this).authBlock(length);
9548     except
9549     on e: Exception do FbException.catchException(nil, e);
9550     end
9551     end;
9552    
9553 tony 315 function ILogonInfoImpl_attachmentDispatcher(this: ILogonInfo; status: IStatus): IAttachment; cdecl;
9554     begin
9555     try
9556     Result := ILogonInfoImpl(this).attachment(status);
9557     except
9558     on e: Exception do FbException.catchException(status, e);
9559     end
9560     end;
9561    
9562     function ILogonInfoImpl_transactionDispatcher(this: ILogonInfo; status: IStatus): ITransaction; cdecl;
9563     begin
9564     try
9565     Result := ILogonInfoImpl(this).transaction(status);
9566     except
9567     on e: Exception do FbException.catchException(status, e);
9568     end
9569     end;
9570    
9571 tony 45 var
9572     ILogonInfoImpl_vTable: LogonInfoVTable;
9573    
9574     constructor ILogonInfoImpl.create;
9575     begin
9576     vTable := ILogonInfoImpl_vTable;
9577     end;
9578    
9579     procedure IManagementImpl_addRefDispatcher(this: IManagement); cdecl;
9580     begin
9581     try
9582     IManagementImpl(this).addRef();
9583     except
9584     on e: Exception do FbException.catchException(nil, e);
9585     end
9586     end;
9587    
9588     function IManagementImpl_releaseDispatcher(this: IManagement): Integer; cdecl;
9589     begin
9590     try
9591     Result := IManagementImpl(this).release();
9592     except
9593     on e: Exception do FbException.catchException(nil, e);
9594     end
9595     end;
9596    
9597     procedure IManagementImpl_setOwnerDispatcher(this: IManagement; r: IReferenceCounted); cdecl;
9598     begin
9599     try
9600     IManagementImpl(this).setOwner(r);
9601     except
9602     on e: Exception do FbException.catchException(nil, e);
9603     end
9604     end;
9605    
9606     function IManagementImpl_getOwnerDispatcher(this: IManagement): IReferenceCounted; cdecl;
9607     begin
9608     try
9609     Result := IManagementImpl(this).getOwner();
9610     except
9611     on e: Exception do FbException.catchException(nil, e);
9612     end
9613     end;
9614    
9615     procedure IManagementImpl_startDispatcher(this: IManagement; status: IStatus; logonInfo: ILogonInfo); cdecl;
9616     begin
9617     try
9618     IManagementImpl(this).start(status, logonInfo);
9619     except
9620     on e: Exception do FbException.catchException(status, e);
9621     end
9622     end;
9623    
9624     function IManagementImpl_executeDispatcher(this: IManagement; status: IStatus; user: IUser; callback: IListUsers): Integer; cdecl;
9625     begin
9626     try
9627     Result := IManagementImpl(this).execute(status, user, callback);
9628     except
9629     on e: Exception do FbException.catchException(status, e);
9630     end
9631     end;
9632    
9633     procedure IManagementImpl_commitDispatcher(this: IManagement; status: IStatus); cdecl;
9634     begin
9635     try
9636     IManagementImpl(this).commit(status);
9637     except
9638     on e: Exception do FbException.catchException(status, e);
9639     end
9640     end;
9641    
9642     procedure IManagementImpl_rollbackDispatcher(this: IManagement; status: IStatus); cdecl;
9643     begin
9644     try
9645     IManagementImpl(this).rollback(status);
9646     except
9647     on e: Exception do FbException.catchException(status, e);
9648     end
9649     end;
9650    
9651     var
9652     IManagementImpl_vTable: ManagementVTable;
9653    
9654     constructor IManagementImpl.create;
9655     begin
9656     vTable := IManagementImpl_vTable;
9657     end;
9658    
9659 tony 315 function IAuthBlockImpl_getTypeDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9660     begin
9661     try
9662     Result := IAuthBlockImpl(this).getType();
9663     except
9664     on e: Exception do FbException.catchException(nil, e);
9665     end
9666     end;
9667    
9668     function IAuthBlockImpl_getNameDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9669     begin
9670     try
9671     Result := IAuthBlockImpl(this).getName();
9672     except
9673     on e: Exception do FbException.catchException(nil, e);
9674     end
9675     end;
9676    
9677     function IAuthBlockImpl_getPluginDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9678     begin
9679     try
9680     Result := IAuthBlockImpl(this).getPlugin();
9681     except
9682     on e: Exception do FbException.catchException(nil, e);
9683     end
9684     end;
9685    
9686     function IAuthBlockImpl_getSecurityDbDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9687     begin
9688     try
9689     Result := IAuthBlockImpl(this).getSecurityDb();
9690     except
9691     on e: Exception do FbException.catchException(nil, e);
9692     end
9693     end;
9694    
9695     function IAuthBlockImpl_getOriginalPluginDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9696     begin
9697     try
9698     Result := IAuthBlockImpl(this).getOriginalPlugin();
9699     except
9700     on e: Exception do FbException.catchException(nil, e);
9701     end
9702     end;
9703    
9704     function IAuthBlockImpl_nextDispatcher(this: IAuthBlock; status: IStatus): Boolean; cdecl;
9705     begin
9706     try
9707     Result := IAuthBlockImpl(this).next(status);
9708     except
9709     on e: Exception do FbException.catchException(status, e);
9710     end
9711     end;
9712    
9713     function IAuthBlockImpl_firstDispatcher(this: IAuthBlock; status: IStatus): Boolean; cdecl;
9714     begin
9715     try
9716     Result := IAuthBlockImpl(this).first(status);
9717     except
9718     on e: Exception do FbException.catchException(status, e);
9719     end
9720     end;
9721    
9722     var
9723     IAuthBlockImpl_vTable: AuthBlockVTable;
9724    
9725     constructor IAuthBlockImpl.create;
9726     begin
9727     vTable := IAuthBlockImpl_vTable;
9728     end;
9729    
9730 tony 45 procedure IWireCryptPluginImpl_addRefDispatcher(this: IWireCryptPlugin); cdecl;
9731     begin
9732     try
9733     IWireCryptPluginImpl(this).addRef();
9734     except
9735     on e: Exception do FbException.catchException(nil, e);
9736     end
9737     end;
9738    
9739     function IWireCryptPluginImpl_releaseDispatcher(this: IWireCryptPlugin): Integer; cdecl;
9740     begin
9741     try
9742     Result := IWireCryptPluginImpl(this).release();
9743     except
9744     on e: Exception do FbException.catchException(nil, e);
9745     end
9746     end;
9747    
9748     procedure IWireCryptPluginImpl_setOwnerDispatcher(this: IWireCryptPlugin; r: IReferenceCounted); cdecl;
9749     begin
9750     try
9751     IWireCryptPluginImpl(this).setOwner(r);
9752     except
9753     on e: Exception do FbException.catchException(nil, e);
9754     end
9755     end;
9756    
9757     function IWireCryptPluginImpl_getOwnerDispatcher(this: IWireCryptPlugin): IReferenceCounted; cdecl;
9758     begin
9759     try
9760     Result := IWireCryptPluginImpl(this).getOwner();
9761     except
9762     on e: Exception do FbException.catchException(nil, e);
9763     end
9764     end;
9765    
9766     function IWireCryptPluginImpl_getKnownTypesDispatcher(this: IWireCryptPlugin; status: IStatus): PAnsiChar; cdecl;
9767     begin
9768     try
9769     Result := IWireCryptPluginImpl(this).getKnownTypes(status);
9770     except
9771     on e: Exception do FbException.catchException(status, e);
9772     end
9773     end;
9774    
9775     procedure IWireCryptPluginImpl_setKeyDispatcher(this: IWireCryptPlugin; status: IStatus; key: ICryptKey); cdecl;
9776     begin
9777     try
9778     IWireCryptPluginImpl(this).setKey(status, key);
9779     except
9780     on e: Exception do FbException.catchException(status, e);
9781     end
9782     end;
9783    
9784     procedure IWireCryptPluginImpl_encryptDispatcher(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9785     begin
9786     try
9787     IWireCryptPluginImpl(this).encrypt(status, length, from, to_);
9788     except
9789     on e: Exception do FbException.catchException(status, e);
9790     end
9791     end;
9792    
9793     procedure IWireCryptPluginImpl_decryptDispatcher(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9794     begin
9795     try
9796     IWireCryptPluginImpl(this).decrypt(status, length, from, to_);
9797     except
9798     on e: Exception do FbException.catchException(status, e);
9799     end
9800     end;
9801    
9802 tony 315 function IWireCryptPluginImpl_getSpecificDataDispatcher(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; cdecl;
9803     begin
9804     try
9805     Result := IWireCryptPluginImpl(this).getSpecificData(status, keyType, length);
9806     except
9807     on e: Exception do FbException.catchException(status, e);
9808     end
9809     end;
9810    
9811     procedure IWireCryptPluginImpl_setSpecificDataDispatcher(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); cdecl;
9812     begin
9813     try
9814     IWireCryptPluginImpl(this).setSpecificData(status, keyType, length, data);
9815     except
9816     on e: Exception do FbException.catchException(status, e);
9817     end
9818     end;
9819    
9820 tony 45 var
9821     IWireCryptPluginImpl_vTable: WireCryptPluginVTable;
9822    
9823     constructor IWireCryptPluginImpl.create;
9824     begin
9825     vTable := IWireCryptPluginImpl_vTable;
9826     end;
9827    
9828     function ICryptKeyCallbackImpl_callbackDispatcher(this: ICryptKeyCallback; dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; cdecl;
9829     begin
9830     try
9831     Result := ICryptKeyCallbackImpl(this).callback(dataLength, data, bufferLength, buffer);
9832     except
9833     on e: Exception do FbException.catchException(nil, e);
9834     end
9835     end;
9836    
9837     var
9838     ICryptKeyCallbackImpl_vTable: CryptKeyCallbackVTable;
9839    
9840     constructor ICryptKeyCallbackImpl.create;
9841     begin
9842     vTable := ICryptKeyCallbackImpl_vTable;
9843     end;
9844    
9845     procedure IKeyHolderPluginImpl_addRefDispatcher(this: IKeyHolderPlugin); cdecl;
9846     begin
9847     try
9848     IKeyHolderPluginImpl(this).addRef();
9849     except
9850     on e: Exception do FbException.catchException(nil, e);
9851     end
9852     end;
9853    
9854     function IKeyHolderPluginImpl_releaseDispatcher(this: IKeyHolderPlugin): Integer; cdecl;
9855     begin
9856     try
9857     Result := IKeyHolderPluginImpl(this).release();
9858     except
9859     on e: Exception do FbException.catchException(nil, e);
9860     end
9861     end;
9862    
9863     procedure IKeyHolderPluginImpl_setOwnerDispatcher(this: IKeyHolderPlugin; r: IReferenceCounted); cdecl;
9864     begin
9865     try
9866     IKeyHolderPluginImpl(this).setOwner(r);
9867     except
9868     on e: Exception do FbException.catchException(nil, e);
9869     end
9870     end;
9871    
9872     function IKeyHolderPluginImpl_getOwnerDispatcher(this: IKeyHolderPlugin): IReferenceCounted; cdecl;
9873     begin
9874     try
9875     Result := IKeyHolderPluginImpl(this).getOwner();
9876     except
9877     on e: Exception do FbException.catchException(nil, e);
9878     end
9879     end;
9880    
9881     function IKeyHolderPluginImpl_keyCallbackDispatcher(this: IKeyHolderPlugin; status: IStatus; callback: ICryptKeyCallback): Integer; cdecl;
9882     begin
9883     try
9884     Result := IKeyHolderPluginImpl(this).keyCallback(status, callback);
9885     except
9886     on e: Exception do FbException.catchException(status, e);
9887     end
9888     end;
9889    
9890     function IKeyHolderPluginImpl_keyHandleDispatcher(this: IKeyHolderPlugin; status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; cdecl;
9891     begin
9892     try
9893     Result := IKeyHolderPluginImpl(this).keyHandle(status, keyName);
9894     except
9895     on e: Exception do FbException.catchException(status, e);
9896     end
9897     end;
9898    
9899 tony 315 function IKeyHolderPluginImpl_useOnlyOwnKeysDispatcher(this: IKeyHolderPlugin; status: IStatus): Boolean; cdecl;
9900     begin
9901     try
9902     Result := IKeyHolderPluginImpl(this).useOnlyOwnKeys(status);
9903     except
9904     on e: Exception do FbException.catchException(status, e);
9905     end
9906     end;
9907    
9908     function IKeyHolderPluginImpl_chainHandleDispatcher(this: IKeyHolderPlugin; status: IStatus): ICryptKeyCallback; cdecl;
9909     begin
9910     try
9911     Result := IKeyHolderPluginImpl(this).chainHandle(status);
9912     except
9913     on e: Exception do FbException.catchException(status, e);
9914     end
9915     end;
9916    
9917 tony 45 var
9918     IKeyHolderPluginImpl_vTable: KeyHolderPluginVTable;
9919    
9920     constructor IKeyHolderPluginImpl.create;
9921     begin
9922     vTable := IKeyHolderPluginImpl_vTable;
9923     end;
9924    
9925 tony 315 procedure IDbCryptInfoImpl_addRefDispatcher(this: IDbCryptInfo); cdecl;
9926     begin
9927     try
9928     IDbCryptInfoImpl(this).addRef();
9929     except
9930     on e: Exception do FbException.catchException(nil, e);
9931     end
9932     end;
9933    
9934     function IDbCryptInfoImpl_releaseDispatcher(this: IDbCryptInfo): Integer; cdecl;
9935     begin
9936     try
9937     Result := IDbCryptInfoImpl(this).release();
9938     except
9939     on e: Exception do FbException.catchException(nil, e);
9940     end
9941     end;
9942    
9943     function IDbCryptInfoImpl_getDatabaseFullPathDispatcher(this: IDbCryptInfo; status: IStatus): PAnsiChar; cdecl;
9944     begin
9945     try
9946     Result := IDbCryptInfoImpl(this).getDatabaseFullPath(status);
9947     except
9948     on e: Exception do FbException.catchException(status, e);
9949     end
9950     end;
9951    
9952     var
9953     IDbCryptInfoImpl_vTable: DbCryptInfoVTable;
9954    
9955     constructor IDbCryptInfoImpl.create;
9956     begin
9957     vTable := IDbCryptInfoImpl_vTable;
9958     end;
9959    
9960 tony 45 procedure IDbCryptPluginImpl_addRefDispatcher(this: IDbCryptPlugin); cdecl;
9961     begin
9962     try
9963     IDbCryptPluginImpl(this).addRef();
9964     except
9965     on e: Exception do FbException.catchException(nil, e);
9966     end
9967     end;
9968    
9969     function IDbCryptPluginImpl_releaseDispatcher(this: IDbCryptPlugin): Integer; cdecl;
9970     begin
9971     try
9972     Result := IDbCryptPluginImpl(this).release();
9973     except
9974     on e: Exception do FbException.catchException(nil, e);
9975     end
9976     end;
9977    
9978     procedure IDbCryptPluginImpl_setOwnerDispatcher(this: IDbCryptPlugin; r: IReferenceCounted); cdecl;
9979     begin
9980     try
9981     IDbCryptPluginImpl(this).setOwner(r);
9982     except
9983     on e: Exception do FbException.catchException(nil, e);
9984     end
9985     end;
9986    
9987     function IDbCryptPluginImpl_getOwnerDispatcher(this: IDbCryptPlugin): IReferenceCounted; cdecl;
9988     begin
9989     try
9990     Result := IDbCryptPluginImpl(this).getOwner();
9991     except
9992     on e: Exception do FbException.catchException(nil, e);
9993     end
9994     end;
9995    
9996     procedure IDbCryptPluginImpl_setKeyDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); cdecl;
9997     begin
9998     try
9999     IDbCryptPluginImpl(this).setKey(status, length, sources, keyName);
10000     except
10001     on e: Exception do FbException.catchException(status, e);
10002     end
10003     end;
10004    
10005     procedure IDbCryptPluginImpl_encryptDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
10006     begin
10007     try
10008     IDbCryptPluginImpl(this).encrypt(status, length, from, to_);
10009     except
10010     on e: Exception do FbException.catchException(status, e);
10011     end
10012     end;
10013    
10014     procedure IDbCryptPluginImpl_decryptDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
10015     begin
10016     try
10017     IDbCryptPluginImpl(this).decrypt(status, length, from, to_);
10018     except
10019     on e: Exception do FbException.catchException(status, e);
10020     end
10021     end;
10022    
10023 tony 315 procedure IDbCryptPluginImpl_setInfoDispatcher(this: IDbCryptPlugin; status: IStatus; info: IDbCryptInfo); cdecl;
10024     begin
10025     try
10026     IDbCryptPluginImpl(this).setInfo(status, info);
10027     except
10028     on e: Exception do FbException.catchException(status, e);
10029     end
10030     end;
10031    
10032 tony 45 var
10033     IDbCryptPluginImpl_vTable: DbCryptPluginVTable;
10034    
10035     constructor IDbCryptPluginImpl.create;
10036     begin
10037     vTable := IDbCryptPluginImpl_vTable;
10038     end;
10039    
10040     function IExternalContextImpl_getMasterDispatcher(this: IExternalContext): IMaster; cdecl;
10041     begin
10042     try
10043     Result := IExternalContextImpl(this).getMaster();
10044     except
10045     on e: Exception do FbException.catchException(nil, e);
10046     end
10047     end;
10048    
10049     function IExternalContextImpl_getEngineDispatcher(this: IExternalContext; status: IStatus): IExternalEngine; cdecl;
10050     begin
10051     try
10052     Result := IExternalContextImpl(this).getEngine(status);
10053     except
10054     on e: Exception do FbException.catchException(status, e);
10055     end
10056     end;
10057    
10058     function IExternalContextImpl_getAttachmentDispatcher(this: IExternalContext; status: IStatus): IAttachment; cdecl;
10059     begin
10060     try
10061     Result := IExternalContextImpl(this).getAttachment(status);
10062     except
10063     on e: Exception do FbException.catchException(status, e);
10064     end
10065     end;
10066    
10067     function IExternalContextImpl_getTransactionDispatcher(this: IExternalContext; status: IStatus): ITransaction; cdecl;
10068     begin
10069     try
10070     Result := IExternalContextImpl(this).getTransaction(status);
10071     except
10072     on e: Exception do FbException.catchException(status, e);
10073     end
10074     end;
10075    
10076     function IExternalContextImpl_getUserNameDispatcher(this: IExternalContext): PAnsiChar; cdecl;
10077     begin
10078     try
10079     Result := IExternalContextImpl(this).getUserName();
10080     except
10081     on e: Exception do FbException.catchException(nil, e);
10082     end
10083     end;
10084    
10085     function IExternalContextImpl_getDatabaseNameDispatcher(this: IExternalContext): PAnsiChar; cdecl;
10086     begin
10087     try
10088     Result := IExternalContextImpl(this).getDatabaseName();
10089     except
10090     on e: Exception do FbException.catchException(nil, e);
10091     end
10092     end;
10093    
10094     function IExternalContextImpl_getClientCharSetDispatcher(this: IExternalContext): PAnsiChar; cdecl;
10095     begin
10096     try
10097     Result := IExternalContextImpl(this).getClientCharSet();
10098     except
10099     on e: Exception do FbException.catchException(nil, e);
10100     end
10101     end;
10102    
10103     function IExternalContextImpl_obtainInfoCodeDispatcher(this: IExternalContext): Integer; cdecl;
10104     begin
10105     try
10106     Result := IExternalContextImpl(this).obtainInfoCode();
10107     except
10108     on e: Exception do FbException.catchException(nil, e);
10109     end
10110     end;
10111    
10112     function IExternalContextImpl_getInfoDispatcher(this: IExternalContext; code: Integer): Pointer; cdecl;
10113     begin
10114     try
10115     Result := IExternalContextImpl(this).getInfo(code);
10116     except
10117     on e: Exception do FbException.catchException(nil, e);
10118     end
10119     end;
10120    
10121     function IExternalContextImpl_setInfoDispatcher(this: IExternalContext; code: Integer; value: Pointer): Pointer; cdecl;
10122     begin
10123     try
10124     Result := IExternalContextImpl(this).setInfo(code, value);
10125     except
10126     on e: Exception do FbException.catchException(nil, e);
10127     end
10128     end;
10129    
10130     var
10131     IExternalContextImpl_vTable: ExternalContextVTable;
10132    
10133     constructor IExternalContextImpl.create;
10134     begin
10135     vTable := IExternalContextImpl_vTable;
10136     end;
10137    
10138     procedure IExternalResultSetImpl_disposeDispatcher(this: IExternalResultSet); cdecl;
10139     begin
10140     try
10141     IExternalResultSetImpl(this).dispose();
10142     except
10143     on e: Exception do FbException.catchException(nil, e);
10144     end
10145     end;
10146    
10147     function IExternalResultSetImpl_fetchDispatcher(this: IExternalResultSet; status: IStatus): Boolean; cdecl;
10148     begin
10149     try
10150     Result := IExternalResultSetImpl(this).fetch(status);
10151     except
10152     on e: Exception do FbException.catchException(status, e);
10153     end
10154     end;
10155    
10156     var
10157     IExternalResultSetImpl_vTable: ExternalResultSetVTable;
10158    
10159     constructor IExternalResultSetImpl.create;
10160     begin
10161     vTable := IExternalResultSetImpl_vTable;
10162     end;
10163    
10164     procedure IExternalFunctionImpl_disposeDispatcher(this: IExternalFunction); cdecl;
10165     begin
10166     try
10167     IExternalFunctionImpl(this).dispose();
10168     except
10169     on e: Exception do FbException.catchException(nil, e);
10170     end
10171     end;
10172    
10173     procedure IExternalFunctionImpl_getCharSetDispatcher(this: IExternalFunction; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10174     begin
10175     try
10176     IExternalFunctionImpl(this).getCharSet(status, context, name, nameSize);
10177     except
10178     on e: Exception do FbException.catchException(status, e);
10179     end
10180     end;
10181    
10182     procedure IExternalFunctionImpl_executeDispatcher(this: IExternalFunction; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); cdecl;
10183     begin
10184     try
10185     IExternalFunctionImpl(this).execute(status, context, inMsg, outMsg);
10186     except
10187     on e: Exception do FbException.catchException(status, e);
10188     end
10189     end;
10190    
10191     var
10192     IExternalFunctionImpl_vTable: ExternalFunctionVTable;
10193    
10194     constructor IExternalFunctionImpl.create;
10195     begin
10196     vTable := IExternalFunctionImpl_vTable;
10197     end;
10198    
10199     procedure IExternalProcedureImpl_disposeDispatcher(this: IExternalProcedure); cdecl;
10200     begin
10201     try
10202     IExternalProcedureImpl(this).dispose();
10203     except
10204     on e: Exception do FbException.catchException(nil, e);
10205     end
10206     end;
10207    
10208     procedure IExternalProcedureImpl_getCharSetDispatcher(this: IExternalProcedure; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10209     begin
10210     try
10211     IExternalProcedureImpl(this).getCharSet(status, context, name, nameSize);
10212     except
10213     on e: Exception do FbException.catchException(status, e);
10214     end
10215     end;
10216    
10217     function IExternalProcedureImpl_openDispatcher(this: IExternalProcedure; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; cdecl;
10218     begin
10219     try
10220     Result := IExternalProcedureImpl(this).open(status, context, inMsg, outMsg);
10221     except
10222     on e: Exception do FbException.catchException(status, e);
10223     end
10224     end;
10225    
10226     var
10227     IExternalProcedureImpl_vTable: ExternalProcedureVTable;
10228    
10229     constructor IExternalProcedureImpl.create;
10230     begin
10231     vTable := IExternalProcedureImpl_vTable;
10232     end;
10233    
10234     procedure IExternalTriggerImpl_disposeDispatcher(this: IExternalTrigger); cdecl;
10235     begin
10236     try
10237     IExternalTriggerImpl(this).dispose();
10238     except
10239     on e: Exception do FbException.catchException(nil, e);
10240     end
10241     end;
10242    
10243     procedure IExternalTriggerImpl_getCharSetDispatcher(this: IExternalTrigger; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10244     begin
10245     try
10246     IExternalTriggerImpl(this).getCharSet(status, context, name, nameSize);
10247     except
10248     on e: Exception do FbException.catchException(status, e);
10249     end
10250     end;
10251    
10252     procedure IExternalTriggerImpl_executeDispatcher(this: IExternalTrigger; status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); cdecl;
10253     begin
10254     try
10255     IExternalTriggerImpl(this).execute(status, context, action, oldMsg, newMsg);
10256     except
10257     on e: Exception do FbException.catchException(status, e);
10258     end
10259     end;
10260    
10261     var
10262     IExternalTriggerImpl_vTable: ExternalTriggerVTable;
10263    
10264     constructor IExternalTriggerImpl.create;
10265     begin
10266     vTable := IExternalTriggerImpl_vTable;
10267     end;
10268    
10269     function IRoutineMetadataImpl_getPackageDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10270     begin
10271     try
10272     Result := IRoutineMetadataImpl(this).getPackage(status);
10273     except
10274     on e: Exception do FbException.catchException(status, e);
10275     end
10276     end;
10277    
10278     function IRoutineMetadataImpl_getNameDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10279     begin
10280     try
10281     Result := IRoutineMetadataImpl(this).getName(status);
10282     except
10283     on e: Exception do FbException.catchException(status, e);
10284     end
10285     end;
10286    
10287     function IRoutineMetadataImpl_getEntryPointDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10288     begin
10289     try
10290     Result := IRoutineMetadataImpl(this).getEntryPoint(status);
10291     except
10292     on e: Exception do FbException.catchException(status, e);
10293     end
10294     end;
10295    
10296     function IRoutineMetadataImpl_getBodyDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10297     begin
10298     try
10299     Result := IRoutineMetadataImpl(this).getBody(status);
10300     except
10301     on e: Exception do FbException.catchException(status, e);
10302     end
10303     end;
10304    
10305     function IRoutineMetadataImpl_getInputMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10306     begin
10307     try
10308     Result := IRoutineMetadataImpl(this).getInputMetadata(status);
10309     except
10310     on e: Exception do FbException.catchException(status, e);
10311     end
10312     end;
10313    
10314     function IRoutineMetadataImpl_getOutputMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10315     begin
10316     try
10317     Result := IRoutineMetadataImpl(this).getOutputMetadata(status);
10318     except
10319     on e: Exception do FbException.catchException(status, e);
10320     end
10321     end;
10322    
10323     function IRoutineMetadataImpl_getTriggerMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10324     begin
10325     try
10326     Result := IRoutineMetadataImpl(this).getTriggerMetadata(status);
10327     except
10328     on e: Exception do FbException.catchException(status, e);
10329     end
10330     end;
10331    
10332     function IRoutineMetadataImpl_getTriggerTableDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10333     begin
10334     try
10335     Result := IRoutineMetadataImpl(this).getTriggerTable(status);
10336     except
10337     on e: Exception do FbException.catchException(status, e);
10338     end
10339     end;
10340    
10341     function IRoutineMetadataImpl_getTriggerTypeDispatcher(this: IRoutineMetadata; status: IStatus): Cardinal; cdecl;
10342     begin
10343     try
10344     Result := IRoutineMetadataImpl(this).getTriggerType(status);
10345     except
10346     on e: Exception do FbException.catchException(status, e);
10347     end
10348     end;
10349    
10350     var
10351     IRoutineMetadataImpl_vTable: RoutineMetadataVTable;
10352    
10353     constructor IRoutineMetadataImpl.create;
10354     begin
10355     vTable := IRoutineMetadataImpl_vTable;
10356     end;
10357    
10358     procedure IExternalEngineImpl_addRefDispatcher(this: IExternalEngine); cdecl;
10359     begin
10360     try
10361     IExternalEngineImpl(this).addRef();
10362     except
10363     on e: Exception do FbException.catchException(nil, e);
10364     end
10365     end;
10366    
10367     function IExternalEngineImpl_releaseDispatcher(this: IExternalEngine): Integer; cdecl;
10368     begin
10369     try
10370     Result := IExternalEngineImpl(this).release();
10371     except
10372     on e: Exception do FbException.catchException(nil, e);
10373     end
10374     end;
10375    
10376     procedure IExternalEngineImpl_setOwnerDispatcher(this: IExternalEngine; r: IReferenceCounted); cdecl;
10377     begin
10378     try
10379     IExternalEngineImpl(this).setOwner(r);
10380     except
10381     on e: Exception do FbException.catchException(nil, e);
10382     end
10383     end;
10384    
10385     function IExternalEngineImpl_getOwnerDispatcher(this: IExternalEngine): IReferenceCounted; cdecl;
10386     begin
10387     try
10388     Result := IExternalEngineImpl(this).getOwner();
10389     except
10390     on e: Exception do FbException.catchException(nil, e);
10391     end
10392     end;
10393    
10394     procedure IExternalEngineImpl_openDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); cdecl;
10395     begin
10396     try
10397     IExternalEngineImpl(this).open(status, context, charSet, charSetSize);
10398     except
10399     on e: Exception do FbException.catchException(status, e);
10400     end
10401     end;
10402    
10403     procedure IExternalEngineImpl_openAttachmentDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
10404     begin
10405     try
10406     IExternalEngineImpl(this).openAttachment(status, context);
10407     except
10408     on e: Exception do FbException.catchException(status, e);
10409     end
10410     end;
10411    
10412     procedure IExternalEngineImpl_closeAttachmentDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
10413     begin
10414     try
10415     IExternalEngineImpl(this).closeAttachment(status, context);
10416     except
10417     on e: Exception do FbException.catchException(status, e);
10418     end
10419     end;
10420    
10421     function IExternalEngineImpl_makeFunctionDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; cdecl;
10422     begin
10423     try
10424     Result := IExternalEngineImpl(this).makeFunction(status, context, metadata, inBuilder, outBuilder);
10425     except
10426     on e: Exception do FbException.catchException(status, e);
10427     end
10428     end;
10429    
10430     function IExternalEngineImpl_makeProcedureDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; cdecl;
10431     begin
10432     try
10433     Result := IExternalEngineImpl(this).makeProcedure(status, context, metadata, inBuilder, outBuilder);
10434     except
10435     on e: Exception do FbException.catchException(status, e);
10436     end
10437     end;
10438    
10439     function IExternalEngineImpl_makeTriggerDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; cdecl;
10440     begin
10441     try
10442     Result := IExternalEngineImpl(this).makeTrigger(status, context, metadata, fieldsBuilder);
10443     except
10444     on e: Exception do FbException.catchException(status, e);
10445     end
10446     end;
10447    
10448     var
10449     IExternalEngineImpl_vTable: ExternalEngineVTable;
10450    
10451     constructor IExternalEngineImpl.create;
10452     begin
10453     vTable := IExternalEngineImpl_vTable;
10454     end;
10455    
10456     procedure ITimerImpl_addRefDispatcher(this: ITimer); cdecl;
10457     begin
10458     try
10459     ITimerImpl(this).addRef();
10460     except
10461     on e: Exception do FbException.catchException(nil, e);
10462     end
10463     end;
10464    
10465     function ITimerImpl_releaseDispatcher(this: ITimer): Integer; cdecl;
10466     begin
10467     try
10468     Result := ITimerImpl(this).release();
10469     except
10470     on e: Exception do FbException.catchException(nil, e);
10471     end
10472     end;
10473    
10474     procedure ITimerImpl_handlerDispatcher(this: ITimer); cdecl;
10475     begin
10476     try
10477     ITimerImpl(this).handler();
10478     except
10479     on e: Exception do FbException.catchException(nil, e);
10480     end
10481     end;
10482    
10483     var
10484     ITimerImpl_vTable: TimerVTable;
10485    
10486     constructor ITimerImpl.create;
10487     begin
10488     vTable := ITimerImpl_vTable;
10489     end;
10490    
10491     procedure ITimerControlImpl_startDispatcher(this: ITimerControl; status: IStatus; timer: ITimer; microSeconds: QWord); cdecl;
10492     begin
10493     try
10494     ITimerControlImpl(this).start(status, timer, microSeconds);
10495     except
10496     on e: Exception do FbException.catchException(status, e);
10497     end
10498     end;
10499    
10500     procedure ITimerControlImpl_stopDispatcher(this: ITimerControl; status: IStatus; timer: ITimer); cdecl;
10501     begin
10502     try
10503     ITimerControlImpl(this).stop(status, timer);
10504     except
10505     on e: Exception do FbException.catchException(status, e);
10506     end
10507     end;
10508    
10509     var
10510     ITimerControlImpl_vTable: TimerControlVTable;
10511    
10512     constructor ITimerControlImpl.create;
10513     begin
10514     vTable := ITimerControlImpl_vTable;
10515     end;
10516    
10517     procedure IVersionCallbackImpl_callbackDispatcher(this: IVersionCallback; status: IStatus; text: PAnsiChar); cdecl;
10518     begin
10519     try
10520     IVersionCallbackImpl(this).callback(status, text);
10521     except
10522     on e: Exception do FbException.catchException(status, e);
10523     end
10524     end;
10525    
10526     var
10527     IVersionCallbackImpl_vTable: VersionCallbackVTable;
10528    
10529     constructor IVersionCallbackImpl.create;
10530     begin
10531     vTable := IVersionCallbackImpl_vTable;
10532     end;
10533    
10534     procedure IUtilImpl_getFbVersionDispatcher(this: IUtil; status: IStatus; att: IAttachment; callback: IVersionCallback); cdecl;
10535     begin
10536     try
10537     IUtilImpl(this).getFbVersion(status, att, callback);
10538     except
10539     on e: Exception do FbException.catchException(status, e);
10540     end
10541     end;
10542    
10543 tony 315 procedure IUtilImpl_loadBlobDispatcher(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10544 tony 45 begin
10545     try
10546     IUtilImpl(this).loadBlob(status, blobId, att, tra, file_, txt);
10547     except
10548     on e: Exception do FbException.catchException(status, e);
10549     end
10550     end;
10551    
10552 tony 315 procedure IUtilImpl_dumpBlobDispatcher(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10553 tony 45 begin
10554     try
10555     IUtilImpl(this).dumpBlob(status, blobId, att, tra, file_, txt);
10556     except
10557     on e: Exception do FbException.catchException(status, e);
10558     end
10559     end;
10560    
10561     procedure IUtilImpl_getPerfCountersDispatcher(this: IUtil; status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); cdecl;
10562     begin
10563     try
10564     IUtilImpl(this).getPerfCounters(status, att, countersSet, counters);
10565     except
10566     on e: Exception do FbException.catchException(status, e);
10567     end
10568     end;
10569    
10570     function IUtilImpl_executeCreateDatabaseDispatcher(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
10571     begin
10572     try
10573     Result := IUtilImpl(this).executeCreateDatabase(status, stmtLength, creatDBstatement, dialect, stmtIsCreateDb);
10574     except
10575     on e: Exception do FbException.catchException(status, e);
10576     end
10577     end;
10578    
10579     procedure IUtilImpl_decodeDateDispatcher(this: IUtil; date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); cdecl;
10580     begin
10581     try
10582     IUtilImpl(this).decodeDate(date, year, month, day);
10583     except
10584     on e: Exception do FbException.catchException(nil, e);
10585     end
10586     end;
10587    
10588     procedure IUtilImpl_decodeTimeDispatcher(this: IUtil; time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); cdecl;
10589     begin
10590     try
10591     IUtilImpl(this).decodeTime(time, hours, minutes, seconds, fractions);
10592     except
10593     on e: Exception do FbException.catchException(nil, e);
10594     end
10595     end;
10596    
10597     function IUtilImpl_encodeDateDispatcher(this: IUtil; year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; cdecl;
10598     begin
10599     try
10600     Result := IUtilImpl(this).encodeDate(year, month, day);
10601     except
10602     on e: Exception do FbException.catchException(nil, e);
10603     end
10604     end;
10605    
10606     function IUtilImpl_encodeTimeDispatcher(this: IUtil; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; cdecl;
10607     begin
10608     try
10609     Result := IUtilImpl(this).encodeTime(hours, minutes, seconds, fractions);
10610     except
10611     on e: Exception do FbException.catchException(nil, e);
10612     end
10613     end;
10614    
10615     function IUtilImpl_formatStatusDispatcher(this: IUtil; buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; cdecl;
10616     begin
10617     try
10618     Result := IUtilImpl(this).formatStatus(buffer, bufferSize, status);
10619     except
10620     on e: Exception do FbException.catchException(nil, e);
10621     end
10622     end;
10623    
10624     function IUtilImpl_getClientVersionDispatcher(this: IUtil): Cardinal; cdecl;
10625     begin
10626     try
10627     Result := IUtilImpl(this).getClientVersion();
10628     except
10629     on e: Exception do FbException.catchException(nil, e);
10630     end
10631     end;
10632    
10633     function IUtilImpl_getXpbBuilderDispatcher(this: IUtil; status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; cdecl;
10634     begin
10635     try
10636     Result := IUtilImpl(this).getXpbBuilder(status, kind, buf, len);
10637     except
10638     on e: Exception do FbException.catchException(status, e);
10639     end
10640     end;
10641    
10642     function IUtilImpl_setOffsetsDispatcher(this: IUtil; status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; cdecl;
10643     begin
10644     try
10645     Result := IUtilImpl(this).setOffsets(status, metadata, callback);
10646     except
10647     on e: Exception do FbException.catchException(status, e);
10648     end
10649     end;
10650    
10651 tony 315 function IUtilImpl_getDecFloat16Dispatcher(this: IUtil; status: IStatus): IDecFloat16; cdecl;
10652     begin
10653     try
10654     Result := IUtilImpl(this).getDecFloat16(status);
10655     except
10656     on e: Exception do FbException.catchException(status, e);
10657     end
10658     end;
10659    
10660     function IUtilImpl_getDecFloat34Dispatcher(this: IUtil; status: IStatus): IDecFloat34; cdecl;
10661     begin
10662     try
10663     Result := IUtilImpl(this).getDecFloat34(status);
10664     except
10665     on e: Exception do FbException.catchException(status, e);
10666     end
10667     end;
10668    
10669     procedure IUtilImpl_decodeTimeTzDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10670     begin
10671     try
10672     IUtilImpl(this).decodeTimeTz(status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10673     except
10674     on e: Exception do FbException.catchException(status, e);
10675     end
10676     end;
10677    
10678     procedure IUtilImpl_decodeTimeStampTzDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10679     begin
10680     try
10681     IUtilImpl(this).decodeTimeStampTz(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10682     except
10683     on e: Exception do FbException.catchException(status, e);
10684     end
10685     end;
10686    
10687     procedure IUtilImpl_encodeTimeTzDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
10688     begin
10689     try
10690     IUtilImpl(this).encodeTimeTz(status, timeTz, hours, minutes, seconds, fractions, timeZone);
10691     except
10692     on e: Exception do FbException.catchException(status, e);
10693     end
10694     end;
10695    
10696     procedure IUtilImpl_encodeTimeStampTzDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
10697     begin
10698     try
10699     IUtilImpl(this).encodeTimeStampTz(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZone);
10700     except
10701     on e: Exception do FbException.catchException(status, e);
10702     end
10703     end;
10704    
10705     function IUtilImpl_getInt128Dispatcher(this: IUtil; status: IStatus): IInt128; cdecl;
10706     begin
10707     try
10708     Result := IUtilImpl(this).getInt128(status);
10709     except
10710     on e: Exception do FbException.catchException(status, e);
10711     end
10712     end;
10713    
10714     procedure IUtilImpl_decodeTimeTzExDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10715     begin
10716     try
10717     IUtilImpl(this).decodeTimeTzEx(status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10718     except
10719     on e: Exception do FbException.catchException(status, e);
10720     end
10721     end;
10722    
10723     procedure IUtilImpl_decodeTimeStampTzExDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10724     begin
10725     try
10726     IUtilImpl(this).decodeTimeStampTzEx(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10727     except
10728     on e: Exception do FbException.catchException(status, e);
10729     end
10730     end;
10731    
10732 tony 45 var
10733     IUtilImpl_vTable: UtilVTable;
10734    
10735     constructor IUtilImpl.create;
10736     begin
10737     vTable := IUtilImpl_vTable;
10738     end;
10739    
10740     procedure IOffsetsCallbackImpl_setOffsetDispatcher(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
10741     begin
10742     try
10743     IOffsetsCallbackImpl(this).setOffset(status, index, offset, nullOffset);
10744     except
10745     on e: Exception do FbException.catchException(status, e);
10746     end
10747     end;
10748    
10749     var
10750     IOffsetsCallbackImpl_vTable: OffsetsCallbackVTable;
10751    
10752     constructor IOffsetsCallbackImpl.create;
10753     begin
10754     vTable := IOffsetsCallbackImpl_vTable;
10755     end;
10756    
10757     procedure IXpbBuilderImpl_disposeDispatcher(this: IXpbBuilder); cdecl;
10758     begin
10759     try
10760     IXpbBuilderImpl(this).dispose();
10761     except
10762     on e: Exception do FbException.catchException(nil, e);
10763     end
10764     end;
10765    
10766     procedure IXpbBuilderImpl_clearDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10767     begin
10768     try
10769     IXpbBuilderImpl(this).clear(status);
10770     except
10771     on e: Exception do FbException.catchException(status, e);
10772     end
10773     end;
10774    
10775     procedure IXpbBuilderImpl_removeCurrentDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10776     begin
10777     try
10778     IXpbBuilderImpl(this).removeCurrent(status);
10779     except
10780     on e: Exception do FbException.catchException(status, e);
10781     end
10782     end;
10783    
10784     procedure IXpbBuilderImpl_insertIntDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; value: Integer); cdecl;
10785     begin
10786     try
10787     IXpbBuilderImpl(this).insertInt(status, tag, value);
10788     except
10789     on e: Exception do FbException.catchException(status, e);
10790     end
10791     end;
10792    
10793     procedure IXpbBuilderImpl_insertBigIntDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; value: Int64); cdecl;
10794     begin
10795     try
10796     IXpbBuilderImpl(this).insertBigInt(status, tag, value);
10797     except
10798     on e: Exception do FbException.catchException(status, e);
10799     end
10800     end;
10801    
10802     procedure IXpbBuilderImpl_insertBytesDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); cdecl;
10803     begin
10804     try
10805     IXpbBuilderImpl(this).insertBytes(status, tag, bytes, length);
10806     except
10807     on e: Exception do FbException.catchException(status, e);
10808     end
10809     end;
10810    
10811     procedure IXpbBuilderImpl_insertStringDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; str: PAnsiChar); cdecl;
10812     begin
10813     try
10814     IXpbBuilderImpl(this).insertString(status, tag, str);
10815     except
10816     on e: Exception do FbException.catchException(status, e);
10817     end
10818     end;
10819    
10820     procedure IXpbBuilderImpl_insertTagDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte); cdecl;
10821     begin
10822     try
10823     IXpbBuilderImpl(this).insertTag(status, tag);
10824     except
10825     on e: Exception do FbException.catchException(status, e);
10826     end
10827     end;
10828    
10829     function IXpbBuilderImpl_isEofDispatcher(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
10830     begin
10831     try
10832     Result := IXpbBuilderImpl(this).isEof(status);
10833     except
10834     on e: Exception do FbException.catchException(status, e);
10835     end
10836     end;
10837    
10838     procedure IXpbBuilderImpl_moveNextDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10839     begin
10840     try
10841     IXpbBuilderImpl(this).moveNext(status);
10842     except
10843     on e: Exception do FbException.catchException(status, e);
10844     end
10845     end;
10846    
10847     procedure IXpbBuilderImpl_rewindDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10848     begin
10849     try
10850     IXpbBuilderImpl(this).rewind(status);
10851     except
10852     on e: Exception do FbException.catchException(status, e);
10853     end
10854     end;
10855    
10856     function IXpbBuilderImpl_findFirstDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte): Boolean; cdecl;
10857     begin
10858     try
10859     Result := IXpbBuilderImpl(this).findFirst(status, tag);
10860     except
10861     on e: Exception do FbException.catchException(status, e);
10862     end
10863     end;
10864    
10865     function IXpbBuilderImpl_findNextDispatcher(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
10866     begin
10867     try
10868     Result := IXpbBuilderImpl(this).findNext(status);
10869     except
10870     on e: Exception do FbException.catchException(status, e);
10871     end
10872     end;
10873    
10874     function IXpbBuilderImpl_getTagDispatcher(this: IXpbBuilder; status: IStatus): Byte; cdecl;
10875     begin
10876     try
10877     Result := IXpbBuilderImpl(this).getTag(status);
10878     except
10879     on e: Exception do FbException.catchException(status, e);
10880     end
10881     end;
10882    
10883     function IXpbBuilderImpl_getLengthDispatcher(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
10884     begin
10885     try
10886     Result := IXpbBuilderImpl(this).getLength(status);
10887     except
10888     on e: Exception do FbException.catchException(status, e);
10889     end
10890     end;
10891    
10892     function IXpbBuilderImpl_getIntDispatcher(this: IXpbBuilder; status: IStatus): Integer; cdecl;
10893     begin
10894     try
10895     Result := IXpbBuilderImpl(this).getInt(status);
10896     except
10897     on e: Exception do FbException.catchException(status, e);
10898     end
10899     end;
10900    
10901     function IXpbBuilderImpl_getBigIntDispatcher(this: IXpbBuilder; status: IStatus): Int64; cdecl;
10902     begin
10903     try
10904     Result := IXpbBuilderImpl(this).getBigInt(status);
10905     except
10906     on e: Exception do FbException.catchException(status, e);
10907     end
10908     end;
10909    
10910     function IXpbBuilderImpl_getStringDispatcher(this: IXpbBuilder; status: IStatus): PAnsiChar; cdecl;
10911     begin
10912     try
10913     Result := IXpbBuilderImpl(this).getString(status);
10914     except
10915     on e: Exception do FbException.catchException(status, e);
10916     end
10917     end;
10918    
10919     function IXpbBuilderImpl_getBytesDispatcher(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
10920     begin
10921     try
10922     Result := IXpbBuilderImpl(this).getBytes(status);
10923     except
10924     on e: Exception do FbException.catchException(status, e);
10925     end
10926     end;
10927    
10928     function IXpbBuilderImpl_getBufferLengthDispatcher(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
10929     begin
10930     try
10931     Result := IXpbBuilderImpl(this).getBufferLength(status);
10932     except
10933     on e: Exception do FbException.catchException(status, e);
10934     end
10935     end;
10936    
10937     function IXpbBuilderImpl_getBufferDispatcher(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
10938     begin
10939     try
10940     Result := IXpbBuilderImpl(this).getBuffer(status);
10941     except
10942     on e: Exception do FbException.catchException(status, e);
10943     end
10944     end;
10945    
10946     var
10947     IXpbBuilderImpl_vTable: XpbBuilderVTable;
10948    
10949     constructor IXpbBuilderImpl.create;
10950     begin
10951     vTable := IXpbBuilderImpl_vTable;
10952     end;
10953    
10954     function ITraceConnectionImpl_getKindDispatcher(this: ITraceConnection): Cardinal; cdecl;
10955     begin
10956     try
10957     Result := ITraceConnectionImpl(this).getKind();
10958     except
10959     on e: Exception do FbException.catchException(nil, e);
10960     end
10961     end;
10962    
10963     function ITraceConnectionImpl_getProcessIDDispatcher(this: ITraceConnection): Integer; cdecl;
10964     begin
10965     try
10966     Result := ITraceConnectionImpl(this).getProcessID();
10967     except
10968     on e: Exception do FbException.catchException(nil, e);
10969     end
10970     end;
10971    
10972     function ITraceConnectionImpl_getUserNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10973     begin
10974     try
10975     Result := ITraceConnectionImpl(this).getUserName();
10976     except
10977     on e: Exception do FbException.catchException(nil, e);
10978     end
10979     end;
10980    
10981     function ITraceConnectionImpl_getRoleNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10982     begin
10983     try
10984     Result := ITraceConnectionImpl(this).getRoleName();
10985     except
10986     on e: Exception do FbException.catchException(nil, e);
10987     end
10988     end;
10989    
10990     function ITraceConnectionImpl_getCharSetDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10991     begin
10992     try
10993     Result := ITraceConnectionImpl(this).getCharSet();
10994     except
10995     on e: Exception do FbException.catchException(nil, e);
10996     end
10997     end;
10998    
10999     function ITraceConnectionImpl_getRemoteProtocolDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
11000     begin
11001     try
11002     Result := ITraceConnectionImpl(this).getRemoteProtocol();
11003     except
11004     on e: Exception do FbException.catchException(nil, e);
11005     end
11006     end;
11007    
11008     function ITraceConnectionImpl_getRemoteAddressDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
11009     begin
11010     try
11011     Result := ITraceConnectionImpl(this).getRemoteAddress();
11012     except
11013     on e: Exception do FbException.catchException(nil, e);
11014     end
11015     end;
11016    
11017     function ITraceConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceConnection): Integer; cdecl;
11018     begin
11019     try
11020     Result := ITraceConnectionImpl(this).getRemoteProcessID();
11021     except
11022     on e: Exception do FbException.catchException(nil, e);
11023     end
11024     end;
11025    
11026     function ITraceConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
11027     begin
11028     try
11029     Result := ITraceConnectionImpl(this).getRemoteProcessName();
11030     except
11031     on e: Exception do FbException.catchException(nil, e);
11032     end
11033     end;
11034    
11035     var
11036     ITraceConnectionImpl_vTable: TraceConnectionVTable;
11037    
11038     constructor ITraceConnectionImpl.create;
11039     begin
11040     vTable := ITraceConnectionImpl_vTable;
11041     end;
11042    
11043     function ITraceDatabaseConnectionImpl_getKindDispatcher(this: ITraceDatabaseConnection): Cardinal; cdecl;
11044     begin
11045     try
11046     Result := ITraceDatabaseConnectionImpl(this).getKind();
11047     except
11048     on e: Exception do FbException.catchException(nil, e);
11049     end
11050     end;
11051    
11052     function ITraceDatabaseConnectionImpl_getProcessIDDispatcher(this: ITraceDatabaseConnection): Integer; cdecl;
11053     begin
11054     try
11055     Result := ITraceDatabaseConnectionImpl(this).getProcessID();
11056     except
11057     on e: Exception do FbException.catchException(nil, e);
11058     end
11059     end;
11060    
11061     function ITraceDatabaseConnectionImpl_getUserNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11062     begin
11063     try
11064     Result := ITraceDatabaseConnectionImpl(this).getUserName();
11065     except
11066     on e: Exception do FbException.catchException(nil, e);
11067     end
11068     end;
11069    
11070     function ITraceDatabaseConnectionImpl_getRoleNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11071     begin
11072     try
11073     Result := ITraceDatabaseConnectionImpl(this).getRoleName();
11074     except
11075     on e: Exception do FbException.catchException(nil, e);
11076     end
11077     end;
11078    
11079     function ITraceDatabaseConnectionImpl_getCharSetDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11080     begin
11081     try
11082     Result := ITraceDatabaseConnectionImpl(this).getCharSet();
11083     except
11084     on e: Exception do FbException.catchException(nil, e);
11085     end
11086     end;
11087    
11088     function ITraceDatabaseConnectionImpl_getRemoteProtocolDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11089     begin
11090     try
11091     Result := ITraceDatabaseConnectionImpl(this).getRemoteProtocol();
11092     except
11093     on e: Exception do FbException.catchException(nil, e);
11094     end
11095     end;
11096    
11097     function ITraceDatabaseConnectionImpl_getRemoteAddressDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11098     begin
11099     try
11100     Result := ITraceDatabaseConnectionImpl(this).getRemoteAddress();
11101     except
11102     on e: Exception do FbException.catchException(nil, e);
11103     end
11104     end;
11105    
11106     function ITraceDatabaseConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceDatabaseConnection): Integer; cdecl;
11107     begin
11108     try
11109     Result := ITraceDatabaseConnectionImpl(this).getRemoteProcessID();
11110     except
11111     on e: Exception do FbException.catchException(nil, e);
11112     end
11113     end;
11114    
11115     function ITraceDatabaseConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11116     begin
11117     try
11118     Result := ITraceDatabaseConnectionImpl(this).getRemoteProcessName();
11119     except
11120     on e: Exception do FbException.catchException(nil, e);
11121     end
11122     end;
11123    
11124     function ITraceDatabaseConnectionImpl_getConnectionIDDispatcher(this: ITraceDatabaseConnection): Int64; cdecl;
11125     begin
11126     try
11127     Result := ITraceDatabaseConnectionImpl(this).getConnectionID();
11128     except
11129     on e: Exception do FbException.catchException(nil, e);
11130     end
11131     end;
11132    
11133     function ITraceDatabaseConnectionImpl_getDatabaseNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
11134     begin
11135     try
11136     Result := ITraceDatabaseConnectionImpl(this).getDatabaseName();
11137     except
11138     on e: Exception do FbException.catchException(nil, e);
11139     end
11140     end;
11141    
11142     var
11143     ITraceDatabaseConnectionImpl_vTable: TraceDatabaseConnectionVTable;
11144    
11145     constructor ITraceDatabaseConnectionImpl.create;
11146     begin
11147     vTable := ITraceDatabaseConnectionImpl_vTable;
11148     end;
11149    
11150     function ITraceTransactionImpl_getTransactionIDDispatcher(this: ITraceTransaction): Int64; cdecl;
11151     begin
11152     try
11153     Result := ITraceTransactionImpl(this).getTransactionID();
11154     except
11155     on e: Exception do FbException.catchException(nil, e);
11156     end
11157     end;
11158    
11159     function ITraceTransactionImpl_getReadOnlyDispatcher(this: ITraceTransaction): Boolean; cdecl;
11160     begin
11161     try
11162     Result := ITraceTransactionImpl(this).getReadOnly();
11163     except
11164     on e: Exception do FbException.catchException(nil, e);
11165     end
11166     end;
11167    
11168     function ITraceTransactionImpl_getWaitDispatcher(this: ITraceTransaction): Integer; cdecl;
11169     begin
11170     try
11171     Result := ITraceTransactionImpl(this).getWait();
11172     except
11173     on e: Exception do FbException.catchException(nil, e);
11174     end
11175     end;
11176    
11177     function ITraceTransactionImpl_getIsolationDispatcher(this: ITraceTransaction): Cardinal; cdecl;
11178     begin
11179     try
11180     Result := ITraceTransactionImpl(this).getIsolation();
11181     except
11182     on e: Exception do FbException.catchException(nil, e);
11183     end
11184     end;
11185    
11186     function ITraceTransactionImpl_getPerfDispatcher(this: ITraceTransaction): PerformanceInfoPtr; cdecl;
11187     begin
11188     try
11189     Result := ITraceTransactionImpl(this).getPerf();
11190     except
11191     on e: Exception do FbException.catchException(nil, e);
11192     end
11193     end;
11194    
11195 tony 315 function ITraceTransactionImpl_getInitialIDDispatcher(this: ITraceTransaction): Int64; cdecl;
11196     begin
11197     try
11198     Result := ITraceTransactionImpl(this).getInitialID();
11199     except
11200     on e: Exception do FbException.catchException(nil, e);
11201     end
11202     end;
11203    
11204     function ITraceTransactionImpl_getPreviousIDDispatcher(this: ITraceTransaction): Int64; cdecl;
11205     begin
11206     try
11207     Result := ITraceTransactionImpl(this).getPreviousID();
11208     except
11209     on e: Exception do FbException.catchException(nil, e);
11210     end
11211     end;
11212    
11213 tony 45 var
11214     ITraceTransactionImpl_vTable: TraceTransactionVTable;
11215    
11216     constructor ITraceTransactionImpl.create;
11217     begin
11218     vTable := ITraceTransactionImpl_vTable;
11219     end;
11220    
11221     function ITraceParamsImpl_getCountDispatcher(this: ITraceParams): Cardinal; cdecl;
11222     begin
11223     try
11224     Result := ITraceParamsImpl(this).getCount();
11225     except
11226     on e: Exception do FbException.catchException(nil, e);
11227     end
11228     end;
11229    
11230     function ITraceParamsImpl_getParamDispatcher(this: ITraceParams; idx: Cardinal): dscPtr; cdecl;
11231     begin
11232     try
11233     Result := ITraceParamsImpl(this).getParam(idx);
11234     except
11235     on e: Exception do FbException.catchException(nil, e);
11236     end
11237     end;
11238    
11239 tony 315 function ITraceParamsImpl_getTextUTF8Dispatcher(this: ITraceParams; status: IStatus; idx: Cardinal): PAnsiChar; cdecl;
11240     begin
11241     try
11242     Result := ITraceParamsImpl(this).getTextUTF8(status, idx);
11243     except
11244     on e: Exception do FbException.catchException(status, e);
11245     end
11246     end;
11247    
11248 tony 45 var
11249     ITraceParamsImpl_vTable: TraceParamsVTable;
11250    
11251     constructor ITraceParamsImpl.create;
11252     begin
11253     vTable := ITraceParamsImpl_vTable;
11254     end;
11255    
11256     function ITraceStatementImpl_getStmtIDDispatcher(this: ITraceStatement): Int64; cdecl;
11257     begin
11258     try
11259     Result := ITraceStatementImpl(this).getStmtID();
11260     except
11261     on e: Exception do FbException.catchException(nil, e);
11262     end
11263     end;
11264    
11265     function ITraceStatementImpl_getPerfDispatcher(this: ITraceStatement): PerformanceInfoPtr; cdecl;
11266     begin
11267     try
11268     Result := ITraceStatementImpl(this).getPerf();
11269     except
11270     on e: Exception do FbException.catchException(nil, e);
11271     end
11272     end;
11273    
11274     var
11275     ITraceStatementImpl_vTable: TraceStatementVTable;
11276    
11277     constructor ITraceStatementImpl.create;
11278     begin
11279     vTable := ITraceStatementImpl_vTable;
11280     end;
11281    
11282     function ITraceSQLStatementImpl_getStmtIDDispatcher(this: ITraceSQLStatement): Int64; cdecl;
11283     begin
11284     try
11285     Result := ITraceSQLStatementImpl(this).getStmtID();
11286     except
11287     on e: Exception do FbException.catchException(nil, e);
11288     end
11289     end;
11290    
11291     function ITraceSQLStatementImpl_getPerfDispatcher(this: ITraceSQLStatement): PerformanceInfoPtr; cdecl;
11292     begin
11293     try
11294     Result := ITraceSQLStatementImpl(this).getPerf();
11295     except
11296     on e: Exception do FbException.catchException(nil, e);
11297     end
11298     end;
11299    
11300     function ITraceSQLStatementImpl_getTextDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11301     begin
11302     try
11303     Result := ITraceSQLStatementImpl(this).getText();
11304     except
11305     on e: Exception do FbException.catchException(nil, e);
11306     end
11307     end;
11308    
11309     function ITraceSQLStatementImpl_getPlanDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11310     begin
11311     try
11312     Result := ITraceSQLStatementImpl(this).getPlan();
11313     except
11314     on e: Exception do FbException.catchException(nil, e);
11315     end
11316     end;
11317    
11318     function ITraceSQLStatementImpl_getInputsDispatcher(this: ITraceSQLStatement): ITraceParams; cdecl;
11319     begin
11320     try
11321     Result := ITraceSQLStatementImpl(this).getInputs();
11322     except
11323     on e: Exception do FbException.catchException(nil, e);
11324     end
11325     end;
11326    
11327     function ITraceSQLStatementImpl_getTextUTF8Dispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11328     begin
11329     try
11330     Result := ITraceSQLStatementImpl(this).getTextUTF8();
11331     except
11332     on e: Exception do FbException.catchException(nil, e);
11333     end
11334     end;
11335    
11336     function ITraceSQLStatementImpl_getExplainedPlanDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11337     begin
11338     try
11339     Result := ITraceSQLStatementImpl(this).getExplainedPlan();
11340     except
11341     on e: Exception do FbException.catchException(nil, e);
11342     end
11343     end;
11344    
11345     var
11346     ITraceSQLStatementImpl_vTable: TraceSQLStatementVTable;
11347    
11348     constructor ITraceSQLStatementImpl.create;
11349     begin
11350     vTable := ITraceSQLStatementImpl_vTable;
11351     end;
11352    
11353     function ITraceBLRStatementImpl_getStmtIDDispatcher(this: ITraceBLRStatement): Int64; cdecl;
11354     begin
11355     try
11356     Result := ITraceBLRStatementImpl(this).getStmtID();
11357     except
11358     on e: Exception do FbException.catchException(nil, e);
11359     end
11360     end;
11361    
11362     function ITraceBLRStatementImpl_getPerfDispatcher(this: ITraceBLRStatement): PerformanceInfoPtr; cdecl;
11363     begin
11364     try
11365     Result := ITraceBLRStatementImpl(this).getPerf();
11366     except
11367     on e: Exception do FbException.catchException(nil, e);
11368     end
11369     end;
11370    
11371     function ITraceBLRStatementImpl_getDataDispatcher(this: ITraceBLRStatement): BytePtr; cdecl;
11372     begin
11373     try
11374     Result := ITraceBLRStatementImpl(this).getData();
11375     except
11376     on e: Exception do FbException.catchException(nil, e);
11377     end
11378     end;
11379    
11380     function ITraceBLRStatementImpl_getDataLengthDispatcher(this: ITraceBLRStatement): Cardinal; cdecl;
11381     begin
11382     try
11383     Result := ITraceBLRStatementImpl(this).getDataLength();
11384     except
11385     on e: Exception do FbException.catchException(nil, e);
11386     end
11387     end;
11388    
11389     function ITraceBLRStatementImpl_getTextDispatcher(this: ITraceBLRStatement): PAnsiChar; cdecl;
11390     begin
11391     try
11392     Result := ITraceBLRStatementImpl(this).getText();
11393     except
11394     on e: Exception do FbException.catchException(nil, e);
11395     end
11396     end;
11397    
11398     var
11399     ITraceBLRStatementImpl_vTable: TraceBLRStatementVTable;
11400    
11401     constructor ITraceBLRStatementImpl.create;
11402     begin
11403     vTable := ITraceBLRStatementImpl_vTable;
11404     end;
11405    
11406     function ITraceDYNRequestImpl_getDataDispatcher(this: ITraceDYNRequest): BytePtr; cdecl;
11407     begin
11408     try
11409     Result := ITraceDYNRequestImpl(this).getData();
11410     except
11411     on e: Exception do FbException.catchException(nil, e);
11412     end
11413     end;
11414    
11415     function ITraceDYNRequestImpl_getDataLengthDispatcher(this: ITraceDYNRequest): Cardinal; cdecl;
11416     begin
11417     try
11418     Result := ITraceDYNRequestImpl(this).getDataLength();
11419     except
11420     on e: Exception do FbException.catchException(nil, e);
11421     end
11422     end;
11423    
11424     function ITraceDYNRequestImpl_getTextDispatcher(this: ITraceDYNRequest): PAnsiChar; cdecl;
11425     begin
11426     try
11427     Result := ITraceDYNRequestImpl(this).getText();
11428     except
11429     on e: Exception do FbException.catchException(nil, e);
11430     end
11431     end;
11432    
11433     var
11434     ITraceDYNRequestImpl_vTable: TraceDYNRequestVTable;
11435    
11436     constructor ITraceDYNRequestImpl.create;
11437     begin
11438     vTable := ITraceDYNRequestImpl_vTable;
11439     end;
11440    
11441     function ITraceContextVariableImpl_getNameSpaceDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11442     begin
11443     try
11444     Result := ITraceContextVariableImpl(this).getNameSpace();
11445     except
11446     on e: Exception do FbException.catchException(nil, e);
11447     end
11448     end;
11449    
11450     function ITraceContextVariableImpl_getVarNameDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11451     begin
11452     try
11453     Result := ITraceContextVariableImpl(this).getVarName();
11454     except
11455     on e: Exception do FbException.catchException(nil, e);
11456     end
11457     end;
11458    
11459     function ITraceContextVariableImpl_getVarValueDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11460     begin
11461     try
11462     Result := ITraceContextVariableImpl(this).getVarValue();
11463     except
11464     on e: Exception do FbException.catchException(nil, e);
11465     end
11466     end;
11467    
11468     var
11469     ITraceContextVariableImpl_vTable: TraceContextVariableVTable;
11470    
11471     constructor ITraceContextVariableImpl.create;
11472     begin
11473     vTable := ITraceContextVariableImpl_vTable;
11474     end;
11475    
11476     function ITraceProcedureImpl_getProcNameDispatcher(this: ITraceProcedure): PAnsiChar; cdecl;
11477     begin
11478     try
11479     Result := ITraceProcedureImpl(this).getProcName();
11480     except
11481     on e: Exception do FbException.catchException(nil, e);
11482     end
11483     end;
11484    
11485     function ITraceProcedureImpl_getInputsDispatcher(this: ITraceProcedure): ITraceParams; cdecl;
11486     begin
11487     try
11488     Result := ITraceProcedureImpl(this).getInputs();
11489     except
11490     on e: Exception do FbException.catchException(nil, e);
11491     end
11492     end;
11493    
11494     function ITraceProcedureImpl_getPerfDispatcher(this: ITraceProcedure): PerformanceInfoPtr; cdecl;
11495     begin
11496     try
11497     Result := ITraceProcedureImpl(this).getPerf();
11498     except
11499     on e: Exception do FbException.catchException(nil, e);
11500     end
11501     end;
11502    
11503     var
11504     ITraceProcedureImpl_vTable: TraceProcedureVTable;
11505    
11506     constructor ITraceProcedureImpl.create;
11507     begin
11508     vTable := ITraceProcedureImpl_vTable;
11509     end;
11510    
11511     function ITraceFunctionImpl_getFuncNameDispatcher(this: ITraceFunction): PAnsiChar; cdecl;
11512     begin
11513     try
11514     Result := ITraceFunctionImpl(this).getFuncName();
11515     except
11516     on e: Exception do FbException.catchException(nil, e);
11517     end
11518     end;
11519    
11520     function ITraceFunctionImpl_getInputsDispatcher(this: ITraceFunction): ITraceParams; cdecl;
11521     begin
11522     try
11523     Result := ITraceFunctionImpl(this).getInputs();
11524     except
11525     on e: Exception do FbException.catchException(nil, e);
11526     end
11527     end;
11528    
11529     function ITraceFunctionImpl_getResultDispatcher(this: ITraceFunction): ITraceParams; cdecl;
11530     begin
11531     try
11532     Result := ITraceFunctionImpl(this).getResult();
11533     except
11534     on e: Exception do FbException.catchException(nil, e);
11535     end
11536     end;
11537    
11538     function ITraceFunctionImpl_getPerfDispatcher(this: ITraceFunction): PerformanceInfoPtr; cdecl;
11539     begin
11540     try
11541     Result := ITraceFunctionImpl(this).getPerf();
11542     except
11543     on e: Exception do FbException.catchException(nil, e);
11544     end
11545     end;
11546    
11547     var
11548     ITraceFunctionImpl_vTable: TraceFunctionVTable;
11549    
11550     constructor ITraceFunctionImpl.create;
11551     begin
11552     vTable := ITraceFunctionImpl_vTable;
11553     end;
11554    
11555     function ITraceTriggerImpl_getTriggerNameDispatcher(this: ITraceTrigger): PAnsiChar; cdecl;
11556     begin
11557     try
11558     Result := ITraceTriggerImpl(this).getTriggerName();
11559     except
11560     on e: Exception do FbException.catchException(nil, e);
11561     end
11562     end;
11563    
11564     function ITraceTriggerImpl_getRelationNameDispatcher(this: ITraceTrigger): PAnsiChar; cdecl;
11565     begin
11566     try
11567     Result := ITraceTriggerImpl(this).getRelationName();
11568     except
11569     on e: Exception do FbException.catchException(nil, e);
11570     end
11571     end;
11572    
11573     function ITraceTriggerImpl_getActionDispatcher(this: ITraceTrigger): Integer; cdecl;
11574     begin
11575     try
11576     Result := ITraceTriggerImpl(this).getAction();
11577     except
11578     on e: Exception do FbException.catchException(nil, e);
11579     end
11580     end;
11581    
11582     function ITraceTriggerImpl_getWhichDispatcher(this: ITraceTrigger): Integer; cdecl;
11583     begin
11584     try
11585     Result := ITraceTriggerImpl(this).getWhich();
11586     except
11587     on e: Exception do FbException.catchException(nil, e);
11588     end
11589     end;
11590    
11591     function ITraceTriggerImpl_getPerfDispatcher(this: ITraceTrigger): PerformanceInfoPtr; cdecl;
11592     begin
11593     try
11594     Result := ITraceTriggerImpl(this).getPerf();
11595     except
11596     on e: Exception do FbException.catchException(nil, e);
11597     end
11598     end;
11599    
11600     var
11601     ITraceTriggerImpl_vTable: TraceTriggerVTable;
11602    
11603     constructor ITraceTriggerImpl.create;
11604     begin
11605     vTable := ITraceTriggerImpl_vTable;
11606     end;
11607    
11608     function ITraceServiceConnectionImpl_getKindDispatcher(this: ITraceServiceConnection): Cardinal; cdecl;
11609     begin
11610     try
11611     Result := ITraceServiceConnectionImpl(this).getKind();
11612     except
11613     on e: Exception do FbException.catchException(nil, e);
11614     end
11615     end;
11616    
11617     function ITraceServiceConnectionImpl_getProcessIDDispatcher(this: ITraceServiceConnection): Integer; cdecl;
11618     begin
11619     try
11620     Result := ITraceServiceConnectionImpl(this).getProcessID();
11621     except
11622     on e: Exception do FbException.catchException(nil, e);
11623     end
11624     end;
11625    
11626     function ITraceServiceConnectionImpl_getUserNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11627     begin
11628     try
11629     Result := ITraceServiceConnectionImpl(this).getUserName();
11630     except
11631     on e: Exception do FbException.catchException(nil, e);
11632     end
11633     end;
11634    
11635     function ITraceServiceConnectionImpl_getRoleNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11636     begin
11637     try
11638     Result := ITraceServiceConnectionImpl(this).getRoleName();
11639     except
11640     on e: Exception do FbException.catchException(nil, e);
11641     end
11642     end;
11643    
11644     function ITraceServiceConnectionImpl_getCharSetDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11645     begin
11646     try
11647     Result := ITraceServiceConnectionImpl(this).getCharSet();
11648     except
11649     on e: Exception do FbException.catchException(nil, e);
11650     end
11651     end;
11652    
11653     function ITraceServiceConnectionImpl_getRemoteProtocolDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11654     begin
11655     try
11656     Result := ITraceServiceConnectionImpl(this).getRemoteProtocol();
11657     except
11658     on e: Exception do FbException.catchException(nil, e);
11659     end
11660     end;
11661    
11662     function ITraceServiceConnectionImpl_getRemoteAddressDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11663     begin
11664     try
11665     Result := ITraceServiceConnectionImpl(this).getRemoteAddress();
11666     except
11667     on e: Exception do FbException.catchException(nil, e);
11668     end
11669     end;
11670    
11671     function ITraceServiceConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceServiceConnection): Integer; cdecl;
11672     begin
11673     try
11674     Result := ITraceServiceConnectionImpl(this).getRemoteProcessID();
11675     except
11676     on e: Exception do FbException.catchException(nil, e);
11677     end
11678     end;
11679    
11680     function ITraceServiceConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11681     begin
11682     try
11683     Result := ITraceServiceConnectionImpl(this).getRemoteProcessName();
11684     except
11685     on e: Exception do FbException.catchException(nil, e);
11686     end
11687     end;
11688    
11689     function ITraceServiceConnectionImpl_getServiceIDDispatcher(this: ITraceServiceConnection): Pointer; cdecl;
11690     begin
11691     try
11692     Result := ITraceServiceConnectionImpl(this).getServiceID();
11693     except
11694     on e: Exception do FbException.catchException(nil, e);
11695     end
11696     end;
11697    
11698     function ITraceServiceConnectionImpl_getServiceMgrDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11699     begin
11700     try
11701     Result := ITraceServiceConnectionImpl(this).getServiceMgr();
11702     except
11703     on e: Exception do FbException.catchException(nil, e);
11704     end
11705     end;
11706    
11707     function ITraceServiceConnectionImpl_getServiceNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11708     begin
11709     try
11710     Result := ITraceServiceConnectionImpl(this).getServiceName();
11711     except
11712     on e: Exception do FbException.catchException(nil, e);
11713     end
11714     end;
11715    
11716     var
11717     ITraceServiceConnectionImpl_vTable: TraceServiceConnectionVTable;
11718    
11719     constructor ITraceServiceConnectionImpl.create;
11720     begin
11721     vTable := ITraceServiceConnectionImpl_vTable;
11722     end;
11723    
11724     function ITraceStatusVectorImpl_hasErrorDispatcher(this: ITraceStatusVector): Boolean; cdecl;
11725     begin
11726     try
11727     Result := ITraceStatusVectorImpl(this).hasError();
11728     except
11729     on e: Exception do FbException.catchException(nil, e);
11730     end
11731     end;
11732    
11733     function ITraceStatusVectorImpl_hasWarningDispatcher(this: ITraceStatusVector): Boolean; cdecl;
11734     begin
11735     try
11736     Result := ITraceStatusVectorImpl(this).hasWarning();
11737     except
11738     on e: Exception do FbException.catchException(nil, e);
11739     end
11740     end;
11741    
11742     function ITraceStatusVectorImpl_getStatusDispatcher(this: ITraceStatusVector): IStatus; cdecl;
11743     begin
11744     try
11745     Result := ITraceStatusVectorImpl(this).getStatus();
11746     except
11747     on e: Exception do FbException.catchException(nil, e);
11748     end
11749     end;
11750    
11751     function ITraceStatusVectorImpl_getTextDispatcher(this: ITraceStatusVector): PAnsiChar; cdecl;
11752     begin
11753     try
11754     Result := ITraceStatusVectorImpl(this).getText();
11755     except
11756     on e: Exception do FbException.catchException(nil, e);
11757     end
11758     end;
11759    
11760     var
11761     ITraceStatusVectorImpl_vTable: TraceStatusVectorVTable;
11762    
11763     constructor ITraceStatusVectorImpl.create;
11764     begin
11765     vTable := ITraceStatusVectorImpl_vTable;
11766     end;
11767    
11768     function ITraceSweepInfoImpl_getOITDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11769     begin
11770     try
11771     Result := ITraceSweepInfoImpl(this).getOIT();
11772     except
11773     on e: Exception do FbException.catchException(nil, e);
11774     end
11775     end;
11776    
11777     function ITraceSweepInfoImpl_getOSTDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11778     begin
11779     try
11780     Result := ITraceSweepInfoImpl(this).getOST();
11781     except
11782     on e: Exception do FbException.catchException(nil, e);
11783     end
11784     end;
11785    
11786     function ITraceSweepInfoImpl_getOATDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11787     begin
11788     try
11789     Result := ITraceSweepInfoImpl(this).getOAT();
11790     except
11791     on e: Exception do FbException.catchException(nil, e);
11792     end
11793     end;
11794    
11795     function ITraceSweepInfoImpl_getNextDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11796     begin
11797     try
11798     Result := ITraceSweepInfoImpl(this).getNext();
11799     except
11800     on e: Exception do FbException.catchException(nil, e);
11801     end
11802     end;
11803    
11804     function ITraceSweepInfoImpl_getPerfDispatcher(this: ITraceSweepInfo): PerformanceInfoPtr; cdecl;
11805     begin
11806     try
11807     Result := ITraceSweepInfoImpl(this).getPerf();
11808     except
11809     on e: Exception do FbException.catchException(nil, e);
11810     end
11811     end;
11812    
11813     var
11814     ITraceSweepInfoImpl_vTable: TraceSweepInfoVTable;
11815    
11816     constructor ITraceSweepInfoImpl.create;
11817     begin
11818     vTable := ITraceSweepInfoImpl_vTable;
11819     end;
11820    
11821     procedure ITraceLogWriterImpl_addRefDispatcher(this: ITraceLogWriter); cdecl;
11822     begin
11823     try
11824     ITraceLogWriterImpl(this).addRef();
11825     except
11826     on e: Exception do FbException.catchException(nil, e);
11827     end
11828     end;
11829    
11830     function ITraceLogWriterImpl_releaseDispatcher(this: ITraceLogWriter): Integer; cdecl;
11831     begin
11832     try
11833     Result := ITraceLogWriterImpl(this).release();
11834     except
11835     on e: Exception do FbException.catchException(nil, e);
11836     end
11837     end;
11838    
11839     function ITraceLogWriterImpl_writeDispatcher(this: ITraceLogWriter; buf: Pointer; size: Cardinal): Cardinal; cdecl;
11840     begin
11841     try
11842     Result := ITraceLogWriterImpl(this).write(buf, size);
11843     except
11844     on e: Exception do FbException.catchException(nil, e);
11845     end
11846     end;
11847    
11848 tony 315 function ITraceLogWriterImpl_write_sDispatcher(this: ITraceLogWriter; status: IStatus; buf: Pointer; size: Cardinal): Cardinal; cdecl;
11849     begin
11850     try
11851     Result := ITraceLogWriterImpl(this).write_s(status, buf, size);
11852     except
11853     on e: Exception do FbException.catchException(status, e);
11854     end
11855     end;
11856    
11857 tony 45 var
11858     ITraceLogWriterImpl_vTable: TraceLogWriterVTable;
11859    
11860     constructor ITraceLogWriterImpl.create;
11861     begin
11862     vTable := ITraceLogWriterImpl_vTable;
11863     end;
11864    
11865     function ITraceInitInfoImpl_getConfigTextDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11866     begin
11867     try
11868     Result := ITraceInitInfoImpl(this).getConfigText();
11869     except
11870     on e: Exception do FbException.catchException(nil, e);
11871     end
11872     end;
11873    
11874     function ITraceInitInfoImpl_getTraceSessionIDDispatcher(this: ITraceInitInfo): Integer; cdecl;
11875     begin
11876     try
11877     Result := ITraceInitInfoImpl(this).getTraceSessionID();
11878     except
11879     on e: Exception do FbException.catchException(nil, e);
11880     end
11881     end;
11882    
11883     function ITraceInitInfoImpl_getTraceSessionNameDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11884     begin
11885     try
11886     Result := ITraceInitInfoImpl(this).getTraceSessionName();
11887     except
11888     on e: Exception do FbException.catchException(nil, e);
11889     end
11890     end;
11891    
11892     function ITraceInitInfoImpl_getFirebirdRootDirectoryDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11893     begin
11894     try
11895     Result := ITraceInitInfoImpl(this).getFirebirdRootDirectory();
11896     except
11897     on e: Exception do FbException.catchException(nil, e);
11898     end
11899     end;
11900    
11901     function ITraceInitInfoImpl_getDatabaseNameDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11902     begin
11903     try
11904     Result := ITraceInitInfoImpl(this).getDatabaseName();
11905     except
11906     on e: Exception do FbException.catchException(nil, e);
11907     end
11908     end;
11909    
11910     function ITraceInitInfoImpl_getConnectionDispatcher(this: ITraceInitInfo): ITraceDatabaseConnection; cdecl;
11911     begin
11912     try
11913     Result := ITraceInitInfoImpl(this).getConnection();
11914     except
11915     on e: Exception do FbException.catchException(nil, e);
11916     end
11917     end;
11918    
11919     function ITraceInitInfoImpl_getLogWriterDispatcher(this: ITraceInitInfo): ITraceLogWriter; cdecl;
11920     begin
11921     try
11922     Result := ITraceInitInfoImpl(this).getLogWriter();
11923     except
11924     on e: Exception do FbException.catchException(nil, e);
11925     end
11926     end;
11927    
11928     var
11929     ITraceInitInfoImpl_vTable: TraceInitInfoVTable;
11930    
11931     constructor ITraceInitInfoImpl.create;
11932     begin
11933     vTable := ITraceInitInfoImpl_vTable;
11934     end;
11935    
11936     procedure ITracePluginImpl_addRefDispatcher(this: ITracePlugin); cdecl;
11937     begin
11938     try
11939     ITracePluginImpl(this).addRef();
11940     except
11941     on e: Exception do FbException.catchException(nil, e);
11942     end
11943     end;
11944    
11945     function ITracePluginImpl_releaseDispatcher(this: ITracePlugin): Integer; cdecl;
11946     begin
11947     try
11948     Result := ITracePluginImpl(this).release();
11949     except
11950     on e: Exception do FbException.catchException(nil, e);
11951     end
11952     end;
11953    
11954     function ITracePluginImpl_trace_get_errorDispatcher(this: ITracePlugin): PAnsiChar; cdecl;
11955     begin
11956     try
11957     Result := ITracePluginImpl(this).trace_get_error();
11958     except
11959     on e: Exception do FbException.catchException(nil, e);
11960     end
11961     end;
11962    
11963     function ITracePluginImpl_trace_attachDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; cdecl;
11964     begin
11965     try
11966     Result := ITracePluginImpl(this).trace_attach(connection, create_db, att_result);
11967     except
11968     on e: Exception do FbException.catchException(nil, e);
11969     end
11970     end;
11971    
11972     function ITracePluginImpl_trace_detachDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; cdecl;
11973     begin
11974     try
11975     Result := ITracePluginImpl(this).trace_detach(connection, drop_db);
11976     except
11977     on e: Exception do FbException.catchException(nil, e);
11978     end
11979     end;
11980    
11981     function ITracePluginImpl_trace_transaction_startDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; cdecl;
11982     begin
11983     try
11984     Result := ITracePluginImpl(this).trace_transaction_start(connection, transaction, tpb_length, tpb, tra_result);
11985     except
11986     on e: Exception do FbException.catchException(nil, e);
11987     end
11988     end;
11989    
11990     function ITracePluginImpl_trace_transaction_endDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; cdecl;
11991     begin
11992     try
11993     Result := ITracePluginImpl(this).trace_transaction_end(connection, transaction, commit, retain_context, tra_result);
11994     except
11995     on e: Exception do FbException.catchException(nil, e);
11996     end
11997     end;
11998    
11999     function ITracePluginImpl_trace_proc_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; cdecl;
12000     begin
12001     try
12002     Result := ITracePluginImpl(this).trace_proc_execute(connection, transaction, procedure_, started, proc_result);
12003     except
12004     on e: Exception do FbException.catchException(nil, e);
12005     end
12006     end;
12007    
12008     function ITracePluginImpl_trace_trigger_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; cdecl;
12009     begin
12010     try
12011     Result := ITracePluginImpl(this).trace_trigger_execute(connection, transaction, trigger, started, trig_result);
12012     except
12013     on e: Exception do FbException.catchException(nil, e);
12014     end
12015     end;
12016    
12017     function ITracePluginImpl_trace_set_contextDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; cdecl;
12018     begin
12019     try
12020     Result := ITracePluginImpl(this).trace_set_context(connection, transaction, variable);
12021     except
12022     on e: Exception do FbException.catchException(nil, e);
12023     end
12024     end;
12025    
12026     function ITracePluginImpl_trace_dsql_prepareDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
12027     begin
12028     try
12029     Result := ITracePluginImpl(this).trace_dsql_prepare(connection, transaction, statement, time_millis, req_result);
12030     except
12031     on e: Exception do FbException.catchException(nil, e);
12032     end
12033     end;
12034    
12035     function ITracePluginImpl_trace_dsql_freeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; cdecl;
12036     begin
12037     try
12038     Result := ITracePluginImpl(this).trace_dsql_free(connection, statement, option);
12039     except
12040     on e: Exception do FbException.catchException(nil, e);
12041     end
12042     end;
12043    
12044     function ITracePluginImpl_trace_dsql_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; cdecl;
12045     begin
12046     try
12047     Result := ITracePluginImpl(this).trace_dsql_execute(connection, transaction, statement, started, req_result);
12048     except
12049     on e: Exception do FbException.catchException(nil, e);
12050     end
12051     end;
12052    
12053     function ITracePluginImpl_trace_blr_compileDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
12054     begin
12055     try
12056     Result := ITracePluginImpl(this).trace_blr_compile(connection, transaction, statement, time_millis, req_result);
12057     except
12058     on e: Exception do FbException.catchException(nil, e);
12059     end
12060     end;
12061    
12062     function ITracePluginImpl_trace_blr_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; cdecl;
12063     begin
12064     try
12065     Result := ITracePluginImpl(this).trace_blr_execute(connection, transaction, statement, req_result);
12066     except
12067     on e: Exception do FbException.catchException(nil, e);
12068     end
12069     end;
12070    
12071     function ITracePluginImpl_trace_dyn_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
12072     begin
12073     try
12074     Result := ITracePluginImpl(this).trace_dyn_execute(connection, transaction, request, time_millis, req_result);
12075     except
12076     on e: Exception do FbException.catchException(nil, e);
12077     end
12078     end;
12079    
12080     function ITracePluginImpl_trace_service_attachDispatcher(this: ITracePlugin; service: ITraceServiceConnection; att_result: Cardinal): Boolean; cdecl;
12081     begin
12082     try
12083     Result := ITracePluginImpl(this).trace_service_attach(service, att_result);
12084     except
12085     on e: Exception do FbException.catchException(nil, e);
12086     end
12087     end;
12088    
12089     function ITracePluginImpl_trace_service_startDispatcher(this: ITracePlugin; service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; cdecl;
12090     begin
12091     try
12092     Result := ITracePluginImpl(this).trace_service_start(service, switches_length, switches, start_result);
12093     except
12094     on e: Exception do FbException.catchException(nil, e);
12095     end
12096     end;
12097    
12098     function ITracePluginImpl_trace_service_queryDispatcher(this: ITracePlugin; service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; cdecl;
12099     begin
12100     try
12101     Result := ITracePluginImpl(this).trace_service_query(service, send_item_length, send_items, recv_item_length, recv_items, query_result);
12102     except
12103     on e: Exception do FbException.catchException(nil, e);
12104     end
12105     end;
12106    
12107     function ITracePluginImpl_trace_service_detachDispatcher(this: ITracePlugin; service: ITraceServiceConnection; detach_result: Cardinal): Boolean; cdecl;
12108     begin
12109     try
12110     Result := ITracePluginImpl(this).trace_service_detach(service, detach_result);
12111     except
12112     on e: Exception do FbException.catchException(nil, e);
12113     end
12114     end;
12115    
12116     function ITracePluginImpl_trace_event_errorDispatcher(this: ITracePlugin; connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; cdecl;
12117     begin
12118     try
12119     Result := ITracePluginImpl(this).trace_event_error(connection, status, function_);
12120     except
12121     on e: Exception do FbException.catchException(nil, e);
12122     end
12123     end;
12124    
12125     function ITracePluginImpl_trace_event_sweepDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; cdecl;
12126     begin
12127     try
12128     Result := ITracePluginImpl(this).trace_event_sweep(connection, sweep, sweep_state);
12129     except
12130     on e: Exception do FbException.catchException(nil, e);
12131     end
12132     end;
12133    
12134     function ITracePluginImpl_trace_func_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; cdecl;
12135     begin
12136     try
12137     Result := ITracePluginImpl(this).trace_func_execute(connection, transaction, function_, started, func_result);
12138     except
12139     on e: Exception do FbException.catchException(nil, e);
12140     end
12141     end;
12142    
12143     var
12144     ITracePluginImpl_vTable: TracePluginVTable;
12145    
12146     constructor ITracePluginImpl.create;
12147     begin
12148     vTable := ITracePluginImpl_vTable;
12149     end;
12150    
12151     procedure ITraceFactoryImpl_addRefDispatcher(this: ITraceFactory); cdecl;
12152     begin
12153     try
12154     ITraceFactoryImpl(this).addRef();
12155     except
12156     on e: Exception do FbException.catchException(nil, e);
12157     end
12158     end;
12159    
12160     function ITraceFactoryImpl_releaseDispatcher(this: ITraceFactory): Integer; cdecl;
12161     begin
12162     try
12163     Result := ITraceFactoryImpl(this).release();
12164     except
12165     on e: Exception do FbException.catchException(nil, e);
12166     end
12167     end;
12168    
12169     procedure ITraceFactoryImpl_setOwnerDispatcher(this: ITraceFactory; r: IReferenceCounted); cdecl;
12170     begin
12171     try
12172     ITraceFactoryImpl(this).setOwner(r);
12173     except
12174     on e: Exception do FbException.catchException(nil, e);
12175     end
12176     end;
12177    
12178     function ITraceFactoryImpl_getOwnerDispatcher(this: ITraceFactory): IReferenceCounted; cdecl;
12179     begin
12180     try
12181     Result := ITraceFactoryImpl(this).getOwner();
12182     except
12183     on e: Exception do FbException.catchException(nil, e);
12184     end
12185     end;
12186    
12187     function ITraceFactoryImpl_trace_needsDispatcher(this: ITraceFactory): QWord; cdecl;
12188     begin
12189     try
12190     Result := ITraceFactoryImpl(this).trace_needs();
12191     except
12192     on e: Exception do FbException.catchException(nil, e);
12193     end
12194     end;
12195    
12196     function ITraceFactoryImpl_trace_createDispatcher(this: ITraceFactory; status: IStatus; init_info: ITraceInitInfo): ITracePlugin; cdecl;
12197     begin
12198     try
12199     Result := ITraceFactoryImpl(this).trace_create(status, init_info);
12200     except
12201     on e: Exception do FbException.catchException(status, e);
12202     end
12203     end;
12204    
12205     var
12206     ITraceFactoryImpl_vTable: TraceFactoryVTable;
12207    
12208     constructor ITraceFactoryImpl.create;
12209     begin
12210     vTable := ITraceFactoryImpl_vTable;
12211     end;
12212    
12213     procedure IUdrFunctionFactoryImpl_disposeDispatcher(this: IUdrFunctionFactory); cdecl;
12214     begin
12215     try
12216     IUdrFunctionFactoryImpl(this).dispose();
12217     except
12218     on e: Exception do FbException.catchException(nil, e);
12219     end
12220     end;
12221    
12222     procedure IUdrFunctionFactoryImpl_setupDispatcher(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
12223     begin
12224     try
12225     IUdrFunctionFactoryImpl(this).setup(status, context, metadata, inBuilder, outBuilder);
12226     except
12227     on e: Exception do FbException.catchException(status, e);
12228     end
12229     end;
12230    
12231     function IUdrFunctionFactoryImpl_newItemDispatcher(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; cdecl;
12232     begin
12233     try
12234     Result := IUdrFunctionFactoryImpl(this).newItem(status, context, metadata);
12235     except
12236     on e: Exception do FbException.catchException(status, e);
12237     end
12238     end;
12239    
12240     var
12241     IUdrFunctionFactoryImpl_vTable: UdrFunctionFactoryVTable;
12242    
12243     constructor IUdrFunctionFactoryImpl.create;
12244     begin
12245     vTable := IUdrFunctionFactoryImpl_vTable;
12246     end;
12247    
12248     procedure IUdrProcedureFactoryImpl_disposeDispatcher(this: IUdrProcedureFactory); cdecl;
12249     begin
12250     try
12251     IUdrProcedureFactoryImpl(this).dispose();
12252     except
12253     on e: Exception do FbException.catchException(nil, e);
12254     end
12255     end;
12256    
12257     procedure IUdrProcedureFactoryImpl_setupDispatcher(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
12258     begin
12259     try
12260     IUdrProcedureFactoryImpl(this).setup(status, context, metadata, inBuilder, outBuilder);
12261     except
12262     on e: Exception do FbException.catchException(status, e);
12263     end
12264     end;
12265    
12266     function IUdrProcedureFactoryImpl_newItemDispatcher(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; cdecl;
12267     begin
12268     try
12269     Result := IUdrProcedureFactoryImpl(this).newItem(status, context, metadata);
12270     except
12271     on e: Exception do FbException.catchException(status, e);
12272     end
12273     end;
12274    
12275     var
12276     IUdrProcedureFactoryImpl_vTable: UdrProcedureFactoryVTable;
12277    
12278     constructor IUdrProcedureFactoryImpl.create;
12279     begin
12280     vTable := IUdrProcedureFactoryImpl_vTable;
12281     end;
12282    
12283     procedure IUdrTriggerFactoryImpl_disposeDispatcher(this: IUdrTriggerFactory); cdecl;
12284     begin
12285     try
12286     IUdrTriggerFactoryImpl(this).dispose();
12287     except
12288     on e: Exception do FbException.catchException(nil, e);
12289     end
12290     end;
12291    
12292     procedure IUdrTriggerFactoryImpl_setupDispatcher(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); cdecl;
12293     begin
12294     try
12295     IUdrTriggerFactoryImpl(this).setup(status, context, metadata, fieldsBuilder);
12296     except
12297     on e: Exception do FbException.catchException(status, e);
12298     end
12299     end;
12300    
12301     function IUdrTriggerFactoryImpl_newItemDispatcher(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; cdecl;
12302     begin
12303     try
12304     Result := IUdrTriggerFactoryImpl(this).newItem(status, context, metadata);
12305     except
12306     on e: Exception do FbException.catchException(status, e);
12307     end
12308     end;
12309    
12310     var
12311     IUdrTriggerFactoryImpl_vTable: UdrTriggerFactoryVTable;
12312    
12313     constructor IUdrTriggerFactoryImpl.create;
12314     begin
12315     vTable := IUdrTriggerFactoryImpl_vTable;
12316     end;
12317    
12318     function IUdrPluginImpl_getMasterDispatcher(this: IUdrPlugin): IMaster; cdecl;
12319     begin
12320     try
12321     Result := IUdrPluginImpl(this).getMaster();
12322     except
12323     on e: Exception do FbException.catchException(nil, e);
12324     end
12325     end;
12326    
12327     procedure IUdrPluginImpl_registerFunctionDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); cdecl;
12328     begin
12329     try
12330     IUdrPluginImpl(this).registerFunction(status, name, factory);
12331     except
12332     on e: Exception do FbException.catchException(status, e);
12333     end
12334     end;
12335    
12336     procedure IUdrPluginImpl_registerProcedureDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); cdecl;
12337     begin
12338     try
12339     IUdrPluginImpl(this).registerProcedure(status, name, factory);
12340     except
12341     on e: Exception do FbException.catchException(status, e);
12342     end
12343     end;
12344    
12345     procedure IUdrPluginImpl_registerTriggerDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); cdecl;
12346     begin
12347     try
12348     IUdrPluginImpl(this).registerTrigger(status, name, factory);
12349     except
12350     on e: Exception do FbException.catchException(status, e);
12351     end
12352     end;
12353    
12354     var
12355     IUdrPluginImpl_vTable: UdrPluginVTable;
12356    
12357     constructor IUdrPluginImpl.create;
12358     begin
12359     vTable := IUdrPluginImpl_vTable;
12360     end;
12361    
12362 tony 315 procedure IDecFloat16Impl_toBcdDispatcher(this: IDecFloat16; from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
12363     begin
12364     try
12365     IDecFloat16Impl(this).toBcd(from, sign, bcd, exp);
12366     except
12367     on e: Exception do FbException.catchException(nil, e);
12368     end
12369     end;
12370    
12371     procedure IDecFloat16Impl_toStringDispatcher(this: IDecFloat16; status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12372     begin
12373     try
12374     IDecFloat16Impl(this).toString(status, from, bufferLength, buffer);
12375     except
12376     on e: Exception do FbException.catchException(status, e);
12377     end
12378     end;
12379    
12380     procedure IDecFloat16Impl_fromBcdDispatcher(this: IDecFloat16; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); cdecl;
12381     begin
12382     try
12383     IDecFloat16Impl(this).fromBcd(sign, bcd, exp, to_);
12384     except
12385     on e: Exception do FbException.catchException(nil, e);
12386     end
12387     end;
12388    
12389     procedure IDecFloat16Impl_fromStringDispatcher(this: IDecFloat16; status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); cdecl;
12390     begin
12391     try
12392     IDecFloat16Impl(this).fromString(status, from, to_);
12393     except
12394     on e: Exception do FbException.catchException(status, e);
12395     end
12396     end;
12397    
12398     var
12399     IDecFloat16Impl_vTable: DecFloat16VTable;
12400    
12401     constructor IDecFloat16Impl.create;
12402     begin
12403     vTable := IDecFloat16Impl_vTable;
12404     end;
12405    
12406     procedure IDecFloat34Impl_toBcdDispatcher(this: IDecFloat34; from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
12407     begin
12408     try
12409     IDecFloat34Impl(this).toBcd(from, sign, bcd, exp);
12410     except
12411     on e: Exception do FbException.catchException(nil, e);
12412     end
12413     end;
12414    
12415     procedure IDecFloat34Impl_toStringDispatcher(this: IDecFloat34; status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12416     begin
12417     try
12418     IDecFloat34Impl(this).toString(status, from, bufferLength, buffer);
12419     except
12420     on e: Exception do FbException.catchException(status, e);
12421     end
12422     end;
12423    
12424     procedure IDecFloat34Impl_fromBcdDispatcher(this: IDecFloat34; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); cdecl;
12425     begin
12426     try
12427     IDecFloat34Impl(this).fromBcd(sign, bcd, exp, to_);
12428     except
12429     on e: Exception do FbException.catchException(nil, e);
12430     end
12431     end;
12432    
12433     procedure IDecFloat34Impl_fromStringDispatcher(this: IDecFloat34; status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); cdecl;
12434     begin
12435     try
12436     IDecFloat34Impl(this).fromString(status, from, to_);
12437     except
12438     on e: Exception do FbException.catchException(status, e);
12439     end
12440     end;
12441    
12442     var
12443     IDecFloat34Impl_vTable: DecFloat34VTable;
12444    
12445     constructor IDecFloat34Impl.create;
12446     begin
12447     vTable := IDecFloat34Impl_vTable;
12448     end;
12449    
12450     procedure IInt128Impl_toStringDispatcher(this: IInt128; status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12451     begin
12452     try
12453     IInt128Impl(this).toString(status, from, scale, bufferLength, buffer);
12454     except
12455     on e: Exception do FbException.catchException(status, e);
12456     end
12457     end;
12458    
12459     procedure IInt128Impl_fromStringDispatcher(this: IInt128; status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); cdecl;
12460     begin
12461     try
12462     IInt128Impl(this).fromString(status, scale, from, to_);
12463     except
12464     on e: Exception do FbException.catchException(status, e);
12465     end
12466     end;
12467    
12468     var
12469     IInt128Impl_vTable: Int128VTable;
12470    
12471     constructor IInt128Impl.create;
12472     begin
12473     vTable := IInt128Impl_vTable;
12474     end;
12475    
12476     function IReplicatedFieldImpl_getNameDispatcher(this: IReplicatedField): PAnsiChar; cdecl;
12477     begin
12478     try
12479     Result := IReplicatedFieldImpl(this).getName();
12480     except
12481     on e: Exception do FbException.catchException(nil, e);
12482     end
12483     end;
12484    
12485     function IReplicatedFieldImpl_getTypeDispatcher(this: IReplicatedField): Cardinal; cdecl;
12486     begin
12487     try
12488     Result := IReplicatedFieldImpl(this).getType();
12489     except
12490     on e: Exception do FbException.catchException(nil, e);
12491     end
12492     end;
12493    
12494     function IReplicatedFieldImpl_getSubTypeDispatcher(this: IReplicatedField): Integer; cdecl;
12495     begin
12496     try
12497     Result := IReplicatedFieldImpl(this).getSubType();
12498     except
12499     on e: Exception do FbException.catchException(nil, e);
12500     end
12501     end;
12502    
12503     function IReplicatedFieldImpl_getScaleDispatcher(this: IReplicatedField): Integer; cdecl;
12504     begin
12505     try
12506     Result := IReplicatedFieldImpl(this).getScale();
12507     except
12508     on e: Exception do FbException.catchException(nil, e);
12509     end
12510     end;
12511    
12512     function IReplicatedFieldImpl_getLengthDispatcher(this: IReplicatedField): Cardinal; cdecl;
12513     begin
12514     try
12515     Result := IReplicatedFieldImpl(this).getLength();
12516     except
12517     on e: Exception do FbException.catchException(nil, e);
12518     end
12519     end;
12520    
12521     function IReplicatedFieldImpl_getCharSetDispatcher(this: IReplicatedField): Cardinal; cdecl;
12522     begin
12523     try
12524     Result := IReplicatedFieldImpl(this).getCharSet();
12525     except
12526     on e: Exception do FbException.catchException(nil, e);
12527     end
12528     end;
12529    
12530     function IReplicatedFieldImpl_getDataDispatcher(this: IReplicatedField): Pointer; cdecl;
12531     begin
12532     try
12533     Result := IReplicatedFieldImpl(this).getData();
12534     except
12535     on e: Exception do FbException.catchException(nil, e);
12536     end
12537     end;
12538    
12539     var
12540     IReplicatedFieldImpl_vTable: ReplicatedFieldVTable;
12541    
12542     constructor IReplicatedFieldImpl.create;
12543     begin
12544     vTable := IReplicatedFieldImpl_vTable;
12545     end;
12546    
12547     function IReplicatedRecordImpl_getCountDispatcher(this: IReplicatedRecord): Cardinal; cdecl;
12548     begin
12549     try
12550     Result := IReplicatedRecordImpl(this).getCount();
12551     except
12552     on e: Exception do FbException.catchException(nil, e);
12553     end
12554     end;
12555    
12556     function IReplicatedRecordImpl_getFieldDispatcher(this: IReplicatedRecord; index: Cardinal): IReplicatedField; cdecl;
12557     begin
12558     try
12559     Result := IReplicatedRecordImpl(this).getField(index);
12560     except
12561     on e: Exception do FbException.catchException(nil, e);
12562     end
12563     end;
12564    
12565     function IReplicatedRecordImpl_getRawLengthDispatcher(this: IReplicatedRecord): Cardinal; cdecl;
12566     begin
12567     try
12568     Result := IReplicatedRecordImpl(this).getRawLength();
12569     except
12570     on e: Exception do FbException.catchException(nil, e);
12571     end
12572     end;
12573    
12574     function IReplicatedRecordImpl_getRawDataDispatcher(this: IReplicatedRecord): BytePtr; cdecl;
12575     begin
12576     try
12577     Result := IReplicatedRecordImpl(this).getRawData();
12578     except
12579     on e: Exception do FbException.catchException(nil, e);
12580     end
12581     end;
12582    
12583     var
12584     IReplicatedRecordImpl_vTable: ReplicatedRecordVTable;
12585    
12586     constructor IReplicatedRecordImpl.create;
12587     begin
12588     vTable := IReplicatedRecordImpl_vTable;
12589     end;
12590    
12591     procedure IReplicatedTransactionImpl_disposeDispatcher(this: IReplicatedTransaction); cdecl;
12592     begin
12593     try
12594     IReplicatedTransactionImpl(this).dispose();
12595     except
12596     on e: Exception do FbException.catchException(nil, e);
12597     end
12598     end;
12599    
12600     procedure IReplicatedTransactionImpl_prepareDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12601     begin
12602     try
12603     IReplicatedTransactionImpl(this).prepare(status);
12604     except
12605     on e: Exception do FbException.catchException(status, e);
12606     end
12607     end;
12608    
12609     procedure IReplicatedTransactionImpl_commitDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12610     begin
12611     try
12612     IReplicatedTransactionImpl(this).commit(status);
12613     except
12614     on e: Exception do FbException.catchException(status, e);
12615     end
12616     end;
12617    
12618     procedure IReplicatedTransactionImpl_rollbackDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12619     begin
12620     try
12621     IReplicatedTransactionImpl(this).rollback(status);
12622     except
12623     on e: Exception do FbException.catchException(status, e);
12624     end
12625     end;
12626    
12627     procedure IReplicatedTransactionImpl_startSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12628     begin
12629     try
12630     IReplicatedTransactionImpl(this).startSavepoint(status);
12631     except
12632     on e: Exception do FbException.catchException(status, e);
12633     end
12634     end;
12635    
12636     procedure IReplicatedTransactionImpl_releaseSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12637     begin
12638     try
12639     IReplicatedTransactionImpl(this).releaseSavepoint(status);
12640     except
12641     on e: Exception do FbException.catchException(status, e);
12642     end
12643     end;
12644    
12645     procedure IReplicatedTransactionImpl_rollbackSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12646     begin
12647     try
12648     IReplicatedTransactionImpl(this).rollbackSavepoint(status);
12649     except
12650     on e: Exception do FbException.catchException(status, e);
12651     end
12652     end;
12653    
12654     procedure IReplicatedTransactionImpl_insertRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
12655     begin
12656     try
12657     IReplicatedTransactionImpl(this).insertRecord(status, name, record_);
12658     except
12659     on e: Exception do FbException.catchException(status, e);
12660     end
12661     end;
12662    
12663     procedure IReplicatedTransactionImpl_updateRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); cdecl;
12664     begin
12665     try
12666     IReplicatedTransactionImpl(this).updateRecord(status, name, orgRecord, newRecord);
12667     except
12668     on e: Exception do FbException.catchException(status, e);
12669     end
12670     end;
12671    
12672     procedure IReplicatedTransactionImpl_deleteRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
12673     begin
12674     try
12675     IReplicatedTransactionImpl(this).deleteRecord(status, name, record_);
12676     except
12677     on e: Exception do FbException.catchException(status, e);
12678     end
12679     end;
12680    
12681     procedure IReplicatedTransactionImpl_executeSqlDispatcher(this: IReplicatedTransaction; status: IStatus; sql: PAnsiChar); cdecl;
12682     begin
12683     try
12684     IReplicatedTransactionImpl(this).executeSql(status, sql);
12685     except
12686     on e: Exception do FbException.catchException(status, e);
12687     end
12688     end;
12689    
12690     procedure IReplicatedTransactionImpl_executeSqlIntlDispatcher(this: IReplicatedTransaction; status: IStatus; charset: Cardinal; sql: PAnsiChar); cdecl;
12691     begin
12692     try
12693     IReplicatedTransactionImpl(this).executeSqlIntl(status, charset, sql);
12694     except
12695     on e: Exception do FbException.catchException(status, e);
12696     end
12697     end;
12698    
12699     var
12700     IReplicatedTransactionImpl_vTable: ReplicatedTransactionVTable;
12701    
12702     constructor IReplicatedTransactionImpl.create;
12703     begin
12704     vTable := IReplicatedTransactionImpl_vTable;
12705     end;
12706    
12707     procedure IReplicatedSessionImpl_addRefDispatcher(this: IReplicatedSession); cdecl;
12708     begin
12709     try
12710     IReplicatedSessionImpl(this).addRef();
12711     except
12712     on e: Exception do FbException.catchException(nil, e);
12713     end
12714     end;
12715    
12716     function IReplicatedSessionImpl_releaseDispatcher(this: IReplicatedSession): Integer; cdecl;
12717     begin
12718     try
12719     Result := IReplicatedSessionImpl(this).release();
12720     except
12721     on e: Exception do FbException.catchException(nil, e);
12722     end
12723     end;
12724    
12725     procedure IReplicatedSessionImpl_setOwnerDispatcher(this: IReplicatedSession; r: IReferenceCounted); cdecl;
12726     begin
12727     try
12728     IReplicatedSessionImpl(this).setOwner(r);
12729     except
12730     on e: Exception do FbException.catchException(nil, e);
12731     end
12732     end;
12733    
12734     function IReplicatedSessionImpl_getOwnerDispatcher(this: IReplicatedSession): IReferenceCounted; cdecl;
12735     begin
12736     try
12737     Result := IReplicatedSessionImpl(this).getOwner();
12738     except
12739     on e: Exception do FbException.catchException(nil, e);
12740     end
12741     end;
12742    
12743 tony 345 function IReplicatedSessionImpl_initDispatcher(this: IReplicatedSession; status: IStatus; attachment: IAttachment): Boolean; cdecl;
12744 tony 315 begin
12745     try
12746 tony 345 Result := IReplicatedSessionImpl(this).init(status, attachment);
12747 tony 315 except
12748 tony 345 on e: Exception do FbException.catchException(status, e);
12749 tony 315 end
12750     end;
12751    
12752     function IReplicatedSessionImpl_startTransactionDispatcher(this: IReplicatedSession; status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; cdecl;
12753     begin
12754     try
12755     Result := IReplicatedSessionImpl(this).startTransaction(status, transaction, number);
12756     except
12757     on e: Exception do FbException.catchException(status, e);
12758     end
12759     end;
12760    
12761     procedure IReplicatedSessionImpl_cleanupTransactionDispatcher(this: IReplicatedSession; status: IStatus; number: Int64); cdecl;
12762     begin
12763     try
12764     IReplicatedSessionImpl(this).cleanupTransaction(status, number);
12765     except
12766     on e: Exception do FbException.catchException(status, e);
12767     end
12768     end;
12769    
12770     procedure IReplicatedSessionImpl_setSequenceDispatcher(this: IReplicatedSession; status: IStatus; name: PAnsiChar; value: Int64); cdecl;
12771     begin
12772     try
12773     IReplicatedSessionImpl(this).setSequence(status, name, value);
12774     except
12775     on e: Exception do FbException.catchException(status, e);
12776     end
12777     end;
12778    
12779     var
12780     IReplicatedSessionImpl_vTable: ReplicatedSessionVTable;
12781    
12782     constructor IReplicatedSessionImpl.create;
12783     begin
12784     vTable := IReplicatedSessionImpl_vTable;
12785     end;
12786    
12787 tony 45 constructor FbException.create(status: IStatus);
12788     begin
12789     inherited Create('FbException');
12790     self.status := status.clone;
12791     end;
12792    
12793     destructor FbException.Destroy();
12794     begin
12795     status.dispose;
12796     inherited Destroy;
12797     end;
12798    
12799     function FbException.getStatus: IStatus;
12800     begin
12801     Result := status;
12802     end;
12803    
12804     class procedure FbException.checkException(status: IStatus);
12805     begin
12806     if ((status.getState and status.STATE_ERRORS) <> 0) then
12807     raise FbException.create(status);
12808     end;
12809    
12810     class procedure FbException.catchException(status: IStatus; e: Exception);
12811     var
12812     statusVector: array[0..4] of NativeIntPtr;
12813     msg: AnsiString;
12814     begin
12815     if (e.inheritsFrom(FbException)) then
12816     status.setErrors(FbException(e).getStatus.getErrors)
12817     else
12818     begin
12819     msg := e.message;
12820    
12821     statusVector[0] := NativeIntPtr(isc_arg_gds);
12822     statusVector[1] := NativeIntPtr(isc_random);
12823     statusVector[2] := NativeIntPtr(isc_arg_string);
12824     statusVector[3] := NativeIntPtr(PAnsiChar(msg));
12825     statusVector[4] := NativeIntPtr(isc_arg_end);
12826    
12827     status.setErrors(@statusVector);
12828     end
12829     end;
12830     initialization
12831     IVersionedImpl_vTable := VersionedVTable.create;
12832 tony 315 IVersionedImpl_vTable.version := 1;
12833 tony 45
12834     IReferenceCountedImpl_vTable := ReferenceCountedVTable.create;
12835     IReferenceCountedImpl_vTable.version := 2;
12836     IReferenceCountedImpl_vTable.addRef := @IReferenceCountedImpl_addRefDispatcher;
12837     IReferenceCountedImpl_vTable.release := @IReferenceCountedImpl_releaseDispatcher;
12838    
12839     IDisposableImpl_vTable := DisposableVTable.create;
12840 tony 315 IDisposableImpl_vTable.version := 2;
12841 tony 45 IDisposableImpl_vTable.dispose := @IDisposableImpl_disposeDispatcher;
12842    
12843     IStatusImpl_vTable := StatusVTable.create;
12844 tony 315 IStatusImpl_vTable.version := 3;
12845 tony 45 IStatusImpl_vTable.dispose := @IStatusImpl_disposeDispatcher;
12846     IStatusImpl_vTable.init := @IStatusImpl_initDispatcher;
12847     IStatusImpl_vTable.getState := @IStatusImpl_getStateDispatcher;
12848     IStatusImpl_vTable.setErrors2 := @IStatusImpl_setErrors2Dispatcher;
12849     IStatusImpl_vTable.setWarnings2 := @IStatusImpl_setWarnings2Dispatcher;
12850     IStatusImpl_vTable.setErrors := @IStatusImpl_setErrorsDispatcher;
12851     IStatusImpl_vTable.setWarnings := @IStatusImpl_setWarningsDispatcher;
12852     IStatusImpl_vTable.getErrors := @IStatusImpl_getErrorsDispatcher;
12853     IStatusImpl_vTable.getWarnings := @IStatusImpl_getWarningsDispatcher;
12854     IStatusImpl_vTable.clone := @IStatusImpl_cloneDispatcher;
12855    
12856     IMasterImpl_vTable := MasterVTable.create;
12857 tony 315 IMasterImpl_vTable.version := 2;
12858 tony 45 IMasterImpl_vTable.getStatus := @IMasterImpl_getStatusDispatcher;
12859     IMasterImpl_vTable.getDispatcher := @IMasterImpl_getDispatcherDispatcher;
12860     IMasterImpl_vTable.getPluginManager := @IMasterImpl_getPluginManagerDispatcher;
12861     IMasterImpl_vTable.getTimerControl := @IMasterImpl_getTimerControlDispatcher;
12862     IMasterImpl_vTable.getDtc := @IMasterImpl_getDtcDispatcher;
12863     IMasterImpl_vTable.registerAttachment := @IMasterImpl_registerAttachmentDispatcher;
12864     IMasterImpl_vTable.registerTransaction := @IMasterImpl_registerTransactionDispatcher;
12865     IMasterImpl_vTable.getMetadataBuilder := @IMasterImpl_getMetadataBuilderDispatcher;
12866     IMasterImpl_vTable.serverMode := @IMasterImpl_serverModeDispatcher;
12867     IMasterImpl_vTable.getUtilInterface := @IMasterImpl_getUtilInterfaceDispatcher;
12868     IMasterImpl_vTable.getConfigManager := @IMasterImpl_getConfigManagerDispatcher;
12869     IMasterImpl_vTable.getProcessExiting := @IMasterImpl_getProcessExitingDispatcher;
12870    
12871     IPluginBaseImpl_vTable := PluginBaseVTable.create;
12872 tony 315 IPluginBaseImpl_vTable.version := 3;
12873 tony 45 IPluginBaseImpl_vTable.addRef := @IPluginBaseImpl_addRefDispatcher;
12874     IPluginBaseImpl_vTable.release := @IPluginBaseImpl_releaseDispatcher;
12875     IPluginBaseImpl_vTable.setOwner := @IPluginBaseImpl_setOwnerDispatcher;
12876     IPluginBaseImpl_vTable.getOwner := @IPluginBaseImpl_getOwnerDispatcher;
12877    
12878     IPluginSetImpl_vTable := PluginSetVTable.create;
12879 tony 315 IPluginSetImpl_vTable.version := 3;
12880 tony 45 IPluginSetImpl_vTable.addRef := @IPluginSetImpl_addRefDispatcher;
12881     IPluginSetImpl_vTable.release := @IPluginSetImpl_releaseDispatcher;
12882     IPluginSetImpl_vTable.getName := @IPluginSetImpl_getNameDispatcher;
12883     IPluginSetImpl_vTable.getModuleName := @IPluginSetImpl_getModuleNameDispatcher;
12884     IPluginSetImpl_vTable.getPlugin := @IPluginSetImpl_getPluginDispatcher;
12885     IPluginSetImpl_vTable.next := @IPluginSetImpl_nextDispatcher;
12886     IPluginSetImpl_vTable.set_ := @IPluginSetImpl_set_Dispatcher;
12887    
12888     IConfigEntryImpl_vTable := ConfigEntryVTable.create;
12889 tony 315 IConfigEntryImpl_vTable.version := 3;
12890 tony 45 IConfigEntryImpl_vTable.addRef := @IConfigEntryImpl_addRefDispatcher;
12891     IConfigEntryImpl_vTable.release := @IConfigEntryImpl_releaseDispatcher;
12892     IConfigEntryImpl_vTable.getName := @IConfigEntryImpl_getNameDispatcher;
12893     IConfigEntryImpl_vTable.getValue := @IConfigEntryImpl_getValueDispatcher;
12894     IConfigEntryImpl_vTable.getIntValue := @IConfigEntryImpl_getIntValueDispatcher;
12895     IConfigEntryImpl_vTable.getBoolValue := @IConfigEntryImpl_getBoolValueDispatcher;
12896     IConfigEntryImpl_vTable.getSubConfig := @IConfigEntryImpl_getSubConfigDispatcher;
12897    
12898     IConfigImpl_vTable := ConfigVTable.create;
12899 tony 315 IConfigImpl_vTable.version := 3;
12900 tony 45 IConfigImpl_vTable.addRef := @IConfigImpl_addRefDispatcher;
12901     IConfigImpl_vTable.release := @IConfigImpl_releaseDispatcher;
12902     IConfigImpl_vTable.find := @IConfigImpl_findDispatcher;
12903     IConfigImpl_vTable.findValue := @IConfigImpl_findValueDispatcher;
12904     IConfigImpl_vTable.findPos := @IConfigImpl_findPosDispatcher;
12905    
12906     IFirebirdConfImpl_vTable := FirebirdConfVTable.create;
12907 tony 315 IFirebirdConfImpl_vTable.version := 4;
12908 tony 45 IFirebirdConfImpl_vTable.addRef := @IFirebirdConfImpl_addRefDispatcher;
12909     IFirebirdConfImpl_vTable.release := @IFirebirdConfImpl_releaseDispatcher;
12910     IFirebirdConfImpl_vTable.getKey := @IFirebirdConfImpl_getKeyDispatcher;
12911     IFirebirdConfImpl_vTable.asInteger := @IFirebirdConfImpl_asIntegerDispatcher;
12912     IFirebirdConfImpl_vTable.asString := @IFirebirdConfImpl_asStringDispatcher;
12913     IFirebirdConfImpl_vTable.asBoolean := @IFirebirdConfImpl_asBooleanDispatcher;
12914 tony 315 IFirebirdConfImpl_vTable.getVersion := @IFirebirdConfImpl_getVersionDispatcher;
12915 tony 45
12916     IPluginConfigImpl_vTable := PluginConfigVTable.create;
12917 tony 315 IPluginConfigImpl_vTable.version := 3;
12918 tony 45 IPluginConfigImpl_vTable.addRef := @IPluginConfigImpl_addRefDispatcher;
12919     IPluginConfigImpl_vTable.release := @IPluginConfigImpl_releaseDispatcher;
12920     IPluginConfigImpl_vTable.getConfigFileName := @IPluginConfigImpl_getConfigFileNameDispatcher;
12921     IPluginConfigImpl_vTable.getDefaultConfig := @IPluginConfigImpl_getDefaultConfigDispatcher;
12922     IPluginConfigImpl_vTable.getFirebirdConf := @IPluginConfigImpl_getFirebirdConfDispatcher;
12923     IPluginConfigImpl_vTable.setReleaseDelay := @IPluginConfigImpl_setReleaseDelayDispatcher;
12924    
12925     IPluginFactoryImpl_vTable := PluginFactoryVTable.create;
12926 tony 315 IPluginFactoryImpl_vTable.version := 2;
12927 tony 45 IPluginFactoryImpl_vTable.createPlugin := @IPluginFactoryImpl_createPluginDispatcher;
12928    
12929     IPluginModuleImpl_vTable := PluginModuleVTable.create;
12930 tony 315 IPluginModuleImpl_vTable.version := 3;
12931 tony 45 IPluginModuleImpl_vTable.doClean := @IPluginModuleImpl_doCleanDispatcher;
12932 tony 315 IPluginModuleImpl_vTable.threadDetach := @IPluginModuleImpl_threadDetachDispatcher;
12933 tony 45
12934     IPluginManagerImpl_vTable := PluginManagerVTable.create;
12935 tony 315 IPluginManagerImpl_vTable.version := 2;
12936 tony 45 IPluginManagerImpl_vTable.registerPluginFactory := @IPluginManagerImpl_registerPluginFactoryDispatcher;
12937     IPluginManagerImpl_vTable.registerModule := @IPluginManagerImpl_registerModuleDispatcher;
12938     IPluginManagerImpl_vTable.unregisterModule := @IPluginManagerImpl_unregisterModuleDispatcher;
12939     IPluginManagerImpl_vTable.getPlugins := @IPluginManagerImpl_getPluginsDispatcher;
12940     IPluginManagerImpl_vTable.getConfig := @IPluginManagerImpl_getConfigDispatcher;
12941     IPluginManagerImpl_vTable.releasePlugin := @IPluginManagerImpl_releasePluginDispatcher;
12942    
12943     ICryptKeyImpl_vTable := CryptKeyVTable.create;
12944 tony 315 ICryptKeyImpl_vTable.version := 2;
12945 tony 45 ICryptKeyImpl_vTable.setSymmetric := @ICryptKeyImpl_setSymmetricDispatcher;
12946     ICryptKeyImpl_vTable.setAsymmetric := @ICryptKeyImpl_setAsymmetricDispatcher;
12947     ICryptKeyImpl_vTable.getEncryptKey := @ICryptKeyImpl_getEncryptKeyDispatcher;
12948     ICryptKeyImpl_vTable.getDecryptKey := @ICryptKeyImpl_getDecryptKeyDispatcher;
12949    
12950     IConfigManagerImpl_vTable := ConfigManagerVTable.create;
12951 tony 315 IConfigManagerImpl_vTable.version := 3;
12952 tony 45 IConfigManagerImpl_vTable.getDirectory := @IConfigManagerImpl_getDirectoryDispatcher;
12953     IConfigManagerImpl_vTable.getFirebirdConf := @IConfigManagerImpl_getFirebirdConfDispatcher;
12954     IConfigManagerImpl_vTable.getDatabaseConf := @IConfigManagerImpl_getDatabaseConfDispatcher;
12955     IConfigManagerImpl_vTable.getPluginConfig := @IConfigManagerImpl_getPluginConfigDispatcher;
12956     IConfigManagerImpl_vTable.getInstallDirectory := @IConfigManagerImpl_getInstallDirectoryDispatcher;
12957     IConfigManagerImpl_vTable.getRootDirectory := @IConfigManagerImpl_getRootDirectoryDispatcher;
12958 tony 315 IConfigManagerImpl_vTable.getDefaultSecurityDb := @IConfigManagerImpl_getDefaultSecurityDbDispatcher;
12959 tony 45
12960     IEventCallbackImpl_vTable := EventCallbackVTable.create;
12961     IEventCallbackImpl_vTable.version := 3;
12962     IEventCallbackImpl_vTable.addRef := @IEventCallbackImpl_addRefDispatcher;
12963     IEventCallbackImpl_vTable.release := @IEventCallbackImpl_releaseDispatcher;
12964     IEventCallbackImpl_vTable.eventCallbackFunction := @IEventCallbackImpl_eventCallbackFunctionDispatcher;
12965    
12966     IBlobImpl_vTable := BlobVTable.create;
12967 tony 315 IBlobImpl_vTable.version := 3;
12968 tony 45 IBlobImpl_vTable.addRef := @IBlobImpl_addRefDispatcher;
12969     IBlobImpl_vTable.release := @IBlobImpl_releaseDispatcher;
12970     IBlobImpl_vTable.getInfo := @IBlobImpl_getInfoDispatcher;
12971     IBlobImpl_vTable.getSegment := @IBlobImpl_getSegmentDispatcher;
12972     IBlobImpl_vTable.putSegment := @IBlobImpl_putSegmentDispatcher;
12973     IBlobImpl_vTable.cancel := @IBlobImpl_cancelDispatcher;
12974     IBlobImpl_vTable.close := @IBlobImpl_closeDispatcher;
12975     IBlobImpl_vTable.seek := @IBlobImpl_seekDispatcher;
12976    
12977     ITransactionImpl_vTable := TransactionVTable.create;
12978 tony 315 ITransactionImpl_vTable.version := 3;
12979 tony 45 ITransactionImpl_vTable.addRef := @ITransactionImpl_addRefDispatcher;
12980     ITransactionImpl_vTable.release := @ITransactionImpl_releaseDispatcher;
12981     ITransactionImpl_vTable.getInfo := @ITransactionImpl_getInfoDispatcher;
12982     ITransactionImpl_vTable.prepare := @ITransactionImpl_prepareDispatcher;
12983     ITransactionImpl_vTable.commit := @ITransactionImpl_commitDispatcher;
12984     ITransactionImpl_vTable.commitRetaining := @ITransactionImpl_commitRetainingDispatcher;
12985     ITransactionImpl_vTable.rollback := @ITransactionImpl_rollbackDispatcher;
12986     ITransactionImpl_vTable.rollbackRetaining := @ITransactionImpl_rollbackRetainingDispatcher;
12987     ITransactionImpl_vTable.disconnect := @ITransactionImpl_disconnectDispatcher;
12988     ITransactionImpl_vTable.join := @ITransactionImpl_joinDispatcher;
12989     ITransactionImpl_vTable.validate := @ITransactionImpl_validateDispatcher;
12990     ITransactionImpl_vTable.enterDtc := @ITransactionImpl_enterDtcDispatcher;
12991    
12992     IMessageMetadataImpl_vTable := MessageMetadataVTable.create;
12993 tony 315 IMessageMetadataImpl_vTable.version := 4;
12994 tony 45 IMessageMetadataImpl_vTable.addRef := @IMessageMetadataImpl_addRefDispatcher;
12995     IMessageMetadataImpl_vTable.release := @IMessageMetadataImpl_releaseDispatcher;
12996     IMessageMetadataImpl_vTable.getCount := @IMessageMetadataImpl_getCountDispatcher;
12997     IMessageMetadataImpl_vTable.getField := @IMessageMetadataImpl_getFieldDispatcher;
12998     IMessageMetadataImpl_vTable.getRelation := @IMessageMetadataImpl_getRelationDispatcher;
12999     IMessageMetadataImpl_vTable.getOwner := @IMessageMetadataImpl_getOwnerDispatcher;
13000     IMessageMetadataImpl_vTable.getAlias := @IMessageMetadataImpl_getAliasDispatcher;
13001     IMessageMetadataImpl_vTable.getType := @IMessageMetadataImpl_getTypeDispatcher;
13002     IMessageMetadataImpl_vTable.isNullable := @IMessageMetadataImpl_isNullableDispatcher;
13003     IMessageMetadataImpl_vTable.getSubType := @IMessageMetadataImpl_getSubTypeDispatcher;
13004     IMessageMetadataImpl_vTable.getLength := @IMessageMetadataImpl_getLengthDispatcher;
13005     IMessageMetadataImpl_vTable.getScale := @IMessageMetadataImpl_getScaleDispatcher;
13006     IMessageMetadataImpl_vTable.getCharSet := @IMessageMetadataImpl_getCharSetDispatcher;
13007     IMessageMetadataImpl_vTable.getOffset := @IMessageMetadataImpl_getOffsetDispatcher;
13008     IMessageMetadataImpl_vTable.getNullOffset := @IMessageMetadataImpl_getNullOffsetDispatcher;
13009     IMessageMetadataImpl_vTable.getBuilder := @IMessageMetadataImpl_getBuilderDispatcher;
13010     IMessageMetadataImpl_vTable.getMessageLength := @IMessageMetadataImpl_getMessageLengthDispatcher;
13011 tony 315 IMessageMetadataImpl_vTable.getAlignment := @IMessageMetadataImpl_getAlignmentDispatcher;
13012     IMessageMetadataImpl_vTable.getAlignedLength := @IMessageMetadataImpl_getAlignedLengthDispatcher;
13013 tony 45
13014     IMetadataBuilderImpl_vTable := MetadataBuilderVTable.create;
13015 tony 315 IMetadataBuilderImpl_vTable.version := 4;
13016 tony 45 IMetadataBuilderImpl_vTable.addRef := @IMetadataBuilderImpl_addRefDispatcher;
13017     IMetadataBuilderImpl_vTable.release := @IMetadataBuilderImpl_releaseDispatcher;
13018     IMetadataBuilderImpl_vTable.setType := @IMetadataBuilderImpl_setTypeDispatcher;
13019     IMetadataBuilderImpl_vTable.setSubType := @IMetadataBuilderImpl_setSubTypeDispatcher;
13020     IMetadataBuilderImpl_vTable.setLength := @IMetadataBuilderImpl_setLengthDispatcher;
13021     IMetadataBuilderImpl_vTable.setCharSet := @IMetadataBuilderImpl_setCharSetDispatcher;
13022     IMetadataBuilderImpl_vTable.setScale := @IMetadataBuilderImpl_setScaleDispatcher;
13023     IMetadataBuilderImpl_vTable.truncate := @IMetadataBuilderImpl_truncateDispatcher;
13024     IMetadataBuilderImpl_vTable.moveNameToIndex := @IMetadataBuilderImpl_moveNameToIndexDispatcher;
13025     IMetadataBuilderImpl_vTable.remove := @IMetadataBuilderImpl_removeDispatcher;
13026     IMetadataBuilderImpl_vTable.addField := @IMetadataBuilderImpl_addFieldDispatcher;
13027     IMetadataBuilderImpl_vTable.getMetadata := @IMetadataBuilderImpl_getMetadataDispatcher;
13028 tony 315 IMetadataBuilderImpl_vTable.setField := @IMetadataBuilderImpl_setFieldDispatcher;
13029     IMetadataBuilderImpl_vTable.setRelation := @IMetadataBuilderImpl_setRelationDispatcher;
13030     IMetadataBuilderImpl_vTable.setOwner := @IMetadataBuilderImpl_setOwnerDispatcher;
13031     IMetadataBuilderImpl_vTable.setAlias := @IMetadataBuilderImpl_setAliasDispatcher;
13032 tony 45
13033     IResultSetImpl_vTable := ResultSetVTable.create;
13034 tony 315 IResultSetImpl_vTable.version := 3;
13035 tony 45 IResultSetImpl_vTable.addRef := @IResultSetImpl_addRefDispatcher;
13036     IResultSetImpl_vTable.release := @IResultSetImpl_releaseDispatcher;
13037     IResultSetImpl_vTable.fetchNext := @IResultSetImpl_fetchNextDispatcher;
13038     IResultSetImpl_vTable.fetchPrior := @IResultSetImpl_fetchPriorDispatcher;
13039     IResultSetImpl_vTable.fetchFirst := @IResultSetImpl_fetchFirstDispatcher;
13040     IResultSetImpl_vTable.fetchLast := @IResultSetImpl_fetchLastDispatcher;
13041     IResultSetImpl_vTable.fetchAbsolute := @IResultSetImpl_fetchAbsoluteDispatcher;
13042     IResultSetImpl_vTable.fetchRelative := @IResultSetImpl_fetchRelativeDispatcher;
13043     IResultSetImpl_vTable.isEof := @IResultSetImpl_isEofDispatcher;
13044     IResultSetImpl_vTable.isBof := @IResultSetImpl_isBofDispatcher;
13045     IResultSetImpl_vTable.getMetadata := @IResultSetImpl_getMetadataDispatcher;
13046     IResultSetImpl_vTable.close := @IResultSetImpl_closeDispatcher;
13047     IResultSetImpl_vTable.setDelayedOutputFormat := @IResultSetImpl_setDelayedOutputFormatDispatcher;
13048    
13049     IStatementImpl_vTable := StatementVTable.create;
13050 tony 315 IStatementImpl_vTable.version := 4;
13051 tony 45 IStatementImpl_vTable.addRef := @IStatementImpl_addRefDispatcher;
13052     IStatementImpl_vTable.release := @IStatementImpl_releaseDispatcher;
13053     IStatementImpl_vTable.getInfo := @IStatementImpl_getInfoDispatcher;
13054     IStatementImpl_vTable.getType := @IStatementImpl_getTypeDispatcher;
13055     IStatementImpl_vTable.getPlan := @IStatementImpl_getPlanDispatcher;
13056     IStatementImpl_vTable.getAffectedRecords := @IStatementImpl_getAffectedRecordsDispatcher;
13057     IStatementImpl_vTable.getInputMetadata := @IStatementImpl_getInputMetadataDispatcher;
13058     IStatementImpl_vTable.getOutputMetadata := @IStatementImpl_getOutputMetadataDispatcher;
13059     IStatementImpl_vTable.execute := @IStatementImpl_executeDispatcher;
13060     IStatementImpl_vTable.openCursor := @IStatementImpl_openCursorDispatcher;
13061     IStatementImpl_vTable.setCursorName := @IStatementImpl_setCursorNameDispatcher;
13062     IStatementImpl_vTable.free := @IStatementImpl_freeDispatcher;
13063     IStatementImpl_vTable.getFlags := @IStatementImpl_getFlagsDispatcher;
13064 tony 315 IStatementImpl_vTable.getTimeout := @IStatementImpl_getTimeoutDispatcher;
13065     IStatementImpl_vTable.setTimeout := @IStatementImpl_setTimeoutDispatcher;
13066     IStatementImpl_vTable.createBatch := @IStatementImpl_createBatchDispatcher;
13067 tony 45
13068 tony 315 IBatchImpl_vTable := BatchVTable.create;
13069     IBatchImpl_vTable.version := 3;
13070     IBatchImpl_vTable.addRef := @IBatchImpl_addRefDispatcher;
13071     IBatchImpl_vTable.release := @IBatchImpl_releaseDispatcher;
13072     IBatchImpl_vTable.add := @IBatchImpl_addDispatcher;
13073     IBatchImpl_vTable.addBlob := @IBatchImpl_addBlobDispatcher;
13074     IBatchImpl_vTable.appendBlobData := @IBatchImpl_appendBlobDataDispatcher;
13075     IBatchImpl_vTable.addBlobStream := @IBatchImpl_addBlobStreamDispatcher;
13076     IBatchImpl_vTable.registerBlob := @IBatchImpl_registerBlobDispatcher;
13077     IBatchImpl_vTable.execute := @IBatchImpl_executeDispatcher;
13078     IBatchImpl_vTable.cancel := @IBatchImpl_cancelDispatcher;
13079     IBatchImpl_vTable.getBlobAlignment := @IBatchImpl_getBlobAlignmentDispatcher;
13080     IBatchImpl_vTable.getMetadata := @IBatchImpl_getMetadataDispatcher;
13081     IBatchImpl_vTable.setDefaultBpb := @IBatchImpl_setDefaultBpbDispatcher;
13082 tony 345 IBatchImpl_vTable.close := @IBatchImpl_closeDispatcher;
13083 tony 315
13084     IBatchCompletionStateImpl_vTable := BatchCompletionStateVTable.create;
13085     IBatchCompletionStateImpl_vTable.version := 3;
13086     IBatchCompletionStateImpl_vTable.dispose := @IBatchCompletionStateImpl_disposeDispatcher;
13087     IBatchCompletionStateImpl_vTable.getSize := @IBatchCompletionStateImpl_getSizeDispatcher;
13088     IBatchCompletionStateImpl_vTable.getState := @IBatchCompletionStateImpl_getStateDispatcher;
13089     IBatchCompletionStateImpl_vTable.findError := @IBatchCompletionStateImpl_findErrorDispatcher;
13090     IBatchCompletionStateImpl_vTable.getStatus := @IBatchCompletionStateImpl_getStatusDispatcher;
13091    
13092     IReplicatorImpl_vTable := ReplicatorVTable.create;
13093     IReplicatorImpl_vTable.version := 3;
13094     IReplicatorImpl_vTable.addRef := @IReplicatorImpl_addRefDispatcher;
13095     IReplicatorImpl_vTable.release := @IReplicatorImpl_releaseDispatcher;
13096     IReplicatorImpl_vTable.process := @IReplicatorImpl_processDispatcher;
13097     IReplicatorImpl_vTable.close := @IReplicatorImpl_closeDispatcher;
13098    
13099 tony 45 IRequestImpl_vTable := RequestVTable.create;
13100 tony 315 IRequestImpl_vTable.version := 3;
13101 tony 45 IRequestImpl_vTable.addRef := @IRequestImpl_addRefDispatcher;
13102     IRequestImpl_vTable.release := @IRequestImpl_releaseDispatcher;
13103     IRequestImpl_vTable.receive := @IRequestImpl_receiveDispatcher;
13104     IRequestImpl_vTable.send := @IRequestImpl_sendDispatcher;
13105     IRequestImpl_vTable.getInfo := @IRequestImpl_getInfoDispatcher;
13106     IRequestImpl_vTable.start := @IRequestImpl_startDispatcher;
13107     IRequestImpl_vTable.startAndSend := @IRequestImpl_startAndSendDispatcher;
13108     IRequestImpl_vTable.unwind := @IRequestImpl_unwindDispatcher;
13109     IRequestImpl_vTable.free := @IRequestImpl_freeDispatcher;
13110    
13111     IEventsImpl_vTable := EventsVTable.create;
13112     IEventsImpl_vTable.version := 3;
13113     IEventsImpl_vTable.addRef := @IEventsImpl_addRefDispatcher;
13114     IEventsImpl_vTable.release := @IEventsImpl_releaseDispatcher;
13115     IEventsImpl_vTable.cancel := @IEventsImpl_cancelDispatcher;
13116    
13117     IAttachmentImpl_vTable := AttachmentVTable.create;
13118 tony 315 IAttachmentImpl_vTable.version := 4;
13119 tony 45 IAttachmentImpl_vTable.addRef := @IAttachmentImpl_addRefDispatcher;
13120     IAttachmentImpl_vTable.release := @IAttachmentImpl_releaseDispatcher;
13121     IAttachmentImpl_vTable.getInfo := @IAttachmentImpl_getInfoDispatcher;
13122     IAttachmentImpl_vTable.startTransaction := @IAttachmentImpl_startTransactionDispatcher;
13123     IAttachmentImpl_vTable.reconnectTransaction := @IAttachmentImpl_reconnectTransactionDispatcher;
13124     IAttachmentImpl_vTable.compileRequest := @IAttachmentImpl_compileRequestDispatcher;
13125     IAttachmentImpl_vTable.transactRequest := @IAttachmentImpl_transactRequestDispatcher;
13126     IAttachmentImpl_vTable.createBlob := @IAttachmentImpl_createBlobDispatcher;
13127     IAttachmentImpl_vTable.openBlob := @IAttachmentImpl_openBlobDispatcher;
13128     IAttachmentImpl_vTable.getSlice := @IAttachmentImpl_getSliceDispatcher;
13129     IAttachmentImpl_vTable.putSlice := @IAttachmentImpl_putSliceDispatcher;
13130     IAttachmentImpl_vTable.executeDyn := @IAttachmentImpl_executeDynDispatcher;
13131     IAttachmentImpl_vTable.prepare := @IAttachmentImpl_prepareDispatcher;
13132     IAttachmentImpl_vTable.execute := @IAttachmentImpl_executeDispatcher;
13133     IAttachmentImpl_vTable.openCursor := @IAttachmentImpl_openCursorDispatcher;
13134     IAttachmentImpl_vTable.queEvents := @IAttachmentImpl_queEventsDispatcher;
13135     IAttachmentImpl_vTable.cancelOperation := @IAttachmentImpl_cancelOperationDispatcher;
13136     IAttachmentImpl_vTable.ping := @IAttachmentImpl_pingDispatcher;
13137     IAttachmentImpl_vTable.detach := @IAttachmentImpl_detachDispatcher;
13138     IAttachmentImpl_vTable.dropDatabase := @IAttachmentImpl_dropDatabaseDispatcher;
13139 tony 315 IAttachmentImpl_vTable.getIdleTimeout := @IAttachmentImpl_getIdleTimeoutDispatcher;
13140     IAttachmentImpl_vTable.setIdleTimeout := @IAttachmentImpl_setIdleTimeoutDispatcher;
13141     IAttachmentImpl_vTable.getStatementTimeout := @IAttachmentImpl_getStatementTimeoutDispatcher;
13142     IAttachmentImpl_vTable.setStatementTimeout := @IAttachmentImpl_setStatementTimeoutDispatcher;
13143     IAttachmentImpl_vTable.createBatch := @IAttachmentImpl_createBatchDispatcher;
13144     IAttachmentImpl_vTable.createReplicator := @IAttachmentImpl_createReplicatorDispatcher;
13145 tony 45
13146     IServiceImpl_vTable := ServiceVTable.create;
13147 tony 315 IServiceImpl_vTable.version := 3;
13148 tony 45 IServiceImpl_vTable.addRef := @IServiceImpl_addRefDispatcher;
13149     IServiceImpl_vTable.release := @IServiceImpl_releaseDispatcher;
13150     IServiceImpl_vTable.detach := @IServiceImpl_detachDispatcher;
13151     IServiceImpl_vTable.query := @IServiceImpl_queryDispatcher;
13152     IServiceImpl_vTable.start := @IServiceImpl_startDispatcher;
13153    
13154     IProviderImpl_vTable := ProviderVTable.create;
13155 tony 315 IProviderImpl_vTable.version := 4;
13156 tony 45 IProviderImpl_vTable.addRef := @IProviderImpl_addRefDispatcher;
13157     IProviderImpl_vTable.release := @IProviderImpl_releaseDispatcher;
13158     IProviderImpl_vTable.setOwner := @IProviderImpl_setOwnerDispatcher;
13159     IProviderImpl_vTable.getOwner := @IProviderImpl_getOwnerDispatcher;
13160     IProviderImpl_vTable.attachDatabase := @IProviderImpl_attachDatabaseDispatcher;
13161     IProviderImpl_vTable.createDatabase := @IProviderImpl_createDatabaseDispatcher;
13162     IProviderImpl_vTable.attachServiceManager := @IProviderImpl_attachServiceManagerDispatcher;
13163     IProviderImpl_vTable.shutdown := @IProviderImpl_shutdownDispatcher;
13164     IProviderImpl_vTable.setDbCryptCallback := @IProviderImpl_setDbCryptCallbackDispatcher;
13165    
13166     IDtcStartImpl_vTable := DtcStartVTable.create;
13167 tony 315 IDtcStartImpl_vTable.version := 3;
13168 tony 45 IDtcStartImpl_vTable.dispose := @IDtcStartImpl_disposeDispatcher;
13169     IDtcStartImpl_vTable.addAttachment := @IDtcStartImpl_addAttachmentDispatcher;
13170     IDtcStartImpl_vTable.addWithTpb := @IDtcStartImpl_addWithTpbDispatcher;
13171     IDtcStartImpl_vTable.start := @IDtcStartImpl_startDispatcher;
13172    
13173     IDtcImpl_vTable := DtcVTable.create;
13174     IDtcImpl_vTable.version := 2;
13175     IDtcImpl_vTable.join := @IDtcImpl_joinDispatcher;
13176     IDtcImpl_vTable.startBuilder := @IDtcImpl_startBuilderDispatcher;
13177    
13178     IAuthImpl_vTable := AuthVTable.create;
13179     IAuthImpl_vTable.version := 4;
13180     IAuthImpl_vTable.addRef := @IAuthImpl_addRefDispatcher;
13181     IAuthImpl_vTable.release := @IAuthImpl_releaseDispatcher;
13182     IAuthImpl_vTable.setOwner := @IAuthImpl_setOwnerDispatcher;
13183     IAuthImpl_vTable.getOwner := @IAuthImpl_getOwnerDispatcher;
13184    
13185     IWriterImpl_vTable := WriterVTable.create;
13186 tony 315 IWriterImpl_vTable.version := 2;
13187 tony 45 IWriterImpl_vTable.reset := @IWriterImpl_resetDispatcher;
13188     IWriterImpl_vTable.add := @IWriterImpl_addDispatcher;
13189     IWriterImpl_vTable.setType := @IWriterImpl_setTypeDispatcher;
13190     IWriterImpl_vTable.setDb := @IWriterImpl_setDbDispatcher;
13191    
13192     IServerBlockImpl_vTable := ServerBlockVTable.create;
13193 tony 315 IServerBlockImpl_vTable.version := 2;
13194 tony 45 IServerBlockImpl_vTable.getLogin := @IServerBlockImpl_getLoginDispatcher;
13195     IServerBlockImpl_vTable.getData := @IServerBlockImpl_getDataDispatcher;
13196     IServerBlockImpl_vTable.putData := @IServerBlockImpl_putDataDispatcher;
13197     IServerBlockImpl_vTable.newKey := @IServerBlockImpl_newKeyDispatcher;
13198    
13199     IClientBlockImpl_vTable := ClientBlockVTable.create;
13200 tony 315 IClientBlockImpl_vTable.version := 4;
13201 tony 45 IClientBlockImpl_vTable.addRef := @IClientBlockImpl_addRefDispatcher;
13202     IClientBlockImpl_vTable.release := @IClientBlockImpl_releaseDispatcher;
13203     IClientBlockImpl_vTable.getLogin := @IClientBlockImpl_getLoginDispatcher;
13204     IClientBlockImpl_vTable.getPassword := @IClientBlockImpl_getPasswordDispatcher;
13205     IClientBlockImpl_vTable.getData := @IClientBlockImpl_getDataDispatcher;
13206     IClientBlockImpl_vTable.putData := @IClientBlockImpl_putDataDispatcher;
13207     IClientBlockImpl_vTable.newKey := @IClientBlockImpl_newKeyDispatcher;
13208 tony 315 IClientBlockImpl_vTable.getAuthBlock := @IClientBlockImpl_getAuthBlockDispatcher;
13209 tony 45
13210     IServerImpl_vTable := ServerVTable.create;
13211 tony 315 IServerImpl_vTable.version := 6;
13212 tony 45 IServerImpl_vTable.addRef := @IServerImpl_addRefDispatcher;
13213     IServerImpl_vTable.release := @IServerImpl_releaseDispatcher;
13214     IServerImpl_vTable.setOwner := @IServerImpl_setOwnerDispatcher;
13215     IServerImpl_vTable.getOwner := @IServerImpl_getOwnerDispatcher;
13216     IServerImpl_vTable.authenticate := @IServerImpl_authenticateDispatcher;
13217 tony 315 IServerImpl_vTable.setDbCryptCallback := @IServerImpl_setDbCryptCallbackDispatcher;
13218 tony 45
13219     IClientImpl_vTable := ClientVTable.create;
13220     IClientImpl_vTable.version := 5;
13221     IClientImpl_vTable.addRef := @IClientImpl_addRefDispatcher;
13222     IClientImpl_vTable.release := @IClientImpl_releaseDispatcher;
13223     IClientImpl_vTable.setOwner := @IClientImpl_setOwnerDispatcher;
13224     IClientImpl_vTable.getOwner := @IClientImpl_getOwnerDispatcher;
13225     IClientImpl_vTable.authenticate := @IClientImpl_authenticateDispatcher;
13226    
13227     IUserFieldImpl_vTable := UserFieldVTable.create;
13228 tony 315 IUserFieldImpl_vTable.version := 2;
13229 tony 45 IUserFieldImpl_vTable.entered := @IUserFieldImpl_enteredDispatcher;
13230     IUserFieldImpl_vTable.specified := @IUserFieldImpl_specifiedDispatcher;
13231     IUserFieldImpl_vTable.setEntered := @IUserFieldImpl_setEnteredDispatcher;
13232    
13233     ICharUserFieldImpl_vTable := CharUserFieldVTable.create;
13234 tony 315 ICharUserFieldImpl_vTable.version := 3;
13235 tony 45 ICharUserFieldImpl_vTable.entered := @ICharUserFieldImpl_enteredDispatcher;
13236     ICharUserFieldImpl_vTable.specified := @ICharUserFieldImpl_specifiedDispatcher;
13237     ICharUserFieldImpl_vTable.setEntered := @ICharUserFieldImpl_setEnteredDispatcher;
13238     ICharUserFieldImpl_vTable.get := @ICharUserFieldImpl_getDispatcher;
13239     ICharUserFieldImpl_vTable.set_ := @ICharUserFieldImpl_set_Dispatcher;
13240    
13241     IIntUserFieldImpl_vTable := IntUserFieldVTable.create;
13242 tony 315 IIntUserFieldImpl_vTable.version := 3;
13243 tony 45 IIntUserFieldImpl_vTable.entered := @IIntUserFieldImpl_enteredDispatcher;
13244     IIntUserFieldImpl_vTable.specified := @IIntUserFieldImpl_specifiedDispatcher;
13245     IIntUserFieldImpl_vTable.setEntered := @IIntUserFieldImpl_setEnteredDispatcher;
13246     IIntUserFieldImpl_vTable.get := @IIntUserFieldImpl_getDispatcher;
13247     IIntUserFieldImpl_vTable.set_ := @IIntUserFieldImpl_set_Dispatcher;
13248    
13249     IUserImpl_vTable := UserVTable.create;
13250 tony 315 IUserImpl_vTable.version := 2;
13251 tony 45 IUserImpl_vTable.operation := @IUserImpl_operationDispatcher;
13252     IUserImpl_vTable.userName := @IUserImpl_userNameDispatcher;
13253     IUserImpl_vTable.password := @IUserImpl_passwordDispatcher;
13254     IUserImpl_vTable.firstName := @IUserImpl_firstNameDispatcher;
13255     IUserImpl_vTable.lastName := @IUserImpl_lastNameDispatcher;
13256     IUserImpl_vTable.middleName := @IUserImpl_middleNameDispatcher;
13257     IUserImpl_vTable.comment := @IUserImpl_commentDispatcher;
13258     IUserImpl_vTable.attributes := @IUserImpl_attributesDispatcher;
13259     IUserImpl_vTable.active := @IUserImpl_activeDispatcher;
13260     IUserImpl_vTable.admin := @IUserImpl_adminDispatcher;
13261     IUserImpl_vTable.clear := @IUserImpl_clearDispatcher;
13262    
13263     IListUsersImpl_vTable := ListUsersVTable.create;
13264 tony 315 IListUsersImpl_vTable.version := 2;
13265 tony 45 IListUsersImpl_vTable.list := @IListUsersImpl_listDispatcher;
13266    
13267     ILogonInfoImpl_vTable := LogonInfoVTable.create;
13268 tony 315 ILogonInfoImpl_vTable.version := 3;
13269 tony 45 ILogonInfoImpl_vTable.name := @ILogonInfoImpl_nameDispatcher;
13270     ILogonInfoImpl_vTable.role := @ILogonInfoImpl_roleDispatcher;
13271     ILogonInfoImpl_vTable.networkProtocol := @ILogonInfoImpl_networkProtocolDispatcher;
13272     ILogonInfoImpl_vTable.remoteAddress := @ILogonInfoImpl_remoteAddressDispatcher;
13273     ILogonInfoImpl_vTable.authBlock := @ILogonInfoImpl_authBlockDispatcher;
13274 tony 315 ILogonInfoImpl_vTable.attachment := @ILogonInfoImpl_attachmentDispatcher;
13275     ILogonInfoImpl_vTable.transaction := @ILogonInfoImpl_transactionDispatcher;
13276 tony 45
13277     IManagementImpl_vTable := ManagementVTable.create;
13278 tony 315 IManagementImpl_vTable.version := 4;
13279 tony 45 IManagementImpl_vTable.addRef := @IManagementImpl_addRefDispatcher;
13280     IManagementImpl_vTable.release := @IManagementImpl_releaseDispatcher;
13281     IManagementImpl_vTable.setOwner := @IManagementImpl_setOwnerDispatcher;
13282     IManagementImpl_vTable.getOwner := @IManagementImpl_getOwnerDispatcher;
13283     IManagementImpl_vTable.start := @IManagementImpl_startDispatcher;
13284     IManagementImpl_vTable.execute := @IManagementImpl_executeDispatcher;
13285     IManagementImpl_vTable.commit := @IManagementImpl_commitDispatcher;
13286     IManagementImpl_vTable.rollback := @IManagementImpl_rollbackDispatcher;
13287    
13288 tony 315 IAuthBlockImpl_vTable := AuthBlockVTable.create;
13289     IAuthBlockImpl_vTable.version := 2;
13290     IAuthBlockImpl_vTable.getType := @IAuthBlockImpl_getTypeDispatcher;
13291     IAuthBlockImpl_vTable.getName := @IAuthBlockImpl_getNameDispatcher;
13292     IAuthBlockImpl_vTable.getPlugin := @IAuthBlockImpl_getPluginDispatcher;
13293     IAuthBlockImpl_vTable.getSecurityDb := @IAuthBlockImpl_getSecurityDbDispatcher;
13294     IAuthBlockImpl_vTable.getOriginalPlugin := @IAuthBlockImpl_getOriginalPluginDispatcher;
13295     IAuthBlockImpl_vTable.next := @IAuthBlockImpl_nextDispatcher;
13296     IAuthBlockImpl_vTable.first := @IAuthBlockImpl_firstDispatcher;
13297    
13298 tony 45 IWireCryptPluginImpl_vTable := WireCryptPluginVTable.create;
13299 tony 315 IWireCryptPluginImpl_vTable.version := 5;
13300 tony 45 IWireCryptPluginImpl_vTable.addRef := @IWireCryptPluginImpl_addRefDispatcher;
13301     IWireCryptPluginImpl_vTable.release := @IWireCryptPluginImpl_releaseDispatcher;
13302     IWireCryptPluginImpl_vTable.setOwner := @IWireCryptPluginImpl_setOwnerDispatcher;
13303     IWireCryptPluginImpl_vTable.getOwner := @IWireCryptPluginImpl_getOwnerDispatcher;
13304     IWireCryptPluginImpl_vTable.getKnownTypes := @IWireCryptPluginImpl_getKnownTypesDispatcher;
13305     IWireCryptPluginImpl_vTable.setKey := @IWireCryptPluginImpl_setKeyDispatcher;
13306     IWireCryptPluginImpl_vTable.encrypt := @IWireCryptPluginImpl_encryptDispatcher;
13307     IWireCryptPluginImpl_vTable.decrypt := @IWireCryptPluginImpl_decryptDispatcher;
13308 tony 315 IWireCryptPluginImpl_vTable.getSpecificData := @IWireCryptPluginImpl_getSpecificDataDispatcher;
13309     IWireCryptPluginImpl_vTable.setSpecificData := @IWireCryptPluginImpl_setSpecificDataDispatcher;
13310 tony 45
13311     ICryptKeyCallbackImpl_vTable := CryptKeyCallbackVTable.create;
13312 tony 315 ICryptKeyCallbackImpl_vTable.version := 2;
13313 tony 45 ICryptKeyCallbackImpl_vTable.callback := @ICryptKeyCallbackImpl_callbackDispatcher;
13314    
13315     IKeyHolderPluginImpl_vTable := KeyHolderPluginVTable.create;
13316 tony 315 IKeyHolderPluginImpl_vTable.version := 5;
13317 tony 45 IKeyHolderPluginImpl_vTable.addRef := @IKeyHolderPluginImpl_addRefDispatcher;
13318     IKeyHolderPluginImpl_vTable.release := @IKeyHolderPluginImpl_releaseDispatcher;
13319     IKeyHolderPluginImpl_vTable.setOwner := @IKeyHolderPluginImpl_setOwnerDispatcher;
13320     IKeyHolderPluginImpl_vTable.getOwner := @IKeyHolderPluginImpl_getOwnerDispatcher;
13321     IKeyHolderPluginImpl_vTable.keyCallback := @IKeyHolderPluginImpl_keyCallbackDispatcher;
13322     IKeyHolderPluginImpl_vTable.keyHandle := @IKeyHolderPluginImpl_keyHandleDispatcher;
13323 tony 315 IKeyHolderPluginImpl_vTable.useOnlyOwnKeys := @IKeyHolderPluginImpl_useOnlyOwnKeysDispatcher;
13324     IKeyHolderPluginImpl_vTable.chainHandle := @IKeyHolderPluginImpl_chainHandleDispatcher;
13325 tony 45
13326 tony 315 IDbCryptInfoImpl_vTable := DbCryptInfoVTable.create;
13327     IDbCryptInfoImpl_vTable.version := 3;
13328     IDbCryptInfoImpl_vTable.addRef := @IDbCryptInfoImpl_addRefDispatcher;
13329     IDbCryptInfoImpl_vTable.release := @IDbCryptInfoImpl_releaseDispatcher;
13330     IDbCryptInfoImpl_vTable.getDatabaseFullPath := @IDbCryptInfoImpl_getDatabaseFullPathDispatcher;
13331    
13332 tony 45 IDbCryptPluginImpl_vTable := DbCryptPluginVTable.create;
13333 tony 315 IDbCryptPluginImpl_vTable.version := 5;
13334 tony 45 IDbCryptPluginImpl_vTable.addRef := @IDbCryptPluginImpl_addRefDispatcher;
13335     IDbCryptPluginImpl_vTable.release := @IDbCryptPluginImpl_releaseDispatcher;
13336     IDbCryptPluginImpl_vTable.setOwner := @IDbCryptPluginImpl_setOwnerDispatcher;
13337     IDbCryptPluginImpl_vTable.getOwner := @IDbCryptPluginImpl_getOwnerDispatcher;
13338     IDbCryptPluginImpl_vTable.setKey := @IDbCryptPluginImpl_setKeyDispatcher;
13339     IDbCryptPluginImpl_vTable.encrypt := @IDbCryptPluginImpl_encryptDispatcher;
13340     IDbCryptPluginImpl_vTable.decrypt := @IDbCryptPluginImpl_decryptDispatcher;
13341 tony 315 IDbCryptPluginImpl_vTable.setInfo := @IDbCryptPluginImpl_setInfoDispatcher;
13342 tony 45
13343     IExternalContextImpl_vTable := ExternalContextVTable.create;
13344 tony 315 IExternalContextImpl_vTable.version := 2;
13345 tony 45 IExternalContextImpl_vTable.getMaster := @IExternalContextImpl_getMasterDispatcher;
13346     IExternalContextImpl_vTable.getEngine := @IExternalContextImpl_getEngineDispatcher;
13347     IExternalContextImpl_vTable.getAttachment := @IExternalContextImpl_getAttachmentDispatcher;
13348     IExternalContextImpl_vTable.getTransaction := @IExternalContextImpl_getTransactionDispatcher;
13349     IExternalContextImpl_vTable.getUserName := @IExternalContextImpl_getUserNameDispatcher;
13350     IExternalContextImpl_vTable.getDatabaseName := @IExternalContextImpl_getDatabaseNameDispatcher;
13351     IExternalContextImpl_vTable.getClientCharSet := @IExternalContextImpl_getClientCharSetDispatcher;
13352     IExternalContextImpl_vTable.obtainInfoCode := @IExternalContextImpl_obtainInfoCodeDispatcher;
13353     IExternalContextImpl_vTable.getInfo := @IExternalContextImpl_getInfoDispatcher;
13354     IExternalContextImpl_vTable.setInfo := @IExternalContextImpl_setInfoDispatcher;
13355    
13356     IExternalResultSetImpl_vTable := ExternalResultSetVTable.create;
13357 tony 315 IExternalResultSetImpl_vTable.version := 3;
13358 tony 45 IExternalResultSetImpl_vTable.dispose := @IExternalResultSetImpl_disposeDispatcher;
13359     IExternalResultSetImpl_vTable.fetch := @IExternalResultSetImpl_fetchDispatcher;
13360    
13361     IExternalFunctionImpl_vTable := ExternalFunctionVTable.create;
13362     IExternalFunctionImpl_vTable.version := 3;
13363     IExternalFunctionImpl_vTable.dispose := @IExternalFunctionImpl_disposeDispatcher;
13364     IExternalFunctionImpl_vTable.getCharSet := @IExternalFunctionImpl_getCharSetDispatcher;
13365     IExternalFunctionImpl_vTable.execute := @IExternalFunctionImpl_executeDispatcher;
13366    
13367     IExternalProcedureImpl_vTable := ExternalProcedureVTable.create;
13368     IExternalProcedureImpl_vTable.version := 3;
13369     IExternalProcedureImpl_vTable.dispose := @IExternalProcedureImpl_disposeDispatcher;
13370     IExternalProcedureImpl_vTable.getCharSet := @IExternalProcedureImpl_getCharSetDispatcher;
13371     IExternalProcedureImpl_vTable.open := @IExternalProcedureImpl_openDispatcher;
13372    
13373     IExternalTriggerImpl_vTable := ExternalTriggerVTable.create;
13374     IExternalTriggerImpl_vTable.version := 3;
13375     IExternalTriggerImpl_vTable.dispose := @IExternalTriggerImpl_disposeDispatcher;
13376     IExternalTriggerImpl_vTable.getCharSet := @IExternalTriggerImpl_getCharSetDispatcher;
13377     IExternalTriggerImpl_vTable.execute := @IExternalTriggerImpl_executeDispatcher;
13378    
13379     IRoutineMetadataImpl_vTable := RoutineMetadataVTable.create;
13380 tony 315 IRoutineMetadataImpl_vTable.version := 2;
13381 tony 45 IRoutineMetadataImpl_vTable.getPackage := @IRoutineMetadataImpl_getPackageDispatcher;
13382     IRoutineMetadataImpl_vTable.getName := @IRoutineMetadataImpl_getNameDispatcher;
13383     IRoutineMetadataImpl_vTable.getEntryPoint := @IRoutineMetadataImpl_getEntryPointDispatcher;
13384     IRoutineMetadataImpl_vTable.getBody := @IRoutineMetadataImpl_getBodyDispatcher;
13385     IRoutineMetadataImpl_vTable.getInputMetadata := @IRoutineMetadataImpl_getInputMetadataDispatcher;
13386     IRoutineMetadataImpl_vTable.getOutputMetadata := @IRoutineMetadataImpl_getOutputMetadataDispatcher;
13387     IRoutineMetadataImpl_vTable.getTriggerMetadata := @IRoutineMetadataImpl_getTriggerMetadataDispatcher;
13388     IRoutineMetadataImpl_vTable.getTriggerTable := @IRoutineMetadataImpl_getTriggerTableDispatcher;
13389     IRoutineMetadataImpl_vTable.getTriggerType := @IRoutineMetadataImpl_getTriggerTypeDispatcher;
13390    
13391     IExternalEngineImpl_vTable := ExternalEngineVTable.create;
13392 tony 315 IExternalEngineImpl_vTable.version := 4;
13393 tony 45 IExternalEngineImpl_vTable.addRef := @IExternalEngineImpl_addRefDispatcher;
13394     IExternalEngineImpl_vTable.release := @IExternalEngineImpl_releaseDispatcher;
13395     IExternalEngineImpl_vTable.setOwner := @IExternalEngineImpl_setOwnerDispatcher;
13396     IExternalEngineImpl_vTable.getOwner := @IExternalEngineImpl_getOwnerDispatcher;
13397     IExternalEngineImpl_vTable.open := @IExternalEngineImpl_openDispatcher;
13398     IExternalEngineImpl_vTable.openAttachment := @IExternalEngineImpl_openAttachmentDispatcher;
13399     IExternalEngineImpl_vTable.closeAttachment := @IExternalEngineImpl_closeAttachmentDispatcher;
13400     IExternalEngineImpl_vTable.makeFunction := @IExternalEngineImpl_makeFunctionDispatcher;
13401     IExternalEngineImpl_vTable.makeProcedure := @IExternalEngineImpl_makeProcedureDispatcher;
13402     IExternalEngineImpl_vTable.makeTrigger := @IExternalEngineImpl_makeTriggerDispatcher;
13403    
13404     ITimerImpl_vTable := TimerVTable.create;
13405     ITimerImpl_vTable.version := 3;
13406     ITimerImpl_vTable.addRef := @ITimerImpl_addRefDispatcher;
13407     ITimerImpl_vTable.release := @ITimerImpl_releaseDispatcher;
13408     ITimerImpl_vTable.handler := @ITimerImpl_handlerDispatcher;
13409    
13410     ITimerControlImpl_vTable := TimerControlVTable.create;
13411     ITimerControlImpl_vTable.version := 2;
13412     ITimerControlImpl_vTable.start := @ITimerControlImpl_startDispatcher;
13413     ITimerControlImpl_vTable.stop := @ITimerControlImpl_stopDispatcher;
13414    
13415     IVersionCallbackImpl_vTable := VersionCallbackVTable.create;
13416 tony 315 IVersionCallbackImpl_vTable.version := 2;
13417 tony 45 IVersionCallbackImpl_vTable.callback := @IVersionCallbackImpl_callbackDispatcher;
13418    
13419     IUtilImpl_vTable := UtilVTable.create;
13420 tony 315 IUtilImpl_vTable.version := 4;
13421 tony 45 IUtilImpl_vTable.getFbVersion := @IUtilImpl_getFbVersionDispatcher;
13422     IUtilImpl_vTable.loadBlob := @IUtilImpl_loadBlobDispatcher;
13423     IUtilImpl_vTable.dumpBlob := @IUtilImpl_dumpBlobDispatcher;
13424     IUtilImpl_vTable.getPerfCounters := @IUtilImpl_getPerfCountersDispatcher;
13425     IUtilImpl_vTable.executeCreateDatabase := @IUtilImpl_executeCreateDatabaseDispatcher;
13426     IUtilImpl_vTable.decodeDate := @IUtilImpl_decodeDateDispatcher;
13427     IUtilImpl_vTable.decodeTime := @IUtilImpl_decodeTimeDispatcher;
13428     IUtilImpl_vTable.encodeDate := @IUtilImpl_encodeDateDispatcher;
13429     IUtilImpl_vTable.encodeTime := @IUtilImpl_encodeTimeDispatcher;
13430     IUtilImpl_vTable.formatStatus := @IUtilImpl_formatStatusDispatcher;
13431     IUtilImpl_vTable.getClientVersion := @IUtilImpl_getClientVersionDispatcher;
13432     IUtilImpl_vTable.getXpbBuilder := @IUtilImpl_getXpbBuilderDispatcher;
13433     IUtilImpl_vTable.setOffsets := @IUtilImpl_setOffsetsDispatcher;
13434 tony 315 IUtilImpl_vTable.getDecFloat16 := @IUtilImpl_getDecFloat16Dispatcher;
13435     IUtilImpl_vTable.getDecFloat34 := @IUtilImpl_getDecFloat34Dispatcher;
13436     IUtilImpl_vTable.decodeTimeTz := @IUtilImpl_decodeTimeTzDispatcher;
13437     IUtilImpl_vTable.decodeTimeStampTz := @IUtilImpl_decodeTimeStampTzDispatcher;
13438     IUtilImpl_vTable.encodeTimeTz := @IUtilImpl_encodeTimeTzDispatcher;
13439     IUtilImpl_vTable.encodeTimeStampTz := @IUtilImpl_encodeTimeStampTzDispatcher;
13440     IUtilImpl_vTable.getInt128 := @IUtilImpl_getInt128Dispatcher;
13441     IUtilImpl_vTable.decodeTimeTzEx := @IUtilImpl_decodeTimeTzExDispatcher;
13442     IUtilImpl_vTable.decodeTimeStampTzEx := @IUtilImpl_decodeTimeStampTzExDispatcher;
13443 tony 45
13444     IOffsetsCallbackImpl_vTable := OffsetsCallbackVTable.create;
13445 tony 315 IOffsetsCallbackImpl_vTable.version := 2;
13446 tony 45 IOffsetsCallbackImpl_vTable.setOffset := @IOffsetsCallbackImpl_setOffsetDispatcher;
13447    
13448     IXpbBuilderImpl_vTable := XpbBuilderVTable.create;
13449 tony 315 IXpbBuilderImpl_vTable.version := 3;
13450 tony 45 IXpbBuilderImpl_vTable.dispose := @IXpbBuilderImpl_disposeDispatcher;
13451     IXpbBuilderImpl_vTable.clear := @IXpbBuilderImpl_clearDispatcher;
13452     IXpbBuilderImpl_vTable.removeCurrent := @IXpbBuilderImpl_removeCurrentDispatcher;
13453     IXpbBuilderImpl_vTable.insertInt := @IXpbBuilderImpl_insertIntDispatcher;
13454     IXpbBuilderImpl_vTable.insertBigInt := @IXpbBuilderImpl_insertBigIntDispatcher;
13455     IXpbBuilderImpl_vTable.insertBytes := @IXpbBuilderImpl_insertBytesDispatcher;
13456     IXpbBuilderImpl_vTable.insertString := @IXpbBuilderImpl_insertStringDispatcher;
13457     IXpbBuilderImpl_vTable.insertTag := @IXpbBuilderImpl_insertTagDispatcher;
13458     IXpbBuilderImpl_vTable.isEof := @IXpbBuilderImpl_isEofDispatcher;
13459     IXpbBuilderImpl_vTable.moveNext := @IXpbBuilderImpl_moveNextDispatcher;
13460     IXpbBuilderImpl_vTable.rewind := @IXpbBuilderImpl_rewindDispatcher;
13461     IXpbBuilderImpl_vTable.findFirst := @IXpbBuilderImpl_findFirstDispatcher;
13462     IXpbBuilderImpl_vTable.findNext := @IXpbBuilderImpl_findNextDispatcher;
13463     IXpbBuilderImpl_vTable.getTag := @IXpbBuilderImpl_getTagDispatcher;
13464     IXpbBuilderImpl_vTable.getLength := @IXpbBuilderImpl_getLengthDispatcher;
13465     IXpbBuilderImpl_vTable.getInt := @IXpbBuilderImpl_getIntDispatcher;
13466     IXpbBuilderImpl_vTable.getBigInt := @IXpbBuilderImpl_getBigIntDispatcher;
13467     IXpbBuilderImpl_vTable.getString := @IXpbBuilderImpl_getStringDispatcher;
13468     IXpbBuilderImpl_vTable.getBytes := @IXpbBuilderImpl_getBytesDispatcher;
13469     IXpbBuilderImpl_vTable.getBufferLength := @IXpbBuilderImpl_getBufferLengthDispatcher;
13470     IXpbBuilderImpl_vTable.getBuffer := @IXpbBuilderImpl_getBufferDispatcher;
13471    
13472     ITraceConnectionImpl_vTable := TraceConnectionVTable.create;
13473 tony 315 ITraceConnectionImpl_vTable.version := 2;
13474 tony 45 ITraceConnectionImpl_vTable.getKind := @ITraceConnectionImpl_getKindDispatcher;
13475     ITraceConnectionImpl_vTable.getProcessID := @ITraceConnectionImpl_getProcessIDDispatcher;
13476     ITraceConnectionImpl_vTable.getUserName := @ITraceConnectionImpl_getUserNameDispatcher;
13477     ITraceConnectionImpl_vTable.getRoleName := @ITraceConnectionImpl_getRoleNameDispatcher;
13478     ITraceConnectionImpl_vTable.getCharSet := @ITraceConnectionImpl_getCharSetDispatcher;
13479     ITraceConnectionImpl_vTable.getRemoteProtocol := @ITraceConnectionImpl_getRemoteProtocolDispatcher;
13480     ITraceConnectionImpl_vTable.getRemoteAddress := @ITraceConnectionImpl_getRemoteAddressDispatcher;
13481     ITraceConnectionImpl_vTable.getRemoteProcessID := @ITraceConnectionImpl_getRemoteProcessIDDispatcher;
13482     ITraceConnectionImpl_vTable.getRemoteProcessName := @ITraceConnectionImpl_getRemoteProcessNameDispatcher;
13483    
13484     ITraceDatabaseConnectionImpl_vTable := TraceDatabaseConnectionVTable.create;
13485 tony 315 ITraceDatabaseConnectionImpl_vTable.version := 3;
13486 tony 45 ITraceDatabaseConnectionImpl_vTable.getKind := @ITraceDatabaseConnectionImpl_getKindDispatcher;
13487     ITraceDatabaseConnectionImpl_vTable.getProcessID := @ITraceDatabaseConnectionImpl_getProcessIDDispatcher;
13488     ITraceDatabaseConnectionImpl_vTable.getUserName := @ITraceDatabaseConnectionImpl_getUserNameDispatcher;
13489     ITraceDatabaseConnectionImpl_vTable.getRoleName := @ITraceDatabaseConnectionImpl_getRoleNameDispatcher;
13490     ITraceDatabaseConnectionImpl_vTable.getCharSet := @ITraceDatabaseConnectionImpl_getCharSetDispatcher;
13491     ITraceDatabaseConnectionImpl_vTable.getRemoteProtocol := @ITraceDatabaseConnectionImpl_getRemoteProtocolDispatcher;
13492     ITraceDatabaseConnectionImpl_vTable.getRemoteAddress := @ITraceDatabaseConnectionImpl_getRemoteAddressDispatcher;
13493     ITraceDatabaseConnectionImpl_vTable.getRemoteProcessID := @ITraceDatabaseConnectionImpl_getRemoteProcessIDDispatcher;
13494     ITraceDatabaseConnectionImpl_vTable.getRemoteProcessName := @ITraceDatabaseConnectionImpl_getRemoteProcessNameDispatcher;
13495     ITraceDatabaseConnectionImpl_vTable.getConnectionID := @ITraceDatabaseConnectionImpl_getConnectionIDDispatcher;
13496     ITraceDatabaseConnectionImpl_vTable.getDatabaseName := @ITraceDatabaseConnectionImpl_getDatabaseNameDispatcher;
13497    
13498     ITraceTransactionImpl_vTable := TraceTransactionVTable.create;
13499 tony 315 ITraceTransactionImpl_vTable.version := 3;
13500 tony 45 ITraceTransactionImpl_vTable.getTransactionID := @ITraceTransactionImpl_getTransactionIDDispatcher;
13501     ITraceTransactionImpl_vTable.getReadOnly := @ITraceTransactionImpl_getReadOnlyDispatcher;
13502     ITraceTransactionImpl_vTable.getWait := @ITraceTransactionImpl_getWaitDispatcher;
13503     ITraceTransactionImpl_vTable.getIsolation := @ITraceTransactionImpl_getIsolationDispatcher;
13504     ITraceTransactionImpl_vTable.getPerf := @ITraceTransactionImpl_getPerfDispatcher;
13505 tony 315 ITraceTransactionImpl_vTable.getInitialID := @ITraceTransactionImpl_getInitialIDDispatcher;
13506     ITraceTransactionImpl_vTable.getPreviousID := @ITraceTransactionImpl_getPreviousIDDispatcher;
13507 tony 45
13508     ITraceParamsImpl_vTable := TraceParamsVTable.create;
13509 tony 315 ITraceParamsImpl_vTable.version := 3;
13510 tony 45 ITraceParamsImpl_vTable.getCount := @ITraceParamsImpl_getCountDispatcher;
13511     ITraceParamsImpl_vTable.getParam := @ITraceParamsImpl_getParamDispatcher;
13512 tony 315 ITraceParamsImpl_vTable.getTextUTF8 := @ITraceParamsImpl_getTextUTF8Dispatcher;
13513 tony 45
13514     ITraceStatementImpl_vTable := TraceStatementVTable.create;
13515     ITraceStatementImpl_vTable.version := 2;
13516     ITraceStatementImpl_vTable.getStmtID := @ITraceStatementImpl_getStmtIDDispatcher;
13517     ITraceStatementImpl_vTable.getPerf := @ITraceStatementImpl_getPerfDispatcher;
13518    
13519     ITraceSQLStatementImpl_vTable := TraceSQLStatementVTable.create;
13520 tony 315 ITraceSQLStatementImpl_vTable.version := 3;
13521 tony 45 ITraceSQLStatementImpl_vTable.getStmtID := @ITraceSQLStatementImpl_getStmtIDDispatcher;
13522     ITraceSQLStatementImpl_vTable.getPerf := @ITraceSQLStatementImpl_getPerfDispatcher;
13523     ITraceSQLStatementImpl_vTable.getText := @ITraceSQLStatementImpl_getTextDispatcher;
13524     ITraceSQLStatementImpl_vTable.getPlan := @ITraceSQLStatementImpl_getPlanDispatcher;
13525     ITraceSQLStatementImpl_vTable.getInputs := @ITraceSQLStatementImpl_getInputsDispatcher;
13526     ITraceSQLStatementImpl_vTable.getTextUTF8 := @ITraceSQLStatementImpl_getTextUTF8Dispatcher;
13527     ITraceSQLStatementImpl_vTable.getExplainedPlan := @ITraceSQLStatementImpl_getExplainedPlanDispatcher;
13528    
13529     ITraceBLRStatementImpl_vTable := TraceBLRStatementVTable.create;
13530 tony 315 ITraceBLRStatementImpl_vTable.version := 3;
13531 tony 45 ITraceBLRStatementImpl_vTable.getStmtID := @ITraceBLRStatementImpl_getStmtIDDispatcher;
13532     ITraceBLRStatementImpl_vTable.getPerf := @ITraceBLRStatementImpl_getPerfDispatcher;
13533     ITraceBLRStatementImpl_vTable.getData := @ITraceBLRStatementImpl_getDataDispatcher;
13534     ITraceBLRStatementImpl_vTable.getDataLength := @ITraceBLRStatementImpl_getDataLengthDispatcher;
13535     ITraceBLRStatementImpl_vTable.getText := @ITraceBLRStatementImpl_getTextDispatcher;
13536    
13537     ITraceDYNRequestImpl_vTable := TraceDYNRequestVTable.create;
13538 tony 315 ITraceDYNRequestImpl_vTable.version := 2;
13539 tony 45 ITraceDYNRequestImpl_vTable.getData := @ITraceDYNRequestImpl_getDataDispatcher;
13540     ITraceDYNRequestImpl_vTable.getDataLength := @ITraceDYNRequestImpl_getDataLengthDispatcher;
13541     ITraceDYNRequestImpl_vTable.getText := @ITraceDYNRequestImpl_getTextDispatcher;
13542    
13543     ITraceContextVariableImpl_vTable := TraceContextVariableVTable.create;
13544 tony 315 ITraceContextVariableImpl_vTable.version := 2;
13545 tony 45 ITraceContextVariableImpl_vTable.getNameSpace := @ITraceContextVariableImpl_getNameSpaceDispatcher;
13546     ITraceContextVariableImpl_vTable.getVarName := @ITraceContextVariableImpl_getVarNameDispatcher;
13547     ITraceContextVariableImpl_vTable.getVarValue := @ITraceContextVariableImpl_getVarValueDispatcher;
13548    
13549     ITraceProcedureImpl_vTable := TraceProcedureVTable.create;
13550 tony 315 ITraceProcedureImpl_vTable.version := 2;
13551 tony 45 ITraceProcedureImpl_vTable.getProcName := @ITraceProcedureImpl_getProcNameDispatcher;
13552     ITraceProcedureImpl_vTable.getInputs := @ITraceProcedureImpl_getInputsDispatcher;
13553     ITraceProcedureImpl_vTable.getPerf := @ITraceProcedureImpl_getPerfDispatcher;
13554    
13555     ITraceFunctionImpl_vTable := TraceFunctionVTable.create;
13556 tony 315 ITraceFunctionImpl_vTable.version := 2;
13557 tony 45 ITraceFunctionImpl_vTable.getFuncName := @ITraceFunctionImpl_getFuncNameDispatcher;
13558     ITraceFunctionImpl_vTable.getInputs := @ITraceFunctionImpl_getInputsDispatcher;
13559     ITraceFunctionImpl_vTable.getResult := @ITraceFunctionImpl_getResultDispatcher;
13560     ITraceFunctionImpl_vTable.getPerf := @ITraceFunctionImpl_getPerfDispatcher;
13561    
13562     ITraceTriggerImpl_vTable := TraceTriggerVTable.create;
13563 tony 315 ITraceTriggerImpl_vTable.version := 2;
13564 tony 45 ITraceTriggerImpl_vTable.getTriggerName := @ITraceTriggerImpl_getTriggerNameDispatcher;
13565     ITraceTriggerImpl_vTable.getRelationName := @ITraceTriggerImpl_getRelationNameDispatcher;
13566     ITraceTriggerImpl_vTable.getAction := @ITraceTriggerImpl_getActionDispatcher;
13567     ITraceTriggerImpl_vTable.getWhich := @ITraceTriggerImpl_getWhichDispatcher;
13568     ITraceTriggerImpl_vTable.getPerf := @ITraceTriggerImpl_getPerfDispatcher;
13569    
13570     ITraceServiceConnectionImpl_vTable := TraceServiceConnectionVTable.create;
13571 tony 315 ITraceServiceConnectionImpl_vTable.version := 3;
13572 tony 45 ITraceServiceConnectionImpl_vTable.getKind := @ITraceServiceConnectionImpl_getKindDispatcher;
13573     ITraceServiceConnectionImpl_vTable.getProcessID := @ITraceServiceConnectionImpl_getProcessIDDispatcher;
13574     ITraceServiceConnectionImpl_vTable.getUserName := @ITraceServiceConnectionImpl_getUserNameDispatcher;
13575     ITraceServiceConnectionImpl_vTable.getRoleName := @ITraceServiceConnectionImpl_getRoleNameDispatcher;
13576     ITraceServiceConnectionImpl_vTable.getCharSet := @ITraceServiceConnectionImpl_getCharSetDispatcher;
13577     ITraceServiceConnectionImpl_vTable.getRemoteProtocol := @ITraceServiceConnectionImpl_getRemoteProtocolDispatcher;
13578     ITraceServiceConnectionImpl_vTable.getRemoteAddress := @ITraceServiceConnectionImpl_getRemoteAddressDispatcher;
13579     ITraceServiceConnectionImpl_vTable.getRemoteProcessID := @ITraceServiceConnectionImpl_getRemoteProcessIDDispatcher;
13580     ITraceServiceConnectionImpl_vTable.getRemoteProcessName := @ITraceServiceConnectionImpl_getRemoteProcessNameDispatcher;
13581     ITraceServiceConnectionImpl_vTable.getServiceID := @ITraceServiceConnectionImpl_getServiceIDDispatcher;
13582     ITraceServiceConnectionImpl_vTable.getServiceMgr := @ITraceServiceConnectionImpl_getServiceMgrDispatcher;
13583     ITraceServiceConnectionImpl_vTable.getServiceName := @ITraceServiceConnectionImpl_getServiceNameDispatcher;
13584    
13585     ITraceStatusVectorImpl_vTable := TraceStatusVectorVTable.create;
13586 tony 315 ITraceStatusVectorImpl_vTable.version := 2;
13587 tony 45 ITraceStatusVectorImpl_vTable.hasError := @ITraceStatusVectorImpl_hasErrorDispatcher;
13588     ITraceStatusVectorImpl_vTable.hasWarning := @ITraceStatusVectorImpl_hasWarningDispatcher;
13589     ITraceStatusVectorImpl_vTable.getStatus := @ITraceStatusVectorImpl_getStatusDispatcher;
13590     ITraceStatusVectorImpl_vTable.getText := @ITraceStatusVectorImpl_getTextDispatcher;
13591    
13592     ITraceSweepInfoImpl_vTable := TraceSweepInfoVTable.create;
13593 tony 315 ITraceSweepInfoImpl_vTable.version := 2;
13594 tony 45 ITraceSweepInfoImpl_vTable.getOIT := @ITraceSweepInfoImpl_getOITDispatcher;
13595     ITraceSweepInfoImpl_vTable.getOST := @ITraceSweepInfoImpl_getOSTDispatcher;
13596     ITraceSweepInfoImpl_vTable.getOAT := @ITraceSweepInfoImpl_getOATDispatcher;
13597     ITraceSweepInfoImpl_vTable.getNext := @ITraceSweepInfoImpl_getNextDispatcher;
13598     ITraceSweepInfoImpl_vTable.getPerf := @ITraceSweepInfoImpl_getPerfDispatcher;
13599    
13600     ITraceLogWriterImpl_vTable := TraceLogWriterVTable.create;
13601 tony 315 ITraceLogWriterImpl_vTable.version := 4;
13602 tony 45 ITraceLogWriterImpl_vTable.addRef := @ITraceLogWriterImpl_addRefDispatcher;
13603     ITraceLogWriterImpl_vTable.release := @ITraceLogWriterImpl_releaseDispatcher;
13604     ITraceLogWriterImpl_vTable.write := @ITraceLogWriterImpl_writeDispatcher;
13605 tony 315 ITraceLogWriterImpl_vTable.write_s := @ITraceLogWriterImpl_write_sDispatcher;
13606 tony 45
13607     ITraceInitInfoImpl_vTable := TraceInitInfoVTable.create;
13608 tony 315 ITraceInitInfoImpl_vTable.version := 2;
13609 tony 45 ITraceInitInfoImpl_vTable.getConfigText := @ITraceInitInfoImpl_getConfigTextDispatcher;
13610     ITraceInitInfoImpl_vTable.getTraceSessionID := @ITraceInitInfoImpl_getTraceSessionIDDispatcher;
13611     ITraceInitInfoImpl_vTable.getTraceSessionName := @ITraceInitInfoImpl_getTraceSessionNameDispatcher;
13612     ITraceInitInfoImpl_vTable.getFirebirdRootDirectory := @ITraceInitInfoImpl_getFirebirdRootDirectoryDispatcher;
13613     ITraceInitInfoImpl_vTable.getDatabaseName := @ITraceInitInfoImpl_getDatabaseNameDispatcher;
13614     ITraceInitInfoImpl_vTable.getConnection := @ITraceInitInfoImpl_getConnectionDispatcher;
13615     ITraceInitInfoImpl_vTable.getLogWriter := @ITraceInitInfoImpl_getLogWriterDispatcher;
13616    
13617     ITracePluginImpl_vTable := TracePluginVTable.create;
13618 tony 315 ITracePluginImpl_vTable.version := 3;
13619 tony 45 ITracePluginImpl_vTable.addRef := @ITracePluginImpl_addRefDispatcher;
13620     ITracePluginImpl_vTable.release := @ITracePluginImpl_releaseDispatcher;
13621     ITracePluginImpl_vTable.trace_get_error := @ITracePluginImpl_trace_get_errorDispatcher;
13622     ITracePluginImpl_vTable.trace_attach := @ITracePluginImpl_trace_attachDispatcher;
13623     ITracePluginImpl_vTable.trace_detach := @ITracePluginImpl_trace_detachDispatcher;
13624     ITracePluginImpl_vTable.trace_transaction_start := @ITracePluginImpl_trace_transaction_startDispatcher;
13625     ITracePluginImpl_vTable.trace_transaction_end := @ITracePluginImpl_trace_transaction_endDispatcher;
13626     ITracePluginImpl_vTable.trace_proc_execute := @ITracePluginImpl_trace_proc_executeDispatcher;
13627     ITracePluginImpl_vTable.trace_trigger_execute := @ITracePluginImpl_trace_trigger_executeDispatcher;
13628     ITracePluginImpl_vTable.trace_set_context := @ITracePluginImpl_trace_set_contextDispatcher;
13629     ITracePluginImpl_vTable.trace_dsql_prepare := @ITracePluginImpl_trace_dsql_prepareDispatcher;
13630     ITracePluginImpl_vTable.trace_dsql_free := @ITracePluginImpl_trace_dsql_freeDispatcher;
13631     ITracePluginImpl_vTable.trace_dsql_execute := @ITracePluginImpl_trace_dsql_executeDispatcher;
13632     ITracePluginImpl_vTable.trace_blr_compile := @ITracePluginImpl_trace_blr_compileDispatcher;
13633     ITracePluginImpl_vTable.trace_blr_execute := @ITracePluginImpl_trace_blr_executeDispatcher;
13634     ITracePluginImpl_vTable.trace_dyn_execute := @ITracePluginImpl_trace_dyn_executeDispatcher;
13635     ITracePluginImpl_vTable.trace_service_attach := @ITracePluginImpl_trace_service_attachDispatcher;
13636     ITracePluginImpl_vTable.trace_service_start := @ITracePluginImpl_trace_service_startDispatcher;
13637     ITracePluginImpl_vTable.trace_service_query := @ITracePluginImpl_trace_service_queryDispatcher;
13638     ITracePluginImpl_vTable.trace_service_detach := @ITracePluginImpl_trace_service_detachDispatcher;
13639     ITracePluginImpl_vTable.trace_event_error := @ITracePluginImpl_trace_event_errorDispatcher;
13640     ITracePluginImpl_vTable.trace_event_sweep := @ITracePluginImpl_trace_event_sweepDispatcher;
13641     ITracePluginImpl_vTable.trace_func_execute := @ITracePluginImpl_trace_func_executeDispatcher;
13642    
13643     ITraceFactoryImpl_vTable := TraceFactoryVTable.create;
13644 tony 315 ITraceFactoryImpl_vTable.version := 4;
13645 tony 45 ITraceFactoryImpl_vTable.addRef := @ITraceFactoryImpl_addRefDispatcher;
13646     ITraceFactoryImpl_vTable.release := @ITraceFactoryImpl_releaseDispatcher;
13647     ITraceFactoryImpl_vTable.setOwner := @ITraceFactoryImpl_setOwnerDispatcher;
13648     ITraceFactoryImpl_vTable.getOwner := @ITraceFactoryImpl_getOwnerDispatcher;
13649     ITraceFactoryImpl_vTable.trace_needs := @ITraceFactoryImpl_trace_needsDispatcher;
13650     ITraceFactoryImpl_vTable.trace_create := @ITraceFactoryImpl_trace_createDispatcher;
13651    
13652     IUdrFunctionFactoryImpl_vTable := UdrFunctionFactoryVTable.create;
13653     IUdrFunctionFactoryImpl_vTable.version := 3;
13654     IUdrFunctionFactoryImpl_vTable.dispose := @IUdrFunctionFactoryImpl_disposeDispatcher;
13655     IUdrFunctionFactoryImpl_vTable.setup := @IUdrFunctionFactoryImpl_setupDispatcher;
13656     IUdrFunctionFactoryImpl_vTable.newItem := @IUdrFunctionFactoryImpl_newItemDispatcher;
13657    
13658     IUdrProcedureFactoryImpl_vTable := UdrProcedureFactoryVTable.create;
13659     IUdrProcedureFactoryImpl_vTable.version := 3;
13660     IUdrProcedureFactoryImpl_vTable.dispose := @IUdrProcedureFactoryImpl_disposeDispatcher;
13661     IUdrProcedureFactoryImpl_vTable.setup := @IUdrProcedureFactoryImpl_setupDispatcher;
13662     IUdrProcedureFactoryImpl_vTable.newItem := @IUdrProcedureFactoryImpl_newItemDispatcher;
13663    
13664     IUdrTriggerFactoryImpl_vTable := UdrTriggerFactoryVTable.create;
13665     IUdrTriggerFactoryImpl_vTable.version := 3;
13666     IUdrTriggerFactoryImpl_vTable.dispose := @IUdrTriggerFactoryImpl_disposeDispatcher;
13667     IUdrTriggerFactoryImpl_vTable.setup := @IUdrTriggerFactoryImpl_setupDispatcher;
13668     IUdrTriggerFactoryImpl_vTable.newItem := @IUdrTriggerFactoryImpl_newItemDispatcher;
13669    
13670     IUdrPluginImpl_vTable := UdrPluginVTable.create;
13671 tony 315 IUdrPluginImpl_vTable.version := 2;
13672 tony 45 IUdrPluginImpl_vTable.getMaster := @IUdrPluginImpl_getMasterDispatcher;
13673     IUdrPluginImpl_vTable.registerFunction := @IUdrPluginImpl_registerFunctionDispatcher;
13674     IUdrPluginImpl_vTable.registerProcedure := @IUdrPluginImpl_registerProcedureDispatcher;
13675     IUdrPluginImpl_vTable.registerTrigger := @IUdrPluginImpl_registerTriggerDispatcher;
13676    
13677 tony 315 IDecFloat16Impl_vTable := DecFloat16VTable.create;
13678     IDecFloat16Impl_vTable.version := 2;
13679     IDecFloat16Impl_vTable.toBcd := @IDecFloat16Impl_toBcdDispatcher;
13680     IDecFloat16Impl_vTable.toString := @IDecFloat16Impl_toStringDispatcher;
13681     IDecFloat16Impl_vTable.fromBcd := @IDecFloat16Impl_fromBcdDispatcher;
13682     IDecFloat16Impl_vTable.fromString := @IDecFloat16Impl_fromStringDispatcher;
13683    
13684     IDecFloat34Impl_vTable := DecFloat34VTable.create;
13685     IDecFloat34Impl_vTable.version := 2;
13686     IDecFloat34Impl_vTable.toBcd := @IDecFloat34Impl_toBcdDispatcher;
13687     IDecFloat34Impl_vTable.toString := @IDecFloat34Impl_toStringDispatcher;
13688     IDecFloat34Impl_vTable.fromBcd := @IDecFloat34Impl_fromBcdDispatcher;
13689     IDecFloat34Impl_vTable.fromString := @IDecFloat34Impl_fromStringDispatcher;
13690    
13691     IInt128Impl_vTable := Int128VTable.create;
13692     IInt128Impl_vTable.version := 2;
13693     IInt128Impl_vTable.toString := @IInt128Impl_toStringDispatcher;
13694     IInt128Impl_vTable.fromString := @IInt128Impl_fromStringDispatcher;
13695    
13696     IReplicatedFieldImpl_vTable := ReplicatedFieldVTable.create;
13697     IReplicatedFieldImpl_vTable.version := 2;
13698     IReplicatedFieldImpl_vTable.getName := @IReplicatedFieldImpl_getNameDispatcher;
13699     IReplicatedFieldImpl_vTable.getType := @IReplicatedFieldImpl_getTypeDispatcher;
13700     IReplicatedFieldImpl_vTable.getSubType := @IReplicatedFieldImpl_getSubTypeDispatcher;
13701     IReplicatedFieldImpl_vTable.getScale := @IReplicatedFieldImpl_getScaleDispatcher;
13702     IReplicatedFieldImpl_vTable.getLength := @IReplicatedFieldImpl_getLengthDispatcher;
13703     IReplicatedFieldImpl_vTable.getCharSet := @IReplicatedFieldImpl_getCharSetDispatcher;
13704     IReplicatedFieldImpl_vTable.getData := @IReplicatedFieldImpl_getDataDispatcher;
13705    
13706     IReplicatedRecordImpl_vTable := ReplicatedRecordVTable.create;
13707     IReplicatedRecordImpl_vTable.version := 2;
13708     IReplicatedRecordImpl_vTable.getCount := @IReplicatedRecordImpl_getCountDispatcher;
13709     IReplicatedRecordImpl_vTable.getField := @IReplicatedRecordImpl_getFieldDispatcher;
13710     IReplicatedRecordImpl_vTable.getRawLength := @IReplicatedRecordImpl_getRawLengthDispatcher;
13711     IReplicatedRecordImpl_vTable.getRawData := @IReplicatedRecordImpl_getRawDataDispatcher;
13712    
13713     IReplicatedTransactionImpl_vTable := ReplicatedTransactionVTable.create;
13714     IReplicatedTransactionImpl_vTable.version := 3;
13715     IReplicatedTransactionImpl_vTable.dispose := @IReplicatedTransactionImpl_disposeDispatcher;
13716     IReplicatedTransactionImpl_vTable.prepare := @IReplicatedTransactionImpl_prepareDispatcher;
13717     IReplicatedTransactionImpl_vTable.commit := @IReplicatedTransactionImpl_commitDispatcher;
13718     IReplicatedTransactionImpl_vTable.rollback := @IReplicatedTransactionImpl_rollbackDispatcher;
13719     IReplicatedTransactionImpl_vTable.startSavepoint := @IReplicatedTransactionImpl_startSavepointDispatcher;
13720     IReplicatedTransactionImpl_vTable.releaseSavepoint := @IReplicatedTransactionImpl_releaseSavepointDispatcher;
13721     IReplicatedTransactionImpl_vTable.rollbackSavepoint := @IReplicatedTransactionImpl_rollbackSavepointDispatcher;
13722     IReplicatedTransactionImpl_vTable.insertRecord := @IReplicatedTransactionImpl_insertRecordDispatcher;
13723     IReplicatedTransactionImpl_vTable.updateRecord := @IReplicatedTransactionImpl_updateRecordDispatcher;
13724     IReplicatedTransactionImpl_vTable.deleteRecord := @IReplicatedTransactionImpl_deleteRecordDispatcher;
13725     IReplicatedTransactionImpl_vTable.executeSql := @IReplicatedTransactionImpl_executeSqlDispatcher;
13726     IReplicatedTransactionImpl_vTable.executeSqlIntl := @IReplicatedTransactionImpl_executeSqlIntlDispatcher;
13727    
13728     IReplicatedSessionImpl_vTable := ReplicatedSessionVTable.create;
13729     IReplicatedSessionImpl_vTable.version := 4;
13730     IReplicatedSessionImpl_vTable.addRef := @IReplicatedSessionImpl_addRefDispatcher;
13731     IReplicatedSessionImpl_vTable.release := @IReplicatedSessionImpl_releaseDispatcher;
13732     IReplicatedSessionImpl_vTable.setOwner := @IReplicatedSessionImpl_setOwnerDispatcher;
13733     IReplicatedSessionImpl_vTable.getOwner := @IReplicatedSessionImpl_getOwnerDispatcher;
13734 tony 345 IReplicatedSessionImpl_vTable.init := @IReplicatedSessionImpl_initDispatcher;
13735 tony 315 IReplicatedSessionImpl_vTable.startTransaction := @IReplicatedSessionImpl_startTransactionDispatcher;
13736     IReplicatedSessionImpl_vTable.cleanupTransaction := @IReplicatedSessionImpl_cleanupTransactionDispatcher;
13737     IReplicatedSessionImpl_vTable.setSequence := @IReplicatedSessionImpl_setSequenceDispatcher;
13738    
13739 tony 45 finalization
13740     IVersionedImpl_vTable.destroy;
13741     IReferenceCountedImpl_vTable.destroy;
13742     IDisposableImpl_vTable.destroy;
13743     IStatusImpl_vTable.destroy;
13744     IMasterImpl_vTable.destroy;
13745     IPluginBaseImpl_vTable.destroy;
13746     IPluginSetImpl_vTable.destroy;
13747     IConfigEntryImpl_vTable.destroy;
13748     IConfigImpl_vTable.destroy;
13749     IFirebirdConfImpl_vTable.destroy;
13750     IPluginConfigImpl_vTable.destroy;
13751     IPluginFactoryImpl_vTable.destroy;
13752     IPluginModuleImpl_vTable.destroy;
13753     IPluginManagerImpl_vTable.destroy;
13754     ICryptKeyImpl_vTable.destroy;
13755     IConfigManagerImpl_vTable.destroy;
13756     IEventCallbackImpl_vTable.destroy;
13757     IBlobImpl_vTable.destroy;
13758     ITransactionImpl_vTable.destroy;
13759     IMessageMetadataImpl_vTable.destroy;
13760     IMetadataBuilderImpl_vTable.destroy;
13761     IResultSetImpl_vTable.destroy;
13762     IStatementImpl_vTable.destroy;
13763 tony 315 IBatchImpl_vTable.destroy;
13764     IBatchCompletionStateImpl_vTable.destroy;
13765     IReplicatorImpl_vTable.destroy;
13766 tony 45 IRequestImpl_vTable.destroy;
13767     IEventsImpl_vTable.destroy;
13768     IAttachmentImpl_vTable.destroy;
13769     IServiceImpl_vTable.destroy;
13770     IProviderImpl_vTable.destroy;
13771     IDtcStartImpl_vTable.destroy;
13772     IDtcImpl_vTable.destroy;
13773     IAuthImpl_vTable.destroy;
13774     IWriterImpl_vTable.destroy;
13775     IServerBlockImpl_vTable.destroy;
13776     IClientBlockImpl_vTable.destroy;
13777     IServerImpl_vTable.destroy;
13778     IClientImpl_vTable.destroy;
13779     IUserFieldImpl_vTable.destroy;
13780     ICharUserFieldImpl_vTable.destroy;
13781     IIntUserFieldImpl_vTable.destroy;
13782     IUserImpl_vTable.destroy;
13783     IListUsersImpl_vTable.destroy;
13784     ILogonInfoImpl_vTable.destroy;
13785     IManagementImpl_vTable.destroy;
13786 tony 315 IAuthBlockImpl_vTable.destroy;
13787 tony 45 IWireCryptPluginImpl_vTable.destroy;
13788     ICryptKeyCallbackImpl_vTable.destroy;
13789     IKeyHolderPluginImpl_vTable.destroy;
13790 tony 315 IDbCryptInfoImpl_vTable.destroy;
13791 tony 45 IDbCryptPluginImpl_vTable.destroy;
13792     IExternalContextImpl_vTable.destroy;
13793     IExternalResultSetImpl_vTable.destroy;
13794     IExternalFunctionImpl_vTable.destroy;
13795     IExternalProcedureImpl_vTable.destroy;
13796     IExternalTriggerImpl_vTable.destroy;
13797     IRoutineMetadataImpl_vTable.destroy;
13798     IExternalEngineImpl_vTable.destroy;
13799     ITimerImpl_vTable.destroy;
13800     ITimerControlImpl_vTable.destroy;
13801     IVersionCallbackImpl_vTable.destroy;
13802     IUtilImpl_vTable.destroy;
13803     IOffsetsCallbackImpl_vTable.destroy;
13804     IXpbBuilderImpl_vTable.destroy;
13805     ITraceConnectionImpl_vTable.destroy;
13806     ITraceDatabaseConnectionImpl_vTable.destroy;
13807     ITraceTransactionImpl_vTable.destroy;
13808     ITraceParamsImpl_vTable.destroy;
13809     ITraceStatementImpl_vTable.destroy;
13810     ITraceSQLStatementImpl_vTable.destroy;
13811     ITraceBLRStatementImpl_vTable.destroy;
13812     ITraceDYNRequestImpl_vTable.destroy;
13813     ITraceContextVariableImpl_vTable.destroy;
13814     ITraceProcedureImpl_vTable.destroy;
13815     ITraceFunctionImpl_vTable.destroy;
13816     ITraceTriggerImpl_vTable.destroy;
13817     ITraceServiceConnectionImpl_vTable.destroy;
13818     ITraceStatusVectorImpl_vTable.destroy;
13819     ITraceSweepInfoImpl_vTable.destroy;
13820     ITraceLogWriterImpl_vTable.destroy;
13821     ITraceInitInfoImpl_vTable.destroy;
13822     ITracePluginImpl_vTable.destroy;
13823     ITraceFactoryImpl_vTable.destroy;
13824     IUdrFunctionFactoryImpl_vTable.destroy;
13825     IUdrProcedureFactoryImpl_vTable.destroy;
13826     IUdrTriggerFactoryImpl_vTable.destroy;
13827     IUdrPluginImpl_vTable.destroy;
13828 tony 315 IDecFloat16Impl_vTable.destroy;
13829     IDecFloat34Impl_vTable.destroy;
13830     IInt128Impl_vTable.destroy;
13831     IReplicatedFieldImpl_vTable.destroy;
13832     IReplicatedRecordImpl_vTable.destroy;
13833     IReplicatedTransactionImpl_vTable.destroy;
13834     IReplicatedSessionImpl_vTable.destroy;
13835 tony 45
13836     end.