transactd 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- data/source/bzs/example/useORM.cpp +0 -585
data/build/swig/ruby/ruby.swg
CHANGED
|
@@ -17,37 +17,39 @@
|
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
=================================================================*/
|
|
19
19
|
#if defined(SWIGRUBY) // ======= For RUBY =======
|
|
20
|
-
|
|
21
20
|
/* ===============================================
|
|
22
|
-
|
|
21
|
+
exception handler
|
|
23
22
|
=============================================== */
|
|
24
|
-
%
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
%ignore bzs::db::protocol::tdap::client::database::onDeleteRecord;
|
|
36
|
-
%ignore bzs::db::protocol::tdap::client::database::setOnDeleteRecord;
|
|
23
|
+
%exception {
|
|
24
|
+
try {
|
|
25
|
+
$action
|
|
26
|
+
} catch (bzs::rtl::exception& e) {
|
|
27
|
+
static VALUE bzs_rtl_error = rb_define_class("BZS_RTL_Error", rb_eStandardError);
|
|
28
|
+
rb_raise(bzs_rtl_error, (* bzs::rtl::getMsg(e)).c_str());
|
|
29
|
+
} catch (std::exception &e) {
|
|
30
|
+
static VALUE cpp_std_error = rb_define_class("CPP_STD_Error", rb_eStandardError);
|
|
31
|
+
rb_raise(cpp_std_error, e.what());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
37
34
|
|
|
38
35
|
|
|
39
36
|
/* ===============================================
|
|
40
|
-
|
|
37
|
+
General settings for Ruby
|
|
41
38
|
=============================================== */
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
%{
|
|
40
|
+
#if defined(__MINGW32__) && defined(__GNUC__)
|
|
41
|
+
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
|
|
42
|
+
#define _SYS_TIME_H_
|
|
43
|
+
#else
|
|
44
|
+
#define _GETTIMEOFDAY_DEFINED
|
|
45
|
+
#endif
|
|
46
|
+
#endif
|
|
47
|
+
%}
|
|
45
48
|
|
|
49
|
+
// Suppress warning
|
|
50
|
+
#pragma SWIG nowarn=SWIGWARN_RUBY_WRONG_NAME
|
|
46
51
|
|
|
47
|
-
|
|
48
|
-
Ruby can't convert String to c++ wchar_t
|
|
49
|
-
so define _TCHAR as char.
|
|
50
|
-
=============================================== */
|
|
52
|
+
// Ruby can't convert String to c++ wchar_t so define _TCHAR as char.
|
|
51
53
|
#ifdef _UNICODE
|
|
52
54
|
# undef _UNICODE
|
|
53
55
|
#endif
|
|
@@ -57,55 +59,7 @@
|
|
|
57
59
|
typedef char _TCHAR;
|
|
58
60
|
#define _T(x) x
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
/* ===============================================
|
|
62
|
-
set execCodePage on createObject
|
|
63
|
-
=============================================== */
|
|
64
|
-
%ignore bzs::db::protocol::tdap::client::database::create();
|
|
65
|
-
%extend bzs::db::protocol::tdap::client::database {
|
|
66
|
-
static bzs::db::protocol::tdap::client::database* createObject()
|
|
67
|
-
{
|
|
68
|
-
bzs::db::protocol::tdap::client::nsdatabase::setExecCodePage(CP_UTF8);
|
|
69
|
-
return bzs::db::protocol::tdap::client::database::create();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
%newobject bzs::db::protocol::tdap::client::database::createObject;
|
|
73
|
-
%delobject bzs::db::protocol::tdap::client::database::release;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/* ===============================================
|
|
77
|
-
setFV / getFV for binary data
|
|
78
|
-
=============================================== */
|
|
79
|
-
%ignore bzs::db::protocol::tdap::client::table::setFV(short, const void *, uint_td);
|
|
80
|
-
%extend bzs::db::protocol::tdap::client::table {
|
|
81
|
-
void setFV(short index, const char * data, uint_td size) {
|
|
82
|
-
return self->setFV(index, (void const *) data, size);
|
|
83
|
-
}
|
|
84
|
-
void setFV(const _TCHAR *fieldName, const char * data, uint_td size) {
|
|
85
|
-
return self->setFV(fieldName, (void const *) data, size);
|
|
86
|
-
}
|
|
87
|
-
const char * getFVbin(short index, uint_td& size)
|
|
88
|
-
{
|
|
89
|
-
return (const char *)(self->getFVbin(index, size));
|
|
90
|
-
}
|
|
91
|
-
const char * getFVbin(const _TCHAR *fieldName, uint_td& size)
|
|
92
|
-
{
|
|
93
|
-
return (const char *)(self->getFVbin(fieldName, size));
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
%typemap(in, numinputs=0) (uint_td & size) (uint_td temp) {
|
|
97
|
-
$1 = &temp;
|
|
98
|
-
}
|
|
99
|
-
%typemap(argout) (uint_td & size) {
|
|
100
|
-
$result = rb_str_new((const char *)result, *$1);
|
|
101
|
-
}
|
|
102
|
-
%ignore bzs::db::protocol::tdap::client::table::getFVbin(short, uint_td&);
|
|
103
|
-
%ignore bzs::db::protocol::tdap::client::table::getFVbin(const _TCHAR *, uint_td&);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/* ===============================================
|
|
107
|
-
add encoding support for ruby 1.9
|
|
108
|
-
=============================================== */
|
|
62
|
+
// add encoding support method for ruby 1.9
|
|
109
63
|
%{
|
|
110
64
|
#include "ruby/encoding.h"
|
|
111
65
|
#undef stat
|
|
@@ -121,19 +75,215 @@ rb_encoding* rb_enc_find_from_codepage(int codePage)
|
|
|
121
75
|
}
|
|
122
76
|
%}
|
|
123
77
|
|
|
78
|
+
// typemaps for encoding support
|
|
124
79
|
%typemap(argout) (const char* u8, int u8size, char* mbc, int mbcsize) {
|
|
125
80
|
%append_output(rb_str_new($3, strlen($3)));
|
|
126
81
|
}
|
|
127
82
|
%typemap(argout) (const char* mbc, int mbcsize, char* u8, int u8size) {
|
|
128
83
|
%append_output(rb_str_new($3, strlen($3)));
|
|
129
84
|
}
|
|
130
|
-
|
|
131
85
|
%typemap(out) const char* {
|
|
132
|
-
|
|
86
|
+
$result = rb_enc_str_new($1, strlen($1), rb_enc_find_from_codepage(CP_UTF8));
|
|
133
87
|
}
|
|
134
|
-
|
|
135
88
|
%typemap(out) char* {
|
|
136
|
-
|
|
89
|
+
$result = rb_enc_str_new($1, strlen($1), rb_enc_find_from_codepage(CP_UTF8));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
/* ===============================================
|
|
94
|
+
mark objects with reference counter
|
|
95
|
+
=============================================== */
|
|
96
|
+
%trackobjects bzs::db::protocol::tdap::client::activeTable;
|
|
97
|
+
%markfunc bzs::db::protocol::tdap::client::activeTable "mark_activeTable";
|
|
98
|
+
%{
|
|
99
|
+
#include <build/swig/referencecounter.h>
|
|
100
|
+
referenceCounter g_refCounter;
|
|
101
|
+
static void mark_activeTable(void* ptr) {
|
|
102
|
+
g_refCounter.mark();
|
|
103
|
+
}
|
|
104
|
+
%}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
/* ===============================================
|
|
108
|
+
ignore / rename functions
|
|
109
|
+
=============================================== */
|
|
110
|
+
// * bzs/db/protocol/tdap/client/activeTable.h *
|
|
111
|
+
// add wrappers
|
|
112
|
+
%extend bzs::db::protocol::tdap::client::activeTable {
|
|
113
|
+
activeTable(idatabaseManager* mgr, const _TCHAR* tableName) {
|
|
114
|
+
bzs::db::protocol::tdap::client::activeTable* p =
|
|
115
|
+
bzs::db::protocol::tdap::client::activeTable::create(mgr, tableName);
|
|
116
|
+
g_refCounter.add(p, mgr);
|
|
117
|
+
g_vPtrList.add(p->table().get());
|
|
118
|
+
return p;
|
|
119
|
+
}
|
|
120
|
+
activeTable(database* db, const _TCHAR* tableName) {
|
|
121
|
+
bzs::db::protocol::tdap::client::activeTable* p =
|
|
122
|
+
bzs::db::protocol::tdap::client::activeTable::create(db, tableName);
|
|
123
|
+
g_refCounter.add(p, db);
|
|
124
|
+
g_vPtrList.add(p->table().get());
|
|
125
|
+
return p;
|
|
126
|
+
}
|
|
127
|
+
~activeTable() {
|
|
128
|
+
if (g_vPtrList.remove(self->table().get()))
|
|
129
|
+
{
|
|
130
|
+
if (nsdatabase::testTablePtr(self->table().get()))
|
|
131
|
+
self->table()->nsdb()->setTestPtrIgnore(true);
|
|
132
|
+
}
|
|
133
|
+
g_refCounter.remove(self);
|
|
134
|
+
self->release();
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
// ignore original functions
|
|
138
|
+
%ignore bzs::db::protocol::tdap::client::activeTable::activeTable;
|
|
139
|
+
%ignore bzs::db::protocol::tdap::client::activeTable::~activeTable;
|
|
140
|
+
|
|
141
|
+
// * bzs/db/protocol/tdap/client/database.h *
|
|
142
|
+
%ignore bzs::db::protocol::tdap::client::database::onCopyData;
|
|
143
|
+
%ignore bzs::db::protocol::tdap::client::database::setOnCopyData;
|
|
144
|
+
%ignore bzs::db::protocol::tdap::client::database::onDeleteRecord;
|
|
145
|
+
%ignore bzs::db::protocol::tdap::client::database::setOnDeleteRecord;
|
|
146
|
+
|
|
147
|
+
// * bzs/db/protocol/tdap/client/field.h *
|
|
148
|
+
%rename(__getitem__) bzs::db::protocol::tdap::client::fielddefs::operator[] (int) const;
|
|
149
|
+
%rename(__getitem__) bzs::db::protocol::tdap::client::fielddefs::operator[] (const _TCHAR*) const;
|
|
150
|
+
|
|
151
|
+
// * bzs/db/protocol/tdap/client/fields.h *
|
|
152
|
+
%ignore bzs::db::protocol::tdap::client::fieldsBase::operator[];
|
|
153
|
+
// typemap and expand for get field value.
|
|
154
|
+
%typemap(argout) (short fieldsBase_getitem_index) {
|
|
155
|
+
bzs::db::protocol::tdap::client::field f = arg1->operator[]($1);
|
|
156
|
+
__int64 tmp_i64;
|
|
157
|
+
double tmp_d;
|
|
158
|
+
const _TCHAR* tmp_c_str;
|
|
159
|
+
switch (f.type()) {
|
|
160
|
+
case ft_integer:
|
|
161
|
+
case ft_uinteger:
|
|
162
|
+
case ft_autoinc:
|
|
163
|
+
case ft_autoIncUnsigned:
|
|
164
|
+
case ft_logical:
|
|
165
|
+
case ft_bit:
|
|
166
|
+
tmp_i64 = f.i64();
|
|
167
|
+
$result = SWIG_From_long_SS_long(static_cast< long long >(tmp_i64));
|
|
168
|
+
break;
|
|
169
|
+
case ft_float:
|
|
170
|
+
case ft_decimal:
|
|
171
|
+
case ft_money:
|
|
172
|
+
case ft_numeric:
|
|
173
|
+
case ft_bfloat:
|
|
174
|
+
case ft_numericsts:
|
|
175
|
+
case ft_numericsa:
|
|
176
|
+
case ft_currency:
|
|
177
|
+
tmp_d = f.d();
|
|
178
|
+
$result = SWIG_From_double(static_cast< double >(tmp_d));
|
|
179
|
+
break;
|
|
180
|
+
/*
|
|
181
|
+
case ft_string:
|
|
182
|
+
case ft_myvarbinary:
|
|
183
|
+
case ft_mywvarbinary:
|
|
184
|
+
case ft_myblob:
|
|
185
|
+
return f.getBin();
|
|
186
|
+
*/
|
|
187
|
+
default:
|
|
188
|
+
tmp_c_str = f.c_str();
|
|
189
|
+
$result = rb_enc_str_new(tmp_c_str, strlen(tmp_c_str), rb_enc_find_from_codepage(CP_UTF8));
|
|
190
|
+
}
|
|
137
191
|
}
|
|
192
|
+
%apply short fieldsBase_getitem_index { const _TCHAR* fieldsBase_getitem_index };
|
|
193
|
+
%extend bzs::db::protocol::tdap::client::fieldsBase {
|
|
194
|
+
void __getitem__(short fieldsBase_getitem_index) const {
|
|
195
|
+
}
|
|
196
|
+
void __getitem__(const _TCHAR* fieldsBase_getitem_index) const {
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
%clear _TCHAR* fieldsBase_getitem_index;
|
|
138
200
|
|
|
201
|
+
// * bzs/db/protocol/tdap/client/table.h *
|
|
202
|
+
// define setFVbin
|
|
203
|
+
%ignore bzs::db::protocol::tdap::client::table::setFV(short, const void *, uint_td);
|
|
204
|
+
%ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR*, const void *, uint_td);
|
|
205
|
+
%typemap(in, numinputs=0) (uint_td & table_setFVbin_size) (uint_td temp) {
|
|
206
|
+
$1 = &temp;
|
|
207
|
+
}
|
|
208
|
+
%typemap(argout) (uint_td & table_setFVbin_size) {
|
|
209
|
+
$result = rb_str_new((const char *)result, *$1);
|
|
210
|
+
}
|
|
211
|
+
%extend bzs::db::protocol::tdap::client::table {
|
|
212
|
+
void setFV(short index, const char * data, uint_td table_setFVbin_size) {
|
|
213
|
+
return self->setFV(index, (void const *) data, table_setFVbin_size);
|
|
214
|
+
}
|
|
215
|
+
void setFV(const _TCHAR *fieldName, const char * data, uint_td table_setFVbin_size) {
|
|
216
|
+
return self->setFV(fieldName, (void const *) data, table_setFVbin_size);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
// fix getFVbin
|
|
220
|
+
%typemap(in, numinputs=0) (uint_td & table_getFVbin_size) (uint_td temp) {
|
|
221
|
+
$1 = &temp;
|
|
222
|
+
}
|
|
223
|
+
%typemap(argout) (uint_td & table_getFVbin_size) {
|
|
224
|
+
$result = rb_str_new((const char *)result, *$1);
|
|
225
|
+
}
|
|
226
|
+
%extend bzs::db::protocol::tdap::client::table {
|
|
227
|
+
void* getFVbin(short index, uint_td& table_getFVbin_size)
|
|
228
|
+
{
|
|
229
|
+
return self->getFVbin(index, table_getFVbin_size);
|
|
230
|
+
}
|
|
231
|
+
void* getFVbin(const _TCHAR *fieldName, uint_td& table_getFVbin_size)
|
|
232
|
+
{
|
|
233
|
+
return self->getFVbin(fieldName, table_getFVbin_size);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
%ignore bzs::db::protocol::tdap::client::table::getFVbin(short, uint_td&);
|
|
237
|
+
%ignore bzs::db::protocol::tdap::client::table::getFVbin(const _TCHAR *, uint_td&);
|
|
238
|
+
|
|
239
|
+
// * bzs/db/protocol/tdap/client/memRecord.h *
|
|
240
|
+
%rename(__setitem__) bzs::db::protocol::tdap::client::field::setBin;
|
|
241
|
+
%extend bzs::db::protocol::tdap::client::writableRecord {
|
|
242
|
+
void __setitem__(short writableRecord_setitem_index, const _TCHAR* v) {
|
|
243
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
244
|
+
}
|
|
245
|
+
void __setitem__(const _TCHAR* writableRecord_setitem_index, const _TCHAR* v) const {
|
|
246
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
247
|
+
}
|
|
248
|
+
void __setitem__(short writableRecord_setitem_index, __int64 v) {
|
|
249
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
250
|
+
}
|
|
251
|
+
void __setitem__(const _TCHAR* writableRecord_setitem_index, __int64 v) const {
|
|
252
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
253
|
+
}
|
|
254
|
+
void __setitem__(short writableRecord_setitem_index, double v) {
|
|
255
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
256
|
+
}
|
|
257
|
+
void __setitem__(const _TCHAR* writableRecord_setitem_index, double v) const {
|
|
258
|
+
self->operator[](writableRecord_setitem_index) = v;
|
|
259
|
+
}
|
|
260
|
+
// binary
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// * bzs/db/protocol/tdap/client/recordset.h *
|
|
264
|
+
%rename(__getitem__) bzs::db::protocol::tdap::client::recordset::operator[];
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
/* ===============================================
|
|
268
|
+
add code to init section
|
|
269
|
+
=============================================== */
|
|
270
|
+
%init %{
|
|
271
|
+
bzs::db::protocol::tdap::client::nsdatabase::setCheckTablePtr(true);
|
|
272
|
+
#if HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
273
|
+
if (MYTICALLID_ORIGINAL == NULL)
|
|
274
|
+
{
|
|
275
|
+
MYTICALLID_ORIGINAL = bzs::db::protocol::tdap::client::getTrnsctdEntryPoint();
|
|
276
|
+
if (MYTICALLID_ORIGINAL)
|
|
277
|
+
bzs::db::protocol::tdap::client::setTrnsctdEntryPoint((BTRCALLID_PTR) MYTICALLID_WITHOUT_GVL);
|
|
278
|
+
else
|
|
279
|
+
bzs::db::protocol::tdap::client::setTrnsctdEntryPoint((BTRCALLID_PTR) NULL);
|
|
280
|
+
|
|
281
|
+
BTRVCALLID_ORIGINAL = bzs::db::protocol::tdap::client::getBtrvEntryPoint();
|
|
282
|
+
if (BTRVCALLID_ORIGINAL)
|
|
283
|
+
bzs::db::protocol::tdap::client::setBtrvEntryPoint((BTRCALLID_PTR) BTRVCALLID_WITHOUT_GVL);
|
|
284
|
+
else
|
|
285
|
+
bzs::db::protocol::tdap::client::setBtrvEntryPoint((BTRCALLID_PTR) NULL);
|
|
286
|
+
}
|
|
287
|
+
#endif // HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
288
|
+
%}
|
|
139
289
|
#endif // =============== For RUBY ===============
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#ifndef TRANSACTD_THREADBLOCKREGIONWRAPPER_H
|
|
2
|
+
#define TRANSACTD_THREADBLOCKREGIONWRAPPER_H
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2000-2014 BizStation Corp All rights reserved.
|
|
5
|
+
|
|
6
|
+
This program is free software; you can redistribute it and/or
|
|
7
|
+
modify it under the terms of the GNU General Public License
|
|
8
|
+
as published by the Free Software Foundation; either version 2
|
|
9
|
+
of the License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
|
+
02111-1307, USA.
|
|
20
|
+
================================================================= */
|
|
21
|
+
#undef TRANSACTD_RB_CALL_WITHOUT_GVL
|
|
22
|
+
|
|
23
|
+
#if HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
24
|
+
|
|
25
|
+
#include <ruby.h>
|
|
26
|
+
#undef stat
|
|
27
|
+
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
28
|
+
#include <boost/thread/thread.hpp>
|
|
29
|
+
#include <boost/thread/condition.hpp>
|
|
30
|
+
|
|
31
|
+
#ifdef HAVE_RB_THREAD_CALL_WITHOUT_GVL
|
|
32
|
+
#include <ruby/thread.h>
|
|
33
|
+
#define TRANSACTD_RB_CALL_WITHOUT_GVL( func, arg ) \
|
|
34
|
+
rb_thread_call_without_gvl((void *(*)(void *))func, &arg, RUBY_UBF_IO, NULL)
|
|
35
|
+
#else
|
|
36
|
+
// use rb_thread_blocking_region only if rb_thread_call_without_gvl is not defined.
|
|
37
|
+
#define TRANSACTD_RB_CALL_WITHOUT_GVL( func, arg ) \
|
|
38
|
+
rb_thread_blocking_region((rb_blocking_function_t*) func, &arg, RUBY_UBF_IO, NULL)
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
namespace bzs
|
|
42
|
+
{
|
|
43
|
+
namespace db
|
|
44
|
+
{
|
|
45
|
+
namespace protocol
|
|
46
|
+
{
|
|
47
|
+
namespace tdap
|
|
48
|
+
{
|
|
49
|
+
namespace client
|
|
50
|
+
{
|
|
51
|
+
|
|
52
|
+
struct BTRCALLIDArgs
|
|
53
|
+
{
|
|
54
|
+
ushort_td op;
|
|
55
|
+
void* pbk;
|
|
56
|
+
void* data;
|
|
57
|
+
uint_td* datalen;
|
|
58
|
+
void* keybuf;
|
|
59
|
+
keylen_td keylen;
|
|
60
|
+
char_td keyNum;
|
|
61
|
+
uchar_td* cid;
|
|
62
|
+
short_td result;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
}// namespace client
|
|
66
|
+
}// namespace tdap
|
|
67
|
+
}// namespace protocol
|
|
68
|
+
}// namespace db
|
|
69
|
+
}// namespace bzs
|
|
70
|
+
#endif //HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
71
|
+
#endif //not TRANSACTD_THREADBLOCKREGIONWRAPPER_H
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
3
|
+
|
|
4
|
+
This program is free software; you can redistribute it and/or
|
|
5
|
+
modify it under the terms of the GNU General Public License
|
|
6
|
+
as published by the Free Software Foundation; either version 2
|
|
7
|
+
of the License, or (at your option) any later version.
|
|
8
|
+
|
|
9
|
+
This program is distributed in the hope that it will be useful,
|
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
You should have received a copy of the GNU General Public License
|
|
15
|
+
along with this program; if not, write to the Free Software
|
|
16
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
|
+
02111-1307, USA.
|
|
18
|
+
=================================================================*/
|
|
19
|
+
/* ===============================================
|
|
20
|
+
Support call_without_gvl
|
|
21
|
+
=============================================== */
|
|
22
|
+
%{
|
|
23
|
+
#if HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
24
|
+
|
|
25
|
+
#include <build/swig/ruby/threadBlockRegionWrapper.h>
|
|
26
|
+
|
|
27
|
+
#ifdef HAVE_RB_THREAD_CALL_WITHOUT_GVL
|
|
28
|
+
#include <ruby/thread.h>
|
|
29
|
+
#define TRANSACTD_RB_CALL_WITHOUT_GVL( func, arg ) \
|
|
30
|
+
rb_thread_call_without_gvl((void *(*)(void *))func, &arg, RUBY_UBF_IO, NULL)
|
|
31
|
+
#else
|
|
32
|
+
// use rb_thread_blocking_region only if rb_thread_call_without_gvl is not defined.
|
|
33
|
+
#define TRANSACTD_RB_CALL_WITHOUT_GVL( func, arg ) \
|
|
34
|
+
rb_thread_blocking_region((rb_blocking_function_t*) func, &arg, RUBY_UBF_IO, NULL)
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
BTRCALLID_PTR MYTICALLID_ORIGINAL = NULL;
|
|
38
|
+
BTRCALLID_PTR BTRVCALLID_ORIGINAL = NULL;
|
|
39
|
+
|
|
40
|
+
void MYTICALLID_ArgumentWrapper(BTRCALLIDArgs* args)
|
|
41
|
+
{
|
|
42
|
+
args->result = MYTICALLID_ORIGINAL(args->op, args->pbk, args->data,
|
|
43
|
+
args->datalen, args->keybuf, args->keylen, args->keyNum, args->cid);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
short_td __STDCALL MYTICALLID_WITHOUT_GVL(ushort_td op, void* pbk, void* data,
|
|
47
|
+
uint_td* datalen, void* keybuf, keylen_td keylen, char_td keyNum, uchar_td* cid)
|
|
48
|
+
{
|
|
49
|
+
BTRCALLIDArgs args;
|
|
50
|
+
args.op = op;
|
|
51
|
+
args.pbk = pbk;
|
|
52
|
+
args.data = data;
|
|
53
|
+
args.datalen = datalen;
|
|
54
|
+
args.keybuf = keybuf;
|
|
55
|
+
args.keylen = keylen;
|
|
56
|
+
args.keyNum = keyNum;
|
|
57
|
+
args.cid = cid;
|
|
58
|
+
args.result = 0;
|
|
59
|
+
TRANSACTD_RB_CALL_WITHOUT_GVL(MYTICALLID_ArgumentWrapper, args);
|
|
60
|
+
return args.result;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
void BTRCALLID_ArgumentWrapper(BTRCALLIDArgs* args)
|
|
64
|
+
{
|
|
65
|
+
args->result = BTRVCALLID_ORIGINAL(args->op, args->pbk, args->data,
|
|
66
|
+
args->datalen, args->keybuf, args->keylen, args->keyNum, args->cid);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
short_td __STDCALL BTRVCALLID_WITHOUT_GVL(ushort_td op, void* pbk, void* data,
|
|
70
|
+
uint_td* datalen, void* keybuf, keylen_td keylen, char_td keyNum, uchar_td* cid)
|
|
71
|
+
{
|
|
72
|
+
BTRCALLIDArgs args;
|
|
73
|
+
args.op = op;
|
|
74
|
+
args.pbk = pbk;
|
|
75
|
+
args.data = data;
|
|
76
|
+
args.datalen = datalen;
|
|
77
|
+
args.keybuf = keybuf;
|
|
78
|
+
args.keylen = keylen;
|
|
79
|
+
args.keyNum = keyNum;
|
|
80
|
+
args.cid = cid;
|
|
81
|
+
args.result = 0;
|
|
82
|
+
TRANSACTD_RB_CALL_WITHOUT_GVL(BTRCALLID_ArgumentWrapper, args);
|
|
83
|
+
return args.result;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#endif // HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION
|
|
87
|
+
%}
|