1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
--- main-exceptions-good.i 2007-02-22 11:41:30.000000000 -0600
+++ main-extended.i 2007-02-22 12:41:38.000000000 -0600
@@ -68,8 +68,15 @@
$action
if (result) {
const char * msg = "Connect to management server failed";
+#if defined(SWIGPYTHON)
PyErr_SetString(PyExc_RuntimeError, msg);
return PyInt_FromLong(-1);
+#endif
+#if defined(SWIGJAVA)
+ jclass clazz = jenv->FindClass("java/lang/RuntimeException");
+ jenv->ThrowNew(clazz, msg);
+ return -1;
+#endif
}
}
@@ -79,6 +86,14 @@
};
+%extend Ndb_cluster_connection {
+public:
+ Ndb* getNdb(const char* aCatalogName="", const char* aSchemaName="def") {
+ Ndb* myNdb = new Ndb(self,aCatalogName,aSchemaName);
+ return myNdb;
+ }
+}
+
class Ndb {
public:
@@ -112,6 +127,29 @@
void closeTransaction(NdbTransaction*);
};
+%extend Ndb {
+public:
+ NdbTransaction* startTransaction(const char* aTableName,
+ const char *keyData) {
+ const NdbDictionary::Dictionary *myDict = self->getDictionary();
+ const NdbDictionary::Table *myTable = myDict->getTable(aTableName);
+ return self->startTransaction(myTable,keyData);
+ }
+ NdbTransaction* startTransaction(const char* aTableName,
+ int keyData) {
+ const NdbDictionary::Dictionary *myDict = self->getDictionary();
+ const NdbDictionary::Table *myTable = myDict->getTable(aTableName);
+ return self->startTransaction(myTable,(const char *) &keyData);
+ }
+
+ Uint64 getAutoIncrementValue(const char* aTableName,
+ Uint32 cacheSize) {
+
+ Uint64 id = 0;
+ self->getAutoIncrementValue(aTableName,id,cacheSize);
+ return id;
+ };
+};
class NdbTransaction {
~NdbTransaction();
@@ -262,5 +300,11 @@
}
};
+
+%extend NdbError {
+ const char * getMessage() {
+ return self->message;
+ }
+}
/* test */
/* -*- mode: c++ -*- */
|