MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mysql_utils_jtie.hpp
1 /*
2  Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 /*
18  * mysql_utils_jtie.hpp
19  */
20 
21 #ifndef mysql_utils_jtie_hpp
22 #define mysql_utils_jtie_hpp
23 
24 // API to implement against
25 #include "decimal_utils.hpp"
26 #include "CharsetMap.hpp"
27 #include "MysqlUtilsWrapper.hpp"
28 
29 // libraries
30 #include "ndbjtie_defs.hpp"
31 #include "helpers.hpp"
32 #include "jtie.hpp"
33 
34 // ---------------------------------------------------------------------------
35 // MySQL Utilities JTie Type Definitions
36 // ---------------------------------------------------------------------------
37 
38 // type alias for mapping the 2-element int array in CharsetMap::recode();
39 // provides basic error checking by jtie requiring array length >= 2.
41 
42 JTIE_DEFINE_PEER_CLASS_MAPPING(CharsetMap,
43  c_m_n_m_CharsetMap)
44 
45 // ---------------------------------------------------------------------------
46 
47 JTIE_DEFINE_JINT_ENUM_TYPE_MAPPING(CharsetMap::RecodeStatus,
48  c_m_n_m_CharsetMap_RecodeStatus)
49 
50 // ---------------------------------------------------------------------------
51 // MySQL Utilities JTie Function Stubs
52 // ---------------------------------------------------------------------------
53 
54 // The API stub functions in this file have mangled names that adhere
55 // to the JVM specification. It is not necessary to include the
56 // function prototypes generated by the javah tool from the Java source,
57 // if they are declared to receive "C" linkage here.
58 extern "C" {
59 
60 // A javah bug in JDK 5
61 // http://forums.sun.com/thread.jspa?threadID=5115982&tstart=1499
62 // generates a wrong name for native methods in static nested classes:
63 //
64 // JDK 6 has this bug only partially fixed (nested classes as invocation
65 // targets but not as parameters).
66 //
67 // Outer$Inner is to be mangled as unicode escape: Outer_00024Inner, see:
68 // http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/design.html#wp615]Resolving%20Native%20Method%20Names
69 
70 // ---------------------------------------------------------------------------
71 
72 //#include "com_mysql_ndbjtie_mysql_CharsetMap.h"
73 
74 /*
75  * Class: com_mysql_ndbjtie_mysql_CharsetMap
76  * Method: create
77  * Signature: ()Lcom/mysql/ndbjtie/mysql/CharsetMap;
78  */
79 JNIEXPORT jobject JNICALL
80 Java_com_mysql_ndbjtie_mysql_CharsetMap_create(JNIEnv * env, jclass cls)
81 {
82  TRACE("jobject Java_com_mysql_ndbjtie_mysql_CharsetMap_create(JNIEnv *, jclass)");
83  return gcreate< ttrait_c_m_n_m_CharsetMap_r >(env, cls);
84 }
85 
86 /*
87  * Class: com_mysql_ndbjtie_mysql_CharsetMap
88  * Method: delete
89  * Signature: (Lcom/mysql/ndbjtie/mysql/CharsetMap;)V
90  */
91 JNIEXPORT void JNICALL
92 Java_com_mysql_ndbjtie_mysql_CharsetMap_delete(JNIEnv * env, jclass cls, jobject p0)
93 {
94  TRACE("void Java_com_mysql_ndbjtie_mysql_CharsetMap_delete(JNIEnv *, jclass, jobject)");
95  gdelete< ttrait_c_m_n_m_CharsetMap_r >(env, cls, p0);
96 }
97 
98 /*
99  * Class: com_mysql_ndbjtie_mysql_CharsetMap
100  * Method: getName
101  * Signature: (I)Ljava/lang/String;
102  */
103 JNIEXPORT jstring JNICALL
104 Java_com_mysql_ndbjtie_mysql_CharsetMap_getName(JNIEnv * env, jobject obj, jint p0)
105 {
106  TRACE("jstring Java_com_mysql_ndbjtie_mysql_CharsetMap_getName(JNIEnv *, jobject, jint)");
107 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
108  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_char_cp_jutf8null, ttrait_int, &CharsetMap::getName >(env, obj, p0);
109 #else
110  return gcall_fr< ttrait_char_cp_jutf8null, ttrait_c_m_n_m_CharsetMap_cr, ttrait_int, &MysqlUtilsWrapper::CharsetMap__getName >(env, NULL, obj, p0);
111 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
112 }
113 
114 /*
115  * Class: com_mysql_ndbjtie_mysql_CharsetMap
116  * Method: getMysqlName
117  * Signature: (I)Ljava/lang/String;
118  */
119 JNIEXPORT jstring JNICALL
120 Java_com_mysql_ndbjtie_mysql_CharsetMap_getMysqlName(JNIEnv * env, jobject obj, jint p0)
121 {
122  TRACE("jstring Java_com_mysql_ndbjtie_mysql_CharsetMap_getMysqlName(JNIEnv *, jobject, jint)");
123 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
124  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_char_cp_jutf8null, ttrait_int, &CharsetMap::getMysqlName >(env, obj, p0);
125 #else
126  return gcall_fr< ttrait_char_cp_jutf8null, ttrait_c_m_n_m_CharsetMap_cr, ttrait_int, &MysqlUtilsWrapper::CharsetMap__getMysqlName >(env, NULL, obj, p0);
127 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
128 }
129 
130 /*
131  * Class: com_mysql_ndbjtie_mysql_CharsetMap
132  * Method: getCharsetNumber
133  * Signature: (Ljava/lang/String;)I
134  */
135 JNIEXPORT jint JNICALL
136 Java_com_mysql_ndbjtie_mysql_CharsetMap_getCharsetNumber(JNIEnv * env, jobject obj, jstring p0)
137 {
138  TRACE("jint Java_com_mysql_ndbjtie_mysql_CharsetMap_getCharsetNumber(JNIEnv *, jobject, jstring)");
139 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
140  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_int, ttrait_char_cp_jutf8null, &CharsetMap::getCharsetNumber >(env, obj, p0);
141 #else
142  return gcall_fr< ttrait_int, ttrait_c_m_n_m_CharsetMap_cr, ttrait_char_cp_jutf8null, &MysqlUtilsWrapper::CharsetMap__getCharsetNumber >(env, NULL, obj, p0);
143 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
144 }
145 
146 /*
147  * Class: com_mysql_ndbjtie_mysql_CharsetMap
148  * Method: getUTF8CharsetNumber
149  * Signature: ()I
150  */
151 JNIEXPORT jint JNICALL
152 Java_com_mysql_ndbjtie_mysql_CharsetMap_getUTF8CharsetNumber(JNIEnv * env, jobject obj)
153 {
154  TRACE("jint Java_com_mysql_ndbjtie_mysql_CharsetMap_getUTF8CharsetNumber(JNIEnv *, jobject)");
155 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
156  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_int, &CharsetMap::getUTF8CharsetNumber >(env, obj);
157 #else
158  return gcall_fr< ttrait_int, ttrait_c_m_n_m_CharsetMap_cr, &MysqlUtilsWrapper::CharsetMap__getUTF8CharsetNumber >(env, NULL, obj);
159 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
160 }
161 
162 /*
163  * Class: com_mysql_ndbjtie_mysql_CharsetMap
164  * Method: getUTF16CharsetNumber
165  * Signature: ()I
166  */
167 JNIEXPORT jint JNICALL
168 Java_com_mysql_ndbjtie_mysql_CharsetMap_getUTF16CharsetNumber(JNIEnv * env, jobject obj)
169 {
170  TRACE("jint Java_com_mysql_ndbjtie_mysql_CharsetMap_getUTF16CharsetNumber(JNIEnv *, jobject)");
171 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
172  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_int, &CharsetMap::getUTF16CharsetNumber >(env, obj);
173 #else
174  return gcall_fr< ttrait_int, ttrait_c_m_n_m_CharsetMap_cr, &MysqlUtilsWrapper::CharsetMap__getUTF16CharsetNumber >(env, NULL, obj);
175 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
176 }
177 
178 /*
179  * Class: com_mysql_ndbjtie_mysql_CharsetMap
180  * Method: isMultibyte
181  * Signature: (I)[Z
182  */
183 JNIEXPORT jbooleanArray JNICALL
184 Java_com_mysql_ndbjtie_mysql_CharsetMap_isMultibyte(JNIEnv * env, jobject jobj, jint p0)
185 {
186  TRACE("Java_com_mysql_ndbjtie_mysql_CharsetMap_isMultibyte(JNIEnv *, jobject, jint)");
187 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
188  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_bool_1cp_a, ttrait_int, &CharsetMap::isMultibyte >(env, jobj, p0);
189 #else
190  return gcall_fr< ttrait_bool_1cp_a, ttrait_c_m_n_m_CharsetMap_cr, ttrait_int, &MysqlUtilsWrapper::CharsetMap__isMultibyte >(env, NULL, jobj, p0);
191 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
192 }
193 
194 /*
195  * Class: com_mysql_ndbjtie_mysql_CharsetMap
196  * Method: recode
197  * Signature: ([IIILjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
198  */
199 JNIEXPORT jint JNICALL
200 Java_com_mysql_ndbjtie_mysql_CharsetMap_recode(JNIEnv * env, jobject obj, jintArray p0, jint p1, jint p2, jobject p3, jobject p4)
201 {
202  TRACE("jint Java_com_mysql_ndbjtie_mysql_CharsetMap_recode(JNIEnv *, jobject, jintArray, jint, jint, jobject, jobject)");
203 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
204  return gcall_mfr< ttrait_c_m_n_m_CharsetMap_ct, ttrait_c_m_n_m_CharsetMap_RecodeStatus_iv/*_enum_*/, ttrait_int32_2p_a, ttrait_int, ttrait_int, ttrait_void_0cp_bb, ttrait_void_0p_bb, &CharsetMap::recode >(env, obj, p0, p1, p2, p3, p4);
205 #else
206  return gcall_fr< ttrait_c_m_n_m_CharsetMap_RecodeStatus_iv/*_enum_*/, ttrait_c_m_n_m_CharsetMap_cr, ttrait_int32_2p_a, ttrait_int, ttrait_int, ttrait_void_0cp_bb, ttrait_void_0p_bb, &MysqlUtilsWrapper::CharsetMap__recode >(env, NULL, obj, p0, p1, p2, p3, p4);
207 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
208 }
209 
210 // ---------------------------------------------------------------------------
211 
212 //#include "com_mysql_ndbjtie_mysql_Utils.h"
213 
214 /*
215  * Class: com_mysql_ndbjtie_mysql_Utils
216  * Method: decimal_str2bin
217  * Signature: (Ljava/nio/ByteBuffer;IIILjava/nio/ByteBuffer;I)I
218  */
219 JNIEXPORT jint JNICALL
220 Java_com_mysql_ndbjtie_mysql_Utils_decimal_1str2bin(JNIEnv * env, jclass cls, jobject p0, jint p1, jint p2, jint p3, jobject p4, jint p5)
221 {
222  TRACE("jint Java_com_mysql_ndbjtie_mysql_Utils_decimal_1str2bin(JNIEnv *, jclass, jobject, jint, jint, jint, jobject, jint)");
223 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
224  return gcall_fr< ttrait_int, ttrait_char_0cp_bb, ttrait_int, ttrait_int, ttrait_int, ttrait_void_0p_bb, ttrait_int, &::decimal_str2bin >(env, cls, p0, p1, p2, p3, p4, p5);
225 #else
226  return gcall_fr< ttrait_int, ttrait_char_0cp_bb, ttrait_int, ttrait_int, ttrait_int, ttrait_void_0p_bb, ttrait_int, &MysqlUtilsWrapper::decimal_str2bin >(env, cls, p0, p1, p2, p3, p4, p5);
227 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
228 }
229 
230 /*
231  * Class: com_mysql_ndbjtie_mysql_Utils
232  * Method: decimal_bin2str
233  * Signature: (Ljava/nio/ByteBuffer;IIILjava/nio/ByteBuffer;I)I
234  */
235 JNIEXPORT jint JNICALL
236 Java_com_mysql_ndbjtie_mysql_Utils_decimal_1bin2str(JNIEnv * env, jclass cls, jobject p0, jint p1, jint p2, jint p3, jobject p4, jint p5)
237 {
238  TRACE("jint Java_com_mysql_ndbjtie_mysql_Utils_decimal_1bin2str(JNIEnv *, jclass, jobject, jint, jint, jint, jobject, jint)");
239 #ifndef NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
240  return gcall_fr< ttrait_int, ttrait_void_0cp_bb, ttrait_int, ttrait_int, ttrait_int, ttrait_char_0p_bb, ttrait_int, &::decimal_bin2str >(env, cls, p0, p1, p2, p3, p4, p5);
241 #else
242  return gcall_fr< ttrait_int, ttrait_void_0cp_bb, ttrait_int, ttrait_int, ttrait_int, ttrait_char_0p_bb, ttrait_int, &MysqlUtilsWrapper::decimal_bin2str >(env, cls, p0, p1, p2, p3, p4, p5);
243 #endif // NDBJTIE_USE_WRAPPED_VARIANT_FOR_FUNCTION
244 }
245 
246 // ---------------------------------------------------------------------------
247 
248 } // extern "C"
249 
250 #endif // mysql_utils_jtie_hpp