commons: always free returned C-style strings
[scilab.git] / scilab / modules / commons / src / jni / ScilabCommons.i
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - 2010 - Sylvestre Ledru
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13
14 /* ScilabCommons.i */
15 /**
16  * Windows: swig -java -package org.scilab.modules.commons -outdir ../java/org/scilab/modules/commons/ ScilabCommons.i
17  * Other: Use the option --enable-build-swig to the configure
18 */
19 %module ScilabCommons
20 %{
21 #include "sci_malloc.h"
22 #include "sci_home.h"
23 #include "sci_tmpdir.h"
24 #include "createtempfilename.h"
25 #include "setgetlanguage.h"
26 #include "getversion.h"
27 #include "configvariable_interface.h"
28 #include "setformat.h"
29 %}
30
31 /* JavaDoc for ScilabCommonsJNI class */
32 %pragma(java) jniclassclassmodifiers=%{
33 /* It is generated code. Disable checkstyle */
34 //CHECKSTYLE:OFF
35  /**
36    * Some commons values from Scilab engine to Java
37    * @author Sylvestre LEDRU
38    * @copyright DIGITEO 2010
39    */
40 public class%}
41
42 /* Constructor for ScilabCommonsJNI class */
43 %pragma(java) jniclasscode="
44   /**
45     * Constructor
46     */
47   protected ScilabCommonsJNI() {
48     throw new UnsupportedOperationException();
49   }";
50
51 /* static load of library */
52 %pragma(java) jniclasscode=%{
53   static {
54     try {
55         System.loadLibrary("scicommons");
56     } catch (SecurityException e) {
57         System.err.println("A security manager exists and does not allow the loading of the specified dynamic library.");
58         System.err.println(e.getLocalizedMessage());
59         System.exit(-1);
60     } catch (UnsatisfiedLinkError e)    {
61            System.err.println("The native library scicommons does not exist or cannot be found.");
62         if (System.getenv("CONTINUE_ON_JNI_ERROR") == null) {
63            System.err.println(e.getLocalizedMessage());
64            System.err.println("Current java.library.path is : "+System.getProperty("java.library.path"));
65            System.exit(-1);
66         }else{
67            System.err.println("Continuing anyway because of CONTINUE_ON_JNI_ERROR");
68         }
69     }
70   }
71 %}
72
73 %typemap(out, noblock=1) char * {if ($1)
74 {
75     $result = JCALL1(NewStringUTF, jenv, (const char *)$1);
76     FREE($1);
77 }}
78
79 /* JavaDoc for ScilabCommons class */
80 %pragma(java) moduleclassmodifiers="
81  /**
82    * Some commons values from Scilab engine to Java
83    * @author Sylvestre LEDRU
84    * @copyright DIGITEO 2010
85    */
86 public class";
87
88 /* Constructor for ScilabCommons class */
89 %pragma(java) modulecode="
90  /**
91    * Constructor
92    */
93  protected ScilabCommons() {
94     throw new UnsupportedOperationException();
95  }";
96
97 /* JavaDoc */
98 %javamethodmodifiers getSCIHOME() "
99  /**
100    * Get SCIHOME variable from Scilab
101    * @return SCIHOME value
102    */
103 public";
104 char* getSCIHOME();
105
106
107 /* JavaDoc */
108 %javamethodmodifiers getTMPDIR() "
109  /**
110    * returns TMPDIR directory value
111    * @return TMPDIR value
112    */
113 public";
114 char *getTMPDIR(void);
115
116
117 /* JavaDoc */
118 %javamethodmodifiers getScilabLanguage() "
119  /**
120    * returns Scilab current language
121    * @return language
122    */
123 public";
124 char *getlanguage(void);
125
126
127 /* JavaDoc */
128 %javamethodmodifiers createTempFileName() "
129  /**
130   * Create file with unique file name in TMPDIR
131   * TMPDIR/PREFIX[XXXXXXX]
132   * @param prefix the file prefix
133   * @param bShortFormat set 1 for a 8.5 filename, 0 otherwise
134   * @return a unique filename
135   */
136 public";
137 char *createtempfilename(const char* prefix, int bShortFormat);
138
139 /* JavaDoc */
140 %javamethodmodifiers getScilabIeeeMode() "
141  /**
142    * returns the Scilab ieee mode
143    * @return ieee mode
144    */
145 public";
146 int getieee(void);
147
148 /* JavaDoc */
149 %javamethodmodifiers setScilabIeeeMode(int) "
150  /**
151    * Set the Scilab ieee mode
152    */
153 public";
154 void setieee(int);
155
156 /* JavaDoc */
157 %javamethodmodifiers setformat(const char *, int) "
158  /**
159    * Set the Scilab ieee mode
160    */
161 public";
162 void setformat(const char * format, int width);
163
164 /* JavaDoc */
165 %javamethodmodifiers getformat() "
166  /**
167    * returns the Scilab format (\"v\" or \"e\")
168    * @return format
169    */
170 public";
171 char * getformat();
172
173 /* JavaDoc */
174 %javamethodmodifiers getformatwidth() "
175  /**
176    * returns the Scilab format width
177    * @return format
178    */
179 public";
180 int getformatwidth();
181
182 /* JavaDoc */
183 %javamethodmodifiers getScilabVersionMajor() "
184  /**
185    * returns the Scilab version major number
186    * @return version major
187    */
188 public";
189 int getScilabVersionMajor();
190
191 /* JavaDoc */
192 %javamethodmodifiers getScilabVersionMinor() "
193  /**
194    * returns the Scilab version minor number
195    * @return version minor
196    */
197 public";
198 int getScilabVersionMinor();
199
200 /* JavaDoc */
201 %javamethodmodifiers getScilabVersionMaintenance() "
202  /**
203    * returns the Scilab version maintenance number
204    * @return version maintenance
205    */
206 public";
207 int getScilabVersionMaintenance();
208
209 /* JavaDoc */
210 %javamethodmodifiers getScilabVersionTimestamp() "
211  /**
212    * returns the Scilab version timestamp number
213    * @return version timestamp
214    */
215 public";
216 int getScilabVersionTimestamp();
217
218 /* JavaDoc */
219 %javamethodmodifiers getScilabVersionAsString() "
220  /**
221    * returns the Scilab version as string
222    * @return version Scilab version as a string
223    */
224 public";
225 char* getScilabVersionAsString();