MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
com_mysql_cluster_crund_NdbApiLoad.cpp
1 /* -*- mode: java; c-basic-offset: 4; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=4:tabstop=4:smarttab:
3  *
4  * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #include <jni.h>
21 #include <cassert>
22 
23 #include "helpers.hpp"
24 
25 #include "com_mysql_cluster_crund_NdbApiLoad.h"
26 
27 #include "CrundNdbApiOperations.hpp"
28 
29 // ----------------------------------------------------------------------
30 
31 // provides the benchmark's basic database operations
32 static CrundNdbApiOperations* ops = NULL;
33 
34 // ----------------------------------------------------------------------
35 
36 JNIEXPORT jint JNICALL
37 Java_com_mysql_cluster_crund_NdbApiLoad_ndbinit(JNIEnv* env,
38  jclass cls,
39  jstring mgmd_jstr)
40 {
41  TRACE("ndbinit()");
42  assert(mgmd_jstr);
43 
44  // location of cluster management server (ndb_mgmd)
45  // get a native string from the Java string
46  const char* mgmd_cstr = env->GetStringUTFChars(mgmd_jstr, NULL);
47 
48  // initialize the benchmark's resources
49  ops = new CrundNdbApiOperations();
50  ops->init(mgmd_cstr);
51 
52  // release the native and Java strings
53  env->ReleaseStringUTFChars(mgmd_jstr, mgmd_cstr);
54 
55  return 0;
56 }
57 
58 JNIEXPORT jint JNICALL
59 Java_com_mysql_cluster_crund_NdbApiLoad_ndbclose(JNIEnv* env,
60  jclass cls)
61 {
62  TRACE("ndbclose()");
63 
64  // release the benchmark's resources
65  ops->close();
66  ops = NULL;
67 
68  return 0;
69 }
70 
71 JNIEXPORT void JNICALL
72 Java_com_mysql_cluster_crund_NdbApiLoad_initConnection(JNIEnv* env,
73  jobject obj,
74  jstring catalog_jstr,
75  jstring schema_jstr,
76  jint defaultLockMode)
77 {
78  TRACE("initConnection()");
79  assert(catalog_jstr);
80  assert(schema_jstr);
81 
82  // get native strings from the Java strings
83  const char* catalog_cstr = env->GetStringUTFChars(catalog_jstr, NULL);
84  const char* schema_cstr = env->GetStringUTFChars(schema_jstr, NULL);
85  NdbOperation::LockMode dlm = (NdbOperation::LockMode)defaultLockMode;
86 
87  ops->initConnection(catalog_cstr, schema_cstr, dlm);
88 
89  // release the native and Java strings
90  env->ReleaseStringUTFChars(schema_jstr, schema_cstr);
91  env->ReleaseStringUTFChars(catalog_jstr, catalog_cstr);
92 }
93 
94 JNIEXPORT void JNICALL
95 Java_com_mysql_cluster_crund_NdbApiLoad_closeConnection(JNIEnv* env,
96  jobject obj)
97 {
98  TRACE("closeConnection()");
99  ops->closeConnection();
100 }
101 
102 JNIEXPORT void JNICALL
103 Java_com_mysql_cluster_crund_NdbApiLoad_clearData(JNIEnv* env,
104  jobject obj)
105 {
106  TRACE("clearData()");
107  ops->clearData();
108 }
109 
110 JNIEXPORT void JNICALL
111 Java_com_mysql_cluster_crund_NdbApiLoad_delAllA(JNIEnv* env,
112  jobject obj,
113  jint nOps,
114  jboolean batch)
115 {
116  TRACE("delAllA()");
117  int count;
118  ops->delByScan(ops->model->table_A, count, batch == JNI_TRUE);
119  assert(count == nOps);
120 }
121 
122 JNIEXPORT void JNICALL
123 Java_com_mysql_cluster_crund_NdbApiLoad_delAllB0(JNIEnv* env,
124  jobject obj,
125  jint nOps,
126  jboolean batch)
127 {
128  TRACE("delAllB0()");
129  int count;
130  ops->delByScan(ops->model->table_B0, count, batch == JNI_TRUE);
131  assert(count == nOps);
132 }
133 
134 JNIEXPORT void JNICALL
135 Java_com_mysql_cluster_crund_NdbApiLoad_insA(JNIEnv* env,
136  jobject obj,
137  jint nOps,
138  jboolean setAttrs,
139  jboolean batch)
140 {
141  TRACE("insA()");
142  ops->ins(ops->model->table_A, 1, nOps,
143  setAttrs == JNI_TRUE, batch == JNI_TRUE);
144 }
145 
146 JNIEXPORT void JNICALL
147 Java_com_mysql_cluster_crund_NdbApiLoad_insB0(JNIEnv* env,
148  jobject obj,
149  jint nOps,
150  jboolean setAttrs,
151  jboolean batch)
152 {
153  TRACE("insB0()");
154  ops->ins(ops->model->table_B0, 1, nOps,
155  setAttrs == JNI_TRUE, batch == JNI_TRUE);
156 }
157 
158 JNIEXPORT void JNICALL
159 Java_com_mysql_cluster_crund_NdbApiLoad_delAByPK(JNIEnv* env,
160  jobject obj,
161  jint nOps,
162  jboolean batch)
163 {
164  TRACE("delAByPK()");
165  ops->delByPK(ops->model->table_A, 1, nOps, batch == JNI_TRUE);
166 }
167 
168 JNIEXPORT void JNICALL
169 Java_com_mysql_cluster_crund_NdbApiLoad_delB0ByPK(JNIEnv* env,
170  jobject obj,
171  jint nOps,
172  jboolean batch)
173 {
174  TRACE("delB0ByPK()");
175  ops->delByPK(ops->model->table_B0, 1, nOps, batch == JNI_TRUE);
176 }
177 
178 JNIEXPORT void JNICALL
179 Java_com_mysql_cluster_crund_NdbApiLoad_setAByPK(JNIEnv* env,
180  jobject obj,
181  jint nOps,
182  jboolean batch)
183 {
184  TRACE("setAByPK()");
185  ops->setByPK(ops->model->table_A, 1, nOps, batch == JNI_TRUE);
186 }
187 
188 JNIEXPORT void JNICALL
189 Java_com_mysql_cluster_crund_NdbApiLoad_setB0ByPK(JNIEnv* env,
190  jobject obj,
191  jint nOps,
192  jboolean batch)
193 {
194  TRACE("setB0ByPK()");
195  ops->setByPK(ops->model->table_B0, 1, nOps, batch == JNI_TRUE);
196 }
197 
198 JNIEXPORT void JNICALL
199 Java_com_mysql_cluster_crund_NdbApiLoad_getAByPK_1bb(JNIEnv* env,
200  jobject obj,
201  jint nOps,
202  jboolean batch)
203 {
204  TRACE("getAByPK_bb()");
205  ops->getByPK_bb(ops->model->table_A, 1, nOps, batch == JNI_TRUE);
206 }
207 
208 JNIEXPORT void JNICALL
209 Java_com_mysql_cluster_crund_NdbApiLoad_getB0ByPK_1bb(JNIEnv* env,
210  jobject obj,
211  jint nOps,
212  jboolean batch)
213 {
214  TRACE("getB0ByPK_bb()");
215  ops->getByPK_bb(ops->model->table_B0, 1, nOps, batch == JNI_TRUE);
216 }
217 
218 JNIEXPORT void JNICALL
219 Java_com_mysql_cluster_crund_NdbApiLoad_getAByPK_1ar(JNIEnv* env,
220  jobject obj,
221  jint nOps,
222  jboolean batch)
223 {
224  TRACE("getAByPK_ar()");
225  ops->getByPK_ar(ops->model->table_A, 1, nOps, batch == JNI_TRUE);
226 }
227 
228 JNIEXPORT void JNICALL
229 Java_com_mysql_cluster_crund_NdbApiLoad_getB0ByPK_1ar(JNIEnv* env,
230  jobject obj,
231  jint nOps,
232  jboolean batch)
233 {
234  TRACE("getB0ByPK_ar()");
235  ops->getByPK_ar(ops->model->table_B0, 1, nOps, batch == JNI_TRUE);
236 }
237 
238 JNIEXPORT void JNICALL
239 Java_com_mysql_cluster_crund_NdbApiLoad_setVarbinary(JNIEnv* env,
240  jobject obj,
241  jint nOps,
242  jboolean batch,
243  jint length)
244 {
245  TRACE("setVarbinary()");
246  ops->setVarbinary(ops->model->table_B0,
247  1, nOps, batch == JNI_TRUE, length);
248 }
249 
250 JNIEXPORT void JNICALL
251 Java_com_mysql_cluster_crund_NdbApiLoad_getVarbinary(JNIEnv* env,
252  jobject obj,
253  jint nOps,
254  jboolean batch,
255  jint length)
256 {
257  TRACE("getVarbinary()");
258  ops->getVarbinary(ops->model->table_B0,
259  1, nOps, batch == JNI_TRUE, length);
260 }
261 
262 JNIEXPORT void JNICALL
263 Java_com_mysql_cluster_crund_NdbApiLoad_setVarchar(JNIEnv* env,
264  jobject obj,
265  jint nOps,
266  jboolean batch,
267  jint length)
268 {
269  TRACE("setVarchar()");
270  ops->setVarchar(ops->model->table_B0,
271  1, nOps, batch == JNI_TRUE, length);
272 }
273 
274 JNIEXPORT void JNICALL
275 Java_com_mysql_cluster_crund_NdbApiLoad_getVarchar(JNIEnv* env,
276  jobject obj,
277  jint nOps,
278  jboolean batch,
279  jint length)
280 {
281  TRACE("getVarchar()");
282  ops->getVarchar(ops->model->table_B0,
283  1, nOps, batch == JNI_TRUE, length);
284 }
285 
286 JNIEXPORT void JNICALL
287 Java_com_mysql_cluster_crund_NdbApiLoad_setB0ToA(JNIEnv* env,
288  jobject obj,
289  jint nOps,
290  jboolean batch)
291 {
292  TRACE("setB0ToA()");
293  ops->setB0ToA(nOps, batch == JNI_TRUE);
294 }
295 
296 JNIEXPORT void JNICALL
297 Java_com_mysql_cluster_crund_NdbApiLoad_navB0ToA(JNIEnv* env,
298  jobject obj,
299  jint nOps,
300  jboolean batch)
301 {
302  TRACE("navB0ToA()");
303  ops->navB0ToA(nOps, batch == JNI_TRUE);
304 }
305 
306 JNIEXPORT void JNICALL
307 Java_com_mysql_cluster_crund_NdbApiLoad_navB0ToAalt(JNIEnv* env,
308  jobject obj,
309  jint nOps,
310  jboolean batch)
311 {
312  TRACE("navB0ToAalt()");
313  ops->navB0ToAalt(nOps, batch == JNI_TRUE);
314 }
315 
316 JNIEXPORT void JNICALL
317 Java_com_mysql_cluster_crund_NdbApiLoad_navAToB0(JNIEnv* env,
318  jobject obj,
319  jint nOps,
320  jboolean forceSend)
321 {
322  TRACE("navAToB0()");
323  ops->navAToB0(nOps, forceSend == JNI_TRUE);
324 }
325 
326 JNIEXPORT void JNICALL
327 Java_com_mysql_cluster_crund_NdbApiLoad_navAToB0alt(JNIEnv* env,
328  jobject obj,
329  jint nOps,
330  jboolean forceSend)
331 {
332  TRACE("navAToB0alt()");
333  ops->navAToB0alt(nOps, forceSend == JNI_TRUE);
334 }
335 
336 JNIEXPORT void JNICALL
337 Java_com_mysql_cluster_crund_NdbApiLoad_nullB0ToA(JNIEnv* env,
338  jobject obj,
339  jint nOps,
340  jboolean batch)
341 {
342  TRACE("nullB0ToA()");
343  ops->nullB0ToA(nOps, batch == JNI_TRUE);
344 }
345 
346 // ----------------------------------------------------------------------