Merge remote-tracking branch 'origin/master' into JIMS
[scilab.git] / scilab / modules / core / src / c / dynamic_gateways.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2008 - INRIA - Allan CORNET
4  * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13 #include <stdlib.h>
14 #include "dynamic_gateways.h"
15 #include "callDynamicGateway.h"
16 #include "gw_dynamic_generic.h"
17 #include "dynamic_parallel.h"
18 #include "scilabmode.h"
19 #include "MALLOC.h"
20 /*--------------------------------------------------------------------------*/
21 /* special_functions module */
22 #define SPECIAL_FUNCTIONS_MODULE_NAME "special_functions"
23 static DynLibHandle hSpecial_functionsLib = NULL;
24 static PROC_GATEWAY ptr_gw_special_functions = NULL;
25 static char* dynlibname_special_functions = NULL;
26 static char* gatewayname_special_functions = NULL;
27 /*--------------------------------------------------------------------------*/
28 int gw_dynamic_special_functions(void)
29 {
30     return gw_dynamic_generic(SPECIAL_FUNCTIONS_MODULE_NAME,
31                               &dynlibname_special_functions,
32                               &gatewayname_special_functions,
33                               &hSpecial_functionsLib,
34                               &ptr_gw_special_functions);
35 }
36 /*--------------------------------------------------------------------------*/
37 /* helptools module */
38 #define HELPTOOLS_MODULE_NAME "helptools"
39 static DynLibHandle hHelptoolsLib = NULL;
40 static PROC_GATEWAY ptr_gw_helptools = NULL;
41 static char* dynlibname_helptools = NULL;
42 static char* gatewayname_helptools = NULL;
43 /*--------------------------------------------------------------------------*/
44 int gw_dynamic_helptools(void)
45 {
46     return gw_dynamic_generic(HELPTOOLS_MODULE_NAME,
47                               &dynlibname_helptools,
48                               &gatewayname_helptools,
49                               &hHelptoolsLib,
50                               &ptr_gw_helptools);
51 }
52 /*--------------------------------------------------------------------------*/
53 /* optimization module */
54 #define OPTIMIZATION_MODULE_NAME "optimization"
55 static DynLibHandle hOptimizationLib = NULL;
56 static PROC_GATEWAY ptr_gw_optimization = NULL;
57 static char* dynlibname_optimization = NULL;
58 static char* gatewayname_optimization = NULL;
59 /*--------------------------------------------------------------------------*/
60 int gw_dynamic_optimization(void)
61 {
62     return gw_dynamic_generic(OPTIMIZATION_MODULE_NAME,
63                               &dynlibname_optimization,
64                               &gatewayname_optimization,
65                               &hOptimizationLib,
66                               &ptr_gw_optimization);
67 }
68 /*--------------------------------------------------------------------------*/
69 /* matio module */
70 #define MATIO_MODULE_NAME "matio"
71 static DynLibHandle hMatioLib = NULL;
72 static PROC_GATEWAY ptr_gw_matio = NULL;
73 static char* dynlibname_matio = NULL;
74 static char* gatewayname_matio = NULL;
75 /*--------------------------------------------------------------------------*/
76 int gw_dynamic_matio(void)
77 {
78     return gw_dynamic_generic(MATIO_MODULE_NAME,
79                               &dynlibname_matio,
80                               &gatewayname_matio,
81                               &hMatioLib,
82                               &ptr_gw_matio);
83 }
84 /*--------------------------------------------------------------------------*/
85 /* UMFPACK module */
86 #define UMFPACK_MODULE_NAME "umfpack"
87 static DynLibHandle hUmfpackLib = NULL;
88 static PROC_GATEWAY ptr_gw_umfpack = NULL;
89 static char* dynlibname_umfpack = NULL;
90 static char* gatewayname_umfpack = NULL;
91 /*--------------------------------------------------------------------------*/
92 int gw_dynamic_umfpack(void)
93 {
94     return gw_dynamic_generic(UMFPACK_MODULE_NAME,
95                               &dynlibname_umfpack,
96                               &gatewayname_umfpack,
97                               &hUmfpackLib,
98                               &ptr_gw_umfpack);
99 }
100 /*--------------------------------------------------------------------------*/
101 /* spreadsheet module */
102 #define SPREADSHEET_MODULE_NAME "spreadsheet"
103 static DynLibHandle hSpreadsheetLib = NULL;
104 static PROC_GATEWAY ptr_gw_spreadsheet = NULL;
105 static char* dynlibname_spreadsheet = NULL;
106 static char* gatewayname_spreadsheet = NULL;
107 /*--------------------------------------------------------------------------*/
108 int gw_dynamic_spreadsheet(void)
109 {
110     return gw_dynamic_generic(SPREADSHEET_MODULE_NAME,
111                               &dynlibname_spreadsheet,
112                               &gatewayname_spreadsheet,
113                               &hSpreadsheetLib,
114                               &ptr_gw_spreadsheet);
115 }
116 /*--------------------------------------------------------------------------*/
117 /* sound module */
118 #define SOUND_MODULE_NAME "sound"
119 static DynLibHandle hSoundLib = NULL;
120 static PROC_GATEWAY ptr_gw_sound = NULL;
121 static char* dynlibname_sound = NULL;
122 static char* gatewayname_sound = NULL;
123 /*--------------------------------------------------------------------------*/
124 int gw_dynamic_sound(void)
125 {
126     return gw_dynamic_generic(SOUND_MODULE_NAME,
127                               &dynlibname_sound,
128                               &gatewayname_sound,
129                               &hSoundLib,
130                               &ptr_gw_sound);
131 }
132 /*--------------------------------------------------------------------------*/
133 /* scicos module */
134 #define SCICOS_MODULE_NAME "scicos"
135 #define SCICOS_CLI_MODULE_NAME "scicos-cli"
136 static DynLibHandle hScicosLib = NULL;
137 static PROC_GATEWAY ptr_gw_scicos = NULL;
138 static char* dynlibname_scicos = NULL;
139 static char* gatewayname_scicos = NULL;
140 /*--------------------------------------------------------------------------*/
141 int gw_dynamic_scicos(void)
142 {
143     if (dynlibname_scicos == NULL)
144     {
145         /* Select the cli library if started without gui (at runtime)  */
146         if (getScilabMode() == SCILAB_NWNI)
147         {
148             dynlibname_scicos = buildModuleDynLibraryName(SCICOS_CLI_MODULE_NAME, DYNLIB_NAME_FORMAT_AUTO);
149         }
150     }
151
152     return gw_dynamic_generic(SCICOS_MODULE_NAME,
153                               &dynlibname_scicos,
154                               &gatewayname_scicos,
155                               &hScicosLib,
156                               &ptr_gw_scicos);
157 }
158 /*--------------------------------------------------------------------------*/
159 /* randlib module */
160 #define RANDLIB_MODULE_NAME "randlib"
161 static DynLibHandle hRandlibLib = NULL;
162 static PROC_GATEWAY ptr_gw_randlib = NULL;
163 static char* dynlibname_randlib = NULL;
164 static char* gatewayname_randlib = NULL;
165 /*--------------------------------------------------------------------------*/
166 int gw_dynamic_randlib(void)
167 {
168     return gw_dynamic_generic(RANDLIB_MODULE_NAME,
169                               &dynlibname_randlib,
170                               &gatewayname_randlib,
171                               &hRandlibLib,
172                               &ptr_gw_randlib);
173 }
174 /*--------------------------------------------------------------------------*/
175 /* arnoldi module */
176 #define ARNOLDI_MODULE_NAME "arnoldi"
177 static DynLibHandle hArnoldiLib = NULL;
178 static PROC_GATEWAY ptr_gw_arnoldi = NULL;
179 static char* dynlibname_arnoldi = NULL;
180 static char* gatewayname_arnoldi = NULL;
181 /*--------------------------------------------------------------------------*/
182 int gw_dynamic_arnoldi(void)
183 {
184     return gw_dynamic_generic(ARNOLDI_MODULE_NAME,
185                               &dynlibname_arnoldi,
186                               &gatewayname_arnoldi,
187                               &hArnoldiLib,
188                               &ptr_gw_arnoldi);
189 }
190 /*--------------------------------------------------------------------------*/
191 /* symbolic module */
192 #define SYMBOLIC_MODULE_NAME "symbolic"
193 static DynLibHandle hSymbolicLib = NULL;
194 static PROC_GATEWAY ptr_gw_symbolic = NULL;
195 static char* dynlibname_symbolic = NULL;
196 static char* gatewayname_symbolic = NULL;
197 /*--------------------------------------------------------------------------*/
198 int gw_dynamic_symbolic(void)
199 {
200     return gw_dynamic_generic(SYMBOLIC_MODULE_NAME,
201                               &dynlibname_symbolic,
202                               &gatewayname_symbolic,
203                               &hSymbolicLib,
204                               &ptr_gw_symbolic);
205 }
206 /*--------------------------------------------------------------------------*/
207 /* interpolation module */
208 #define INTERPOLATION_MODULE_NAME "interpolation"
209 static DynLibHandle hInterpolationLib = NULL;
210 static PROC_GATEWAY ptr_gw_interpolation = NULL;
211 static char* dynlibname_interpolation = NULL;
212 static char* gatewayname_interpolation = NULL;
213 /*--------------------------------------------------------------------------*/
214 int gw_dynamic_interpolation(void)
215 {
216     return gw_dynamic_generic(INTERPOLATION_MODULE_NAME,
217                               &dynlibname_interpolation,
218                               &gatewayname_interpolation,
219                               &hInterpolationLib,
220                               &ptr_gw_interpolation);
221 }
222 /*--------------------------------------------------------------------------*/
223 /* statistics module */
224 #define STATISTICS_MODULE_NAME "statistics"
225 static DynLibHandle hStatisticsLib = NULL;
226 static PROC_GATEWAY ptr_gw_statistics = NULL;
227 static char* dynlibname_statistics = NULL;
228 static char* gatewayname_statistics = NULL;
229 /*--------------------------------------------------------------------------*/
230 int gw_dynamic_statistics(void)
231 {
232     return gw_dynamic_generic(STATISTICS_MODULE_NAME,
233                               &dynlibname_statistics,
234                               &gatewayname_statistics,
235                               &hStatisticsLib,
236                               &ptr_gw_statistics);
237 }
238 /*--------------------------------------------------------------------------*/
239 /* signal_processing module */
240 #define SIGNAL_PROCESSING_MODULE_NAME "signal_processing"
241 static DynLibHandle hSignal_processingLib = NULL;
242 static PROC_GATEWAY ptr_gw_signal_processing = NULL;
243 static char* dynlibname_signal_processing = NULL;
244 static char* gatewayname_signal_processing = NULL;
245 /*--------------------------------------------------------------------------*/
246 int gw_dynamic_signal_processing(void)
247 {
248     return gw_dynamic_generic(SIGNAL_PROCESSING_MODULE_NAME,
249                               &dynlibname_signal_processing,
250                               &gatewayname_signal_processing,
251                               &hSignal_processingLib,
252                               &ptr_gw_signal_processing);
253 }
254 /*--------------------------------------------------------------------------*/
255 /* functions module */
256 #define FUNCTIONS_MODULE_NAME "functions"
257 static DynLibHandle hFunctionsLib = NULL;
258 static PROC_GATEWAY ptr_gw_functions = NULL;
259 static char* dynlibname_functions = NULL;
260 static char* gatewayname_functions = NULL;
261 /*--------------------------------------------------------------------------*/
262 int gw_dynamic_functions(void)
263 {
264     return gw_dynamic_generic(FUNCTIONS_MODULE_NAME,
265                               &dynlibname_functions,
266                               &gatewayname_functions,
267                               &hFunctionsLib,
268                               &ptr_gw_functions);
269 }
270 /*--------------------------------------------------------------------------*/
271 /* xcos module */
272 #define XCOS_MODULE_NAME "xcos"
273 static DynLibHandle hXcosLib = NULL;
274 static PROC_GATEWAY ptr_gw_xcos = NULL;
275 static char* dynlibname_xcos = NULL;
276 static char* gatewayname_xcos = NULL;
277 /*--------------------------------------------------------------------------*/
278 int gw_dynamic_xcos(void)
279 {
280     return gw_dynamic_generic(XCOS_MODULE_NAME,
281                               &dynlibname_xcos,
282                               &gatewayname_xcos,
283                               &hXcosLib,
284                               &ptr_gw_xcos);
285 }
286 /*--------------------------------------------------------------------------*/
287 /* scinotes module */
288 #define SCINOTES_MODULE_NAME "scinotes"
289 static DynLibHandle hSciNotesLib = NULL;
290 static PROC_GATEWAY ptr_gw_scinotes = NULL;
291 static char* dynlibname_scinotes = NULL;
292 static char* gatewayname_scinotes = NULL;
293 /*--------------------------------------------------------------------------*/
294 int gw_dynamic_scinotes(void)
295 {
296 #ifdef _MSC_VER
297     if (dynlibname_scinotes == NULL)
298     {
299         dynlibname_scinotes = buildModuleDynLibraryName(SCINOTES_MODULE_NAME, DYNLIB_NAME_FORMAT_2);
300     }
301 #endif
302     return gw_dynamic_generic(SCINOTES_MODULE_NAME,
303                               &dynlibname_scinotes,
304                               &gatewayname_scinotes,
305                               &hSciNotesLib,
306                               &ptr_gw_scinotes);
307 }
308 /*--------------------------------------------------------------------------*/
309 /* graphic_exports module */
310 #define GRAPHIC_EXPORT_MODULE_NAME "graphic_export"
311 static DynLibHandle hGraphic_exportLib = NULL;
312 static PROC_GATEWAY ptr_gw_graphic_export = NULL;
313 static char* dynlibname_graphic_export = NULL;
314 static char* gatewayname_graphic_export = NULL;
315 /*--------------------------------------------------------------------------*/
316 int gw_dynamic_graphic_export(void)
317 {
318 #ifdef _MSC_VER
319     if (dynlibname_graphic_export == NULL)
320     {
321         dynlibname_graphic_export = buildModuleDynLibraryName(GRAPHIC_EXPORT_MODULE_NAME, DYNLIB_NAME_FORMAT_2);
322     }
323 #endif
324     return gw_dynamic_generic(GRAPHIC_EXPORT_MODULE_NAME,
325                               &dynlibname_graphic_export,
326                               &gatewayname_graphic_export,
327                               &hGraphic_exportLib ,
328                               &ptr_gw_graphic_export);
329 }
330 /*--------------------------------------------------------------------------*/
331 /* graphic_exports module */
332 #define ACTION_BINDING_MODULE_NAME "action_binding"
333 static DynLibHandle hAction_bindingLib = NULL;
334 static PROC_GATEWAY ptr_gw_action_binding = NULL;
335 static char* dynlibname_action_binding = NULL;
336 static char* gatewayname_action_binding = NULL;
337 /*--------------------------------------------------------------------------*/
338 int gw_dynamic_action_binding(void)
339 {
340 #ifdef _MSC_VER
341     if (dynlibname_action_binding == NULL)
342     {
343         dynlibname_action_binding = buildModuleDynLibraryName(ACTION_BINDING_MODULE_NAME, DYNLIB_NAME_FORMAT_2);
344     }
345 #endif
346     return gw_dynamic_generic(ACTION_BINDING_MODULE_NAME,
347                               &dynlibname_action_binding,
348                               &gatewayname_action_binding,
349                               &hAction_bindingLib ,
350                               &ptr_gw_action_binding);
351 }
352 /*--------------------------------------------------------------------------*/
353 /* ui_data module */
354 #define UI_DATA_MODULE_NAME "ui_data"
355 static DynLibHandle hUi_dataLib = NULL;
356 static PROC_GATEWAY ptr_gw_ui_data = NULL;
357 static char* dynlibname_ui_data = NULL;
358 static char* gatewayname_ui_data = NULL;
359 /*--------------------------------------------------------------------------*/
360 int gw_dynamic_ui_data(void)
361 {
362 #ifdef _MSC_VER
363     if (dynlibname_ui_data == NULL)
364     {
365         dynlibname_ui_data = buildModuleDynLibraryName(UI_DATA_MODULE_NAME, DYNLIB_NAME_FORMAT_2);
366     }
367 #endif
368
369     return gw_dynamic_generic(UI_DATA_MODULE_NAME,
370                               &dynlibname_ui_data,
371                               &gatewayname_ui_data,
372                               &hUi_dataLib,
373                               &ptr_gw_ui_data);
374 }
375 /*--------------------------------------------------------------------------*/
376 /* preferences module */
377 #define PREFERENCES_MODULE_NAME "preferences"
378 static DynLibHandle hPreferencesLib = NULL;
379 static PROC_GATEWAY ptr_gw_preferences = NULL;
380 static char* dynlibname_preferences = NULL;
381 static char* gatewayname_preferences = NULL;
382 /*--------------------------------------------------------------------------*/
383 int gw_dynamic_preferences(void)
384 {
385     return gw_dynamic_generic(PREFERENCES_MODULE_NAME,
386                               &dynlibname_preferences,
387                               &gatewayname_preferences,
388                               &hPreferencesLib,
389                               &ptr_gw_preferences);
390 }
391 /*--------------------------------------------------------------------------*/
392 /* xml module */
393 #define XML_MODULE_NAME "xml"
394 static DynLibHandle hXmlLib = NULL;
395 static PROC_GATEWAY ptr_gw_xml = NULL;
396 static char* dynlibname_xml = NULL;
397 static char* gatewayname_xml = NULL;
398 /*--------------------------------------------------------------------------*/
399 int gw_dynamic_xml(void)
400 {
401     return gw_dynamic_generic(XML_MODULE_NAME,
402                               &dynlibname_xml,
403                               &gatewayname_xml,
404                               &hXmlLib,
405                               &ptr_gw_xml);
406 }
407 /*--------------------------------------------------------------------------*/
408 /* graphic_objects module */
409 #define GRAPHIC_OBJECTS_MODULE_NAME "graphic_objects"
410 static DynLibHandle hGraphic_objectsLib = NULL;
411 static PROC_GATEWAY ptr_gw_graphic_objects = NULL;
412 static char* dynlibname_graphic_objects = NULL;
413 static char* gatewayname_graphic_objects = NULL;
414 /*--------------------------------------------------------------------------*/
415 int gw_dynamic_graphic_objects(void)
416 {
417 #ifdef _MSC_VER
418     if (dynlibname_graphic_objects == NULL)
419     {
420         dynlibname_graphic_objects = buildModuleDynLibraryName(GRAPHIC_OBJECTS_MODULE_NAME, DYNLIB_NAME_FORMAT_2);
421     }
422 #endif
423
424     return gw_dynamic_generic(GRAPHIC_OBJECTS_MODULE_NAME,
425                               &dynlibname_graphic_objects,
426                               &gatewayname_graphic_objects,
427                               &hGraphic_objectsLib,
428                               &ptr_gw_graphic_objects);
429 }
430 /*--------------------------------------------------------------------------*/
431 /* history_browser module */
432 #define HISTORY_BROWSER_MODULE_NAME "history_browser"
433 static DynLibHandle hHistory_browserLib = NULL;
434 static PROC_GATEWAY ptr_gw_history_browser = NULL;
435 static char* dynlibname_history_browser = NULL;
436 static char* gatewayname_history_browser = NULL;
437 /*--------------------------------------------------------------------------*/
438 int gw_dynamic_history_browser(void)
439 {
440     return gw_dynamic_generic(HISTORY_BROWSER_MODULE_NAME,
441                               &dynlibname_history_browser,
442                               &gatewayname_history_browser,
443                               &hHistory_browserLib,
444                               &ptr_gw_history_browser);
445 }
446 /*--------------------------------------------------------------------------*/
447 /* external_objects module */
448 #define EXTERNAL_OBJECTS_MODULE_NAME "external_objects"
449 static DynLibHandle hExternal_ObjectsLib = NULL;
450 static PROC_GATEWAY ptr_gw_external_objects = NULL;
451 static char* dynlibname_external_objects = NULL;
452 static char* gatewayname_external_objects = NULL;
453 /*--------------------------------------------------------------------------*/
454 int gw_dynamic_external_objects(void)
455 {
456     return gw_dynamic_generic(EXTERNAL_OBJECTS_MODULE_NAME,
457                               &dynlibname_external_objects,
458                               &gatewayname_external_objects,
459                               &hExternal_ObjectsLib,
460                               &ptr_gw_external_objects);
461 }
462 /*--------------------------------------------------------------------------*/
463 /* external_objects_java module */
464 #define EXTERNAL_OBJECTS_JAVA_MODULE_NAME "external_objects_java"
465 static DynLibHandle hExternal_Objects_JavaLib = NULL;
466 static PROC_GATEWAY ptr_gw_external_objects_java = NULL;
467 static char* dynlibname_external_objects_java = NULL;
468 static char* gatewayname_external_objects_java = NULL;
469 /*--------------------------------------------------------------------------*/
470 int gw_dynamic_external_objects_java(void)
471 {
472     return gw_dynamic_generic(EXTERNAL_OBJECTS_JAVA_MODULE_NAME,
473                               &dynlibname_external_objects_java,
474                               &gatewayname_external_objects_java,
475                               &hExternal_Objects_JavaLib,
476                               &ptr_gw_external_objects_java);
477 }
478 /*--------------------------------------------------------------------------*/
479 void freeAllDynamicGateways(void)
480 {
481     freeDynamicGateway(&dynlibname_special_functions,
482                        &gatewayname_special_functions,
483                        &hSpecial_functionsLib,
484                        &ptr_gw_special_functions);
485
486     freeDynamicGateway(&dynlibname_helptools,
487                        &gatewayname_helptools,
488                        &hHelptoolsLib,
489                        &ptr_gw_helptools);
490
491     freeDynamicGateway(&dynlibname_optimization,
492                        &gatewayname_optimization,
493                        &hOptimizationLib,
494                        &ptr_gw_optimization);
495
496     freeDynamicGateway(&dynlibname_matio,
497                        &gatewayname_matio, &hMatioLib,
498                        &ptr_gw_matio);
499
500     freeDynamicGateway(&dynlibname_umfpack,
501                        &gatewayname_umfpack,
502                        &hUmfpackLib,
503                        &ptr_gw_umfpack);
504
505     freeDynamicGateway(&dynlibname_spreadsheet,
506                        &gatewayname_spreadsheet,
507                        &hSpreadsheetLib,
508                        &ptr_gw_spreadsheet);
509
510     freeDynamicGateway(&dynlibname_sound,
511                        &gatewayname_sound,
512                        &hSoundLib,
513                        &ptr_gw_sound);
514
515     freeDynamicGateway(&dynlibname_scicos,
516                        &gatewayname_scicos,
517                        &hScicosLib,
518                        &ptr_gw_scicos);
519
520     freeDynamicGateway(&dynlibname_randlib,
521                        &gatewayname_randlib,
522                        &hRandlibLib,
523                        &ptr_gw_randlib);
524
525     freeDynamicGateway(&dynlibname_arnoldi,
526                        &gatewayname_arnoldi,
527                        &hArnoldiLib,
528                        &ptr_gw_arnoldi);
529
530     freeDynamicGateway(&dynlibname_symbolic,
531                        &gatewayname_symbolic,
532                        &hSymbolicLib,
533                        &ptr_gw_symbolic);
534
535     freeDynamicGateway(&dynlibname_interpolation,
536                        &gatewayname_interpolation,
537                        &hInterpolationLib,
538                        &ptr_gw_interpolation);
539
540     freeDynamicGateway(&dynlibname_statistics,
541                        &gatewayname_statistics,
542                        &hStatisticsLib,
543                        &ptr_gw_statistics);
544
545     freeDynamicGateway(&dynlibname_signal_processing,
546                        &gatewayname_signal_processing,
547                        &hSignal_processingLib,
548                        &ptr_gw_signal_processing);
549
550     freeDynamicGateway(&dynlibname_functions,
551                        &gatewayname_functions,
552                        &hFunctionsLib,
553                        &ptr_gw_functions);
554
555     freeDynamicGateway(&dynlibname_xcos,
556                        &gatewayname_xcos,
557                        &hXcosLib,
558                        &ptr_gw_xcos);
559
560     freeDynamicGateway(&dynlibname_scinotes,
561                        &gatewayname_scinotes,
562                        &hSciNotesLib,
563                        &ptr_gw_scinotes);
564
565     freeDynamicGateway(&dynlibname_graphic_export,
566                        &gatewayname_graphic_export,
567                        &hGraphic_exportLib,
568                        &ptr_gw_graphic_export);
569
570     freeDynamicGateway(&dynlibname_action_binding,
571                        &gatewayname_action_binding,
572                        &hAction_bindingLib,
573                        &ptr_gw_action_binding);
574
575     dynTerminateParallel();
576
577     freeDynamicGateway(&dynlibname_ui_data,
578                        &gatewayname_ui_data,
579                        &hUi_dataLib,
580                        &ptr_gw_ui_data);
581
582     freeDynamicGateway(&dynlibname_preferences,
583                        &gatewayname_preferences,
584                        &hPreferencesLib,
585                        &ptr_gw_preferences);
586
587     freeDynamicGateway(&dynlibname_xml,
588                        &gatewayname_xml,
589                        &hXmlLib,
590                        &ptr_gw_xml);
591
592     freeDynamicGateway(&dynlibname_graphic_objects,
593                        &gatewayname_graphic_objects,
594                        &hGraphic_objectsLib,
595                        &ptr_gw_graphic_objects);
596
597     freeDynamicGateway(&dynlibname_history_browser,
598                        &gatewayname_history_browser,
599                        &hHistory_browserLib,
600                        &ptr_gw_history_browser);
601
602     freeDynamicGateway(&dynlibname_external_objects,
603                        &gatewayname_external_objects,
604                        &hExternal_ObjectsLib,
605                        &ptr_gw_external_objects);
606
607     freeDynamicGateway(&dynlibname_external_objects_java,
608                        &gatewayname_external_objects_java,
609                        &hExternal_Objects_JavaLib,
610                        &ptr_gw_external_objects_java);
611 }
612 /*--------------------------------------------------------------------------*/
613