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.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +46 -67
  3. data/BUILD_WIN-JA +106 -63
  4. data/CMakeLists.txt +40 -15
  5. data/README +219 -75
  6. data/README-JA +207 -76
  7. data/README_ORMSRCGEN +118 -0
  8. data/README_ORMSRCGEN-JA +115 -0
  9. data/bin/common/tdclc_32_2_0.dll +0 -0
  10. data/bin/common/tdclc_64_2_0.dll +0 -0
  11. data/build/common/check_for_link_iconv.cmake +18 -14
  12. data/build/common/create_symlink.cmake.in +25 -0
  13. data/build/common/get_boost_libs.cmake +23 -23
  14. data/build/common/options.cmake +0 -66
  15. data/build/common/smart_install.cmake +3 -3
  16. data/build/common/transactd.rc.in +15 -5
  17. data/build/common/transactd_cl_common.cmake +37 -18
  18. data/build/common/transactd_cl_output.cmake +55 -13
  19. data/build/common/transactd_common.cmake +108 -31
  20. data/build/swig/php/generate.cmake.in +15 -17
  21. data/build/swig/php/generate.cmd.in +15 -9
  22. data/build/swig/php/php.swg +124 -82
  23. data/build/swig/php/transactd.no_yield.php +4494 -0
  24. data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
  25. data/build/swig/php/transactd.no_yield.php.patch +685 -0
  26. data/build/swig/php/transactd.yield.php +4461 -0
  27. data/build/swig/php/transactd.yield.php.git.patch +652 -0
  28. data/build/swig/php/transactd.yield.php.patch +652 -0
  29. data/build/swig/referencecounter.h +79 -0
  30. data/build/swig/ruby/ruby.swg +226 -76
  31. data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
  32. data/build/swig/ruby/without_gvl.swg +87 -0
  33. data/build/swig/tdcl.i +659 -170
  34. data/build/swig/validatablepointer.h +91 -0
  35. data/build/tdclc/CMakeLists.txt +49 -34
  36. data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
  37. data/build/tdclc/tdclc.rc +0 -0
  38. data/build/tdclcpp/CMakeLists.txt +84 -20
  39. data/build/tdclcpp/tdclcpp.rc +0 -0
  40. data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
  41. data/build/tdclrb/CMakeLists.txt +84 -66
  42. data/build/tdclrb/bldgem/extconf.rb +28 -3
  43. data/build/tdclrb/gem/helper.rb +11 -1
  44. data/build/tdclrb/gem_output.cmake +20 -16
  45. data/index_ja.html +15 -0
  46. data/source/bzs/db/IBlobBuffer.h +15 -17
  47. data/source/bzs/db/blobBuffer.h +186 -140
  48. data/source/bzs/db/blobStructs.h +37 -37
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
  50. data/source/bzs/db/engine/mysql/bookmark.h +150 -147
  51. data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
  52. data/source/bzs/db/engine/mysql/database.h +608 -370
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
  54. data/source/bzs/db/engine/mysql/dbManager.h +115 -104
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
  56. data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
  63. data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
  64. data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
  68. data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
  69. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
  70. data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
  71. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
  72. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
  73. data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
  74. data/source/bzs/db/protocol/tdap/client/client.h +361 -320
  75. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
  76. data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
  77. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
  78. data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
  79. data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
  80. data/source/bzs/db/protocol/tdap/client/database.h +141 -118
  81. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
  82. data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
  83. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
  84. data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
  85. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
  86. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
  87. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
  88. data/source/bzs/db/protocol/tdap/client/export.h +35 -0
  89. data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
  90. data/source/bzs/db/protocol/tdap/client/field.h +393 -0
  91. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
  92. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
  93. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
  94. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
  95. data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
  96. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
  97. data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
  98. data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
  99. data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
  100. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
  101. data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
  102. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
  103. data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
  104. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
  105. data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
  106. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
  107. data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
  108. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
  109. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
  110. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
  111. data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
  112. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
  113. data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
  114. data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
  115. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
  116. data/source/bzs/db/protocol/tdap/client/request.h +227 -170
  117. data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
  118. data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
  119. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
  120. data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
  121. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
  122. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
  123. data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
  124. data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
  125. data/source/bzs/db/protocol/tdap/client/table.h +413 -87
  126. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
  127. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
  128. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
  129. data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
  130. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
  131. data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
  132. data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
  133. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
  134. data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
  135. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
  136. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
  137. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
  138. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
  139. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
  140. data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
  141. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
  142. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
  143. data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
  144. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
  145. data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
  146. data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
  147. data/source/bzs/db/transactd/appBuilderImple.h +21 -20
  148. data/source/bzs/db/transactd/appModule.cpp +350 -98
  149. data/source/bzs/db/transactd/appModule.h +31 -37
  150. data/source/bzs/db/transactd/connManager.cpp +138 -135
  151. data/source/bzs/db/transactd/connManager.h +28 -21
  152. data/source/bzs/db/transactd/connectionRecord.h +39 -39
  153. data/source/bzs/db/transactd/transactd.cpp +217 -203
  154. data/source/bzs/env/boost_bcb_link.h +131 -0
  155. data/source/bzs/env/compiler.h +136 -79
  156. data/source/bzs/env/crosscompile.cpp +57 -57
  157. data/source/bzs/env/crosscompile.h +130 -115
  158. data/source/bzs/env/fileopen.h +7 -8
  159. data/source/bzs/env/mbcswchrLinux.cpp +4 -9
  160. data/source/bzs/env/mbcswchrLinux.h +37 -34
  161. data/source/bzs/env/tcharMinGW.h +59 -0
  162. data/source/bzs/env/tstring.h +90 -95
  163. data/source/bzs/example/changeSchema.cpp +22 -23
  164. data/source/bzs/example/changeSchema_c.cpp +22 -24
  165. data/source/bzs/example/connection_pool_c.cpp +49 -104
  166. data/source/bzs/example/createDatabase.cpp +40 -47
  167. data/source/bzs/example/createDatabase_c.cpp +38 -43
  168. data/source/bzs/example/deleteRecords.cpp +10 -15
  169. data/source/bzs/example/deleteRecords_c.cpp +10 -14
  170. data/source/bzs/example/dropDatabase.cpp +3 -9
  171. data/source/bzs/example/dropDatabase_c.cpp +5 -6
  172. data/source/bzs/example/insertRecords.cpp +37 -29
  173. data/source/bzs/example/insertRecords_c.cpp +19 -25
  174. data/source/bzs/example/ormap_c.cpp +621 -0
  175. data/source/bzs/example/queryData.cpp +371 -0
  176. data/source/bzs/example/queryData.h +16 -0
  177. data/source/bzs/example/query_c.cpp +109 -0
  178. data/source/bzs/example/readRecords.cpp +27 -27
  179. data/source/bzs/example/readRecords_c.cpp +25 -23
  180. data/source/bzs/example/updateRecords.cpp +16 -21
  181. data/source/bzs/example/updateRecords_c.cpp +8 -12
  182. data/source/bzs/example/update_with_transaction.cpp +21 -24
  183. data/source/bzs/example/update_with_transaction_c.cpp +12 -15
  184. data/source/bzs/example/useORMRecord.cpp +177 -0
  185. data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
  186. data/source/bzs/netsvc/client/tcpClient.h +541 -489
  187. data/source/bzs/netsvc/server/IAppModule.h +119 -32
  188. data/source/bzs/netsvc/server/iserver.h +21 -23
  189. data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
  190. data/source/bzs/netsvc/server/serverCpt.h +41 -43
  191. data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
  192. data/source/bzs/netsvc/server/serverPipe.h +44 -45
  193. data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
  194. data/source/bzs/netsvc/server/serverTpool.h +38 -43
  195. data/source/bzs/rtl/benchmark.cpp +91 -31
  196. data/source/bzs/rtl/benchmark.h +76 -22
  197. data/source/bzs/rtl/datetime.cpp +231 -233
  198. data/source/bzs/rtl/datetime.h +16 -16
  199. data/source/bzs/rtl/debuglog.cpp +48 -51
  200. data/source/bzs/rtl/debuglog.h +55 -44
  201. data/source/bzs/rtl/exception.h +55 -48
  202. data/source/bzs/rtl/stl_uty.cpp +27 -28
  203. data/source/bzs/rtl/stl_uty.h +28 -29
  204. data/source/bzs/rtl/stringBuffers.cpp +8 -6
  205. data/source/bzs/rtl/stringBuffers.h +16 -9
  206. data/source/bzs/rtl/strtrim.cpp +90 -91
  207. data/source/bzs/rtl/strtrim.h +14 -16
  208. data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
  209. data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
  210. data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
  211. data/source/bzs/test/tdclphp/bench.php +357 -0
  212. data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
  213. data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
  214. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
  215. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
  216. data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
  217. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
  218. data/source/bzs/test/tdclrb/prepare.rb +15 -12
  219. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
  220. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
  221. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
  222. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
  223. data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
  224. data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
  225. data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
  226. data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
  227. data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
  228. data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
  229. data/source/bzs/test/transactdBench/workerBase.h +88 -0
  230. data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
  231. data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
  232. data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
  233. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
  234. data/source/global/ormsrcgen/confParam.h +80 -0
  235. data/source/global/ormsrcgen/fieldName.cpp +77 -0
  236. data/source/global/ormsrcgen/fieldName.h +43 -0
  237. data/source/global/ormsrcgen/main.cpp +196 -0
  238. data/source/global/ormsrcgen/srcgen.cpp +763 -0
  239. data/source/global/ormsrcgen/srcgen.h +72 -0
  240. data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
  241. data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
  242. data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
  243. data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
  244. data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
  245. data/source/global/ormsrcgen/template/template.cnf +38 -0
  246. data/source/global/querystmts/querystmts.cpp +237 -0
  247. data/source/global/tdclatl/ConnectParams.cpp +77 -0
  248. data/source/global/tdclatl/ConnectParams.h +70 -0
  249. data/source/global/tdclatl/Database.cpp +132 -128
  250. data/source/global/tdclatl/Database.h +60 -49
  251. data/source/global/tdclatl/DbDef.cpp +68 -64
  252. data/source/global/tdclatl/DbDef.h +36 -36
  253. data/source/global/tdclatl/Field.cpp +12 -17
  254. data/source/global/tdclatl/Field.h +15 -12
  255. data/source/global/tdclatl/FieldDef.cpp +75 -36
  256. data/source/global/tdclatl/FieldDef.h +38 -19
  257. data/source/global/tdclatl/FieldDefs.cpp +74 -0
  258. data/source/global/tdclatl/FieldDefs.h +56 -0
  259. data/source/global/tdclatl/FieldNames.cpp +99 -0
  260. data/source/global/tdclatl/FieldNames.h +66 -0
  261. data/source/global/tdclatl/Flags.cpp +75 -37
  262. data/source/global/tdclatl/Flags.h +13 -12
  263. data/source/global/tdclatl/GroupQuery.cpp +119 -0
  264. data/source/global/tdclatl/GroupQuery.h +65 -0
  265. data/source/global/tdclatl/KeyDef.cpp +15 -14
  266. data/source/global/tdclatl/KeyDef.h +20 -17
  267. data/source/global/tdclatl/KeySegment.cpp +13 -12
  268. data/source/global/tdclatl/PooledDbManager.cpp +223 -0
  269. data/source/global/tdclatl/PooledDbManager.h +76 -0
  270. data/source/global/tdclatl/QueryBase.cpp +206 -127
  271. data/source/global/tdclatl/QueryBase.h +55 -59
  272. data/source/global/tdclatl/Record.cpp +214 -0
  273. data/source/global/tdclatl/Record.h +96 -0
  274. data/source/global/tdclatl/Recordset.cpp +278 -0
  275. data/source/global/tdclatl/Recordset.h +83 -0
  276. data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
  277. data/source/global/tdclatl/RecordsetQuery.h +126 -0
  278. data/source/global/tdclatl/Table.cpp +57 -60
  279. data/source/global/tdclatl/Table.h +32 -29
  280. data/source/global/tdclatl/TableDef.cpp +63 -62
  281. data/source/global/tdclatl/TableDef.h +20 -22
  282. data/source/global/tdclatl/TdVersion.cpp +3 -3
  283. data/source/global/tdclatl/TdVersion.h +15 -11
  284. data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
  285. data/source/global/tdclatl/activeTable.cpp +355 -0
  286. data/source/global/tdclatl/activeTable.h +79 -0
  287. data/source/global/tdclatl/dllmain.cpp +4 -3
  288. data/source/global/tdclatl/dllmain.h +7 -6
  289. data/source/global/tdclatl/keySegment.h +22 -18
  290. data/source/global/tdclatl/resource.h +0 -0
  291. data/source/global/tdclatl/stdafx.h +6 -4
  292. data/source/global/tdclatl/targetver.h +0 -1
  293. data/source/global/tdclatl/tdclatl.cpp +10 -5
  294. data/source/global/tdclatl/tdclatl.idl +530 -14
  295. data/source/linux/charsetConvert.h +78 -79
  296. data/source/linux/linuxTypes.h +9 -12
  297. data/source/linux/tchar.h +168 -166
  298. data/transactd.gemspec +24 -16
  299. metadata +98 -12
  300. data/bin/common/tdclc_32_1_2.dll +0 -0
  301. data/bin/common/tdclc_64_1_2.dll +0 -0
  302. data/build/tdclc/tdclc_32.cbproj +0 -173
  303. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
  304. data/build/tdclrb/GEM_VERSION +0 -3
  305. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
  306. data/source/bzs/example/useORM.cpp +0 -585
@@ -33,7 +33,7 @@ ruby_exe_path = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_ins
33
33
  # use prebuilt binary
34
34
  #
35
35
  if has_binary(transactd_gem_root)
36
- make_makefile_prebuilt_win32(ruby_bin_path, transactd_gem_root) if RUBY_PLATFORM =~ /mswin/
36
+ make_makefile_prebuilt_win32(ruby_bin_path, transactd_gem_root) if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
37
37
  exit
38
38
  end
39
39
 
@@ -54,6 +54,8 @@ generator = arg_config('--generator', '').gsub(/"\n/, '')
54
54
  ruby_include_dirs = arg_config('--ruby_include_dirs', '').gsub(/"\n/, '')
55
55
  ruby_library_path = arg_config('--ruby_library_path', '').gsub(/"\n/, '')
56
56
  install_prefix = arg_config('--install_prefix', '').gsub(/"\n/, '')
57
+ build_type = arg_config('--build_type', '').gsub(/"\n/, '')
58
+ no_rb_tbr = arg_config('--without_rb_thread_blocking_region', '').gsub(/"\n/, '').downcase
57
59
 
58
60
  # boost
59
61
  if boost != '' && boost !=~ /^\-DBOOST_ROOT/
@@ -81,7 +83,9 @@ end
81
83
 
82
84
  # ruby_library_path
83
85
  if ruby_library_path != '' && ruby_library_path !=~ /^\-DRUBY_SWIG_LIBRARY_PATH/
84
- ruby_library_path = '-DTRANSACTD_RUBY_LIBRARY_PATH="' + to_slash_path(ruby_library_path) + '"'
86
+ lib_path = to_slash_path(ruby_library_path)
87
+ $LDFLAGS = $LDFLAGS + ' -libpath:' + File.dirname(lib_path)
88
+ ruby_library_path = '-DTRANSACTD_RUBY_LIBRARY_PATH="' + lib_path + '"'
85
89
  end
86
90
 
87
91
  # install_prefix
@@ -89,6 +93,15 @@ if install_prefix != '' && install_prefix !=~ /^\-DCMAKE_INSTALL_PREFIX/
89
93
  install_prefix = '-DTRANSACTD_CLIENTS_PREFIX="' + to_slash_path(install_prefix) + '"'
90
94
  end
91
95
 
96
+ # build_type
97
+ if build_type !=~ /^\-DCMAKE_BUILD_TYPE/
98
+ if build_type != ''
99
+ build_type = '-DCMAKE_BUILD_TYPE=' + build_type
100
+ else
101
+ build_type = '-DCMAKE_BUILD_TYPE=Release'
102
+ end
103
+ end
104
+
92
105
  # ruby executable path
93
106
  ruby_executable = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
94
107
  ruby_executable = '-DTRANSACTD_RUBY_EXECUTABLE_PATH="' + to_slash_path(ruby_executable) + '"'
@@ -96,10 +109,22 @@ ruby_executable = '-DTRANSACTD_RUBY_EXECUTABLE_PATH="' + to_slash_path(ruby_exec
96
109
  # output dir
97
110
  gem_root = '-DTRANSACTD_RUBY_GEM_ROOT_PATH="' + to_slash_path(transactd_gem_root) + '"'
98
111
 
112
+ # rb_thread_blocking_region or rb_thread_call_without_gvl
113
+ use_TCWOG = have_func('rb_thread_call_without_gvl', 'ruby/thread.h')
114
+ use_TBR = (! use_TCWOG) && have_func('rb_thread_blocking_region')
115
+ if no_rb_tbr != '' && no_rb_tbr != 'off'
116
+ use_TCWOG = false
117
+ use_TBR = false
118
+ end
119
+ rb_tbr = ' -DTRANSACTD_HAVE_RB_THREAD_CALL_WITHOUT_GVL=' +
120
+ (use_TCWOG ? 'ON' : 'OFF') +
121
+ ' -DTRANSACTD_HAVE_RB_THREAD_BLOCKING_REGION=' +
122
+ (use_TBR ? 'ON' : 'OFF')
123
+
99
124
  # cmake
100
125
  cmake_cmd = ['cmake', to_native_path(transactd_gem_root_relative), '-DTRANSACTD_RUBY_GEM=ON',
101
126
  generator, boost, ruby_executable, ruby_library_path, ruby_include_dirs,
102
- install_prefix, gem_root, '>> cmake_generate.log'].join(' ')
127
+ install_prefix, gem_root, build_type, rb_tbr, '>> cmake_generate.log'].join(' ')
103
128
  begin
104
129
  f = open('cmake_generate.log', 'w')
105
130
  f.puts cmake_cmd
@@ -53,7 +53,7 @@ def get_common_binary_files(transactd_gem_root)
53
53
  windows_bitness = get_windows_bitness()
54
54
  ruby_bitness = 32 if windows_bitness == 32
55
55
  bin_files = Dir.glob(File.join(transactd_gem_root, 'bin/common/tdclc_' + ruby_bitness.to_s + '_*.dll'))
56
- bin_files += Dir.glob(File.join(transactd_gem_root, 'bin/common/tdclcpp_*_' + ruby_bitness.to_s + 'm_*.dll'))
56
+ bin_files += Dir.glob(File.join(transactd_gem_root, 'bin/common/tdclcpp_*_' + ruby_bitness.to_s + 'mr_*.dll'))
57
57
  sysdir = get_windows_sysdir()
58
58
  bin_files = bin_files.map{ |i| '"' + to_native_path(i) + '" "' + sysdir + '"' }
59
59
  return bin_files
@@ -110,4 +110,14 @@ EOS
110
110
  mkfile.close
111
111
  mkfile_dummy.close
112
112
  end
113
+ if RUBY_PLATFORM =~ /mingw/
114
+ begin
115
+ mkfile = open('nmake.cmd', 'r')
116
+ mkfile2 = open('make.cmd', 'w')
117
+ mkfile2.puts mkfile.read
118
+ ensure
119
+ mkfile.close
120
+ mkfile2.close
121
+ end
122
+ end
113
123
  end
@@ -16,28 +16,32 @@
16
16
  # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  # 02111-1307, USA.
18
18
  ##=================================================================
19
+ include(../common/system.cmake)
20
+ include(../common/smart_install.cmake)
19
21
  # ==========================================================
20
22
  # set install drectory
21
23
  # ==========================================================
22
24
  if(NOT COMMAND tdcl_set_output)
23
25
  macro(tdcl_set_output TRANSACTD_BINARY_ROOT prefix)
24
- ## install to gem/common
25
- install(TARGETS ${this_target}
26
- LIBRARY DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
27
- RUNTIME DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
28
- ARCHIVE DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
29
- )
30
- ## install to system dir (copy file if greater)
31
- if(WIN32)
32
- get_target_property(tmp_var "${this_target}" LOCATION)
33
- get_filename_component(tmp_var "${tmp_var}" NAME)
34
- file(TO_CMAKE_PATH "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common/${tmp_var}" tmp_var)
35
- bz_smart_install(SOURCES "${tmp_var}" TO_WIN_SYSTEMDIR)
36
- else()
37
- if("${prefix}" STREQUAL "")
38
- install(TARGETS ${this_target} LIBRARY DESTINATION /usr/lib)
26
+ ## install tdclcppmr
27
+ if((NOT WIN32) OR MSVC)
28
+ install(TARGETS tdclcppmr
29
+ LIBRARY DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
30
+ RUNTIME DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
31
+ ARCHIVE DESTINATION "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common"
32
+ )
33
+ ## install to system dir (copy file if greater)
34
+ if(WIN32)
35
+ get_target_property(tmp_var "tdclcppmr" LOCATION)
36
+ get_filename_component(tmp_var "${tmp_var}" NAME)
37
+ file(TO_CMAKE_PATH "${TRANSACTD_RUBY_GEM_ROOT_PATH}/bin/common/${tmp_var}" tmp_var)
38
+ bz_smart_install(SOURCES "${tmp_var}" TO_WIN_SYSTEMDIR)
39
39
  else()
40
- install(TARGETS ${this_target} LIBRARY DESTINATION "${prefix}")
40
+ if("${prefix}" STREQUAL "")
41
+ install(TARGETS tdclcppmr LIBRARY DESTINATION /usr/lib)
42
+ else()
43
+ install(TARGETS tdclcppmr LIBRARY DESTINATION "${prefix}")
44
+ endif()
41
45
  endif()
42
46
  endif()
43
47
  endmacro()
data/index_ja.html ADDED
@@ -0,0 +1,15 @@
1
+ <html>
2
+ <head>
3
+ <title>Redirect to Transactd SDK Document (JA)</title>
4
+ <meta http-equiv="REFRESH" content="0;url=http://www.bizstation.jp/ja/transactd/client/sdk/doc/index.html">
5
+ </head>
6
+ <body>
7
+
8
+ <p class="h1">
9
+ Redirect to Transactd SDK Document ...
10
+ </p>
11
+ <p>
12
+ Redirecting to <a href="http://www.bizstation.jp/ja/transactd/client/sdk/doc/index.html">Transactd SDK Document (JA)</a>
13
+ </p>
14
+ </body>
15
+ </html>
@@ -14,17 +14,14 @@
14
14
  GNU General Public License for more details.
15
15
 
16
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
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
19
  02111-1307, USA.
20
20
  =================================================================*/
21
21
  #include <boost/asio/buffer.hpp>
22
22
  #include <vector>
23
23
  #include "blobStructs.h"
24
24
 
25
-
26
-
27
-
28
25
  namespace bzs
29
26
  {
30
27
  namespace db
@@ -34,18 +31,19 @@ class IblobBuffer
34
31
  {
35
32
 
36
33
  public:
37
- virtual ~IblobBuffer(){};
38
- virtual void clear()=0;
39
- virtual void addBlob(unsigned int bloblen, unsigned short fieldNum, const unsigned char* dataPtr)=0;
40
- virtual void setFieldCount(unsigned int v)=0;
41
- virtual unsigned int fieldCount()=0;
42
- virtual unsigned int makeMultiBuffer(std::vector<boost::asio::const_buffer>& mbuffer)=0;
43
- virtual unsigned int writeBuffer(unsigned char* buffer, unsigned int maxsize, int& stat)=0;
44
-
45
-
34
+ virtual ~IblobBuffer(){};
35
+ virtual void clear() = 0;
36
+ virtual void addBlob(unsigned int bloblen, unsigned short fieldNum,
37
+ const unsigned char* dataPtr) = 0;
38
+ virtual void setFieldCount(unsigned int v) = 0;
39
+ virtual unsigned int fieldCount() = 0;
40
+ virtual unsigned int
41
+ makeMultiBuffer(std::vector<boost::asio::const_buffer>& mbuffer) = 0;
42
+ virtual unsigned int writeBuffer(unsigned char* buffer,
43
+ unsigned int maxsize, short& stat) = 0;
46
44
  };
47
45
 
48
- }//namespace db
49
- }//namespace bzs
46
+ } // namespace db
47
+ } // namespace bzs
50
48
 
51
- #endif //BZS_DB_IBLOBBUFFER_H
49
+ #endif // BZS_DB_IBLOBBUFFER_H
@@ -14,8 +14,8 @@
14
14
  GNU General Public License for more details.
15
15
 
16
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
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
19
  02111-1307, USA.
20
20
  =================================================================*/
21
21
  #include <boost/noncopyable.hpp>
@@ -23,155 +23,201 @@
23
23
  #include <assert.h>
24
24
  #include <boost/shared_array.hpp>
25
25
 
26
- #define FILE_MAP_SIZE 3145728-1024//3M
26
+ extern unsigned int g_pipeCommSharememSize;
27
+ #define FILE_MAP_SIZE (g_pipeCommSharememSize - 1024)
27
28
 
28
29
  namespace bzs
29
30
  {
30
31
  namespace db
31
32
  {
32
33
 
33
-
34
- static const char nullbyte[2] = {0x00};
34
+ static const char nullbyte[2] = { 0x00 };
35
35
 
36
36
  /** holds blob ptr and make boost multiplebuffer
37
37
  */
38
38
  class blobBuffer : public IblobBuffer, private boost::noncopyable
39
39
  {
40
- std::vector<blob> m_blobs;
41
- blobHeader m_bh;
42
- std::vector<boost::shared_array<unsigned char> > m_strings;
40
+ std::vector<blob> m_blobs;
41
+ blobHeader m_bh;
42
+ std::vector<unsigned char> m_data;
43
+ unsigned int m_datasize;
44
+ unsigned int m_blobCount;
45
+
43
46
  public:
44
- blobBuffer(){m_bh.fieldCount = 0;}
45
- const blobHeader* getHeader()const {return &m_bh;};
46
-
47
- void clear()
48
- {
49
- m_blobs.clear();
50
- m_bh.fieldCount = 0;
51
- m_bh.rows=0;
52
- m_strings.clear();
53
- }
54
-
55
- size_t blobs(){return m_blobs.size();};
56
- /**
57
- * @param dataPtr blob data body pointer in result record image.
58
- */
59
- void addBlob(unsigned int bloblen, unsigned short fieldNum, const unsigned char* dataPtr)
60
- {
61
- unsigned char* p = new unsigned char[bloblen];
62
- m_strings.push_back(boost::shared_array<unsigned char>(p));
63
- memcpy(p, dataPtr, bloblen);
64
- m_blobs.push_back(blob(bloblen, fieldNum, p));
65
-
66
- }
67
-
68
- void addBlob(const blob& b)
69
- {
70
- m_blobs.push_back(b);
71
- }
72
-
73
- void setFieldCount(unsigned int v){m_bh.fieldCount=v;};
74
- unsigned int fieldCount(){return m_bh.fieldCount;}
75
-
76
-
77
- /** Make boost::asio::multibuffer<const_buffer> from added blob.
78
- * and write offset to record image of blob fields.
79
- * @image pointer of normal result image.
80
- * @size bytes of normal result image length.
81
- * @return
82
- * result buffer image
83
- * ---------------------------
84
- * n record image
85
- * 2 fieldNum
86
- * 4 dataLength
87
- * n(dataLength) data
88
- * 2 null terminate
89
- * 2 fieldNum ...
90
- * ----------------------------
91
- */
92
-
93
- unsigned int makeMultiBuffer(std::vector<boost::asio::const_buffer>& mbuffer)
94
- {
95
- unsigned int size = 0;
96
- if (m_bh.fieldCount)
97
- {
98
- //write buffer header
99
- m_bh.rows = (unsigned short)(m_blobs.size()/m_bh.fieldCount);
100
- mbuffer.push_back(boost::asio::buffer((char*)&m_bh, sizeof(blobHeader)));
101
- size += sizeof(blobHeader);
102
-
103
- for (size_t i=0;i<m_blobs.size();i++)
104
- {
105
- const blob& b = m_blobs[i];
106
- //add field desc
107
- mbuffer.push_back(boost::asio::buffer((char*)&b.bf, sizeof(blobField)));
108
- size += sizeof(blobField);
109
-
110
- //add field body
111
- mbuffer.push_back(boost::asio::buffer(b.ptr, b.bf.size));
112
-
113
- //add null terminate
114
- mbuffer.push_back(boost::asio::buffer(nullbyte, 2));
115
-
116
- //update record image pointer to offset from record start
117
- size += b.bf.size + 2;
118
- }
119
- }
120
- return size;
121
- }
122
-
123
- /** Copy to single buffer.
124
- * this is use for pipe server only.
125
- * @param stat [out] return additional status. ex. STATUS_BUFFERTOOSMALL
126
- * @return length of written by this function.
127
- * result buffer image
128
- * ---------------------------
129
- * n record image
130
- * 2 fieldNum
131
- * 4 dataLength
132
- * n(dataLength) data
133
- * 2 null terminate
134
- * 2 fieldNum ...
135
- * ----------------------------
136
- */
137
- unsigned int writeBuffer(unsigned char* buffer, unsigned int maxsize, int& stat)
138
- {
139
- stat = 0;
140
- unsigned char* p = buffer;// + offset ;
141
- if (m_bh.fieldCount)
142
- {
143
- //write buffer header
144
- m_bh.rows = (unsigned short)(m_blobs.size()/m_bh.fieldCount);
145
- memcpy(p, &m_bh, sizeof(blobHeader));
146
- p += sizeof(blobHeader);
147
-
148
- for (size_t i=0;i<m_blobs.size();i++)
149
- {
150
- const blob& b = m_blobs[i];
151
- if (maxsize > (p - buffer) + b.bf.size + 2)
152
- {
153
- //write field desc
154
- memcpy(p, &b.bf, sizeof(blobField));
155
- p += sizeof(blobField);
156
- //write field body
157
- memcpy(p, b.ptr, b.bf.size);
158
-
159
- //write null terminate
160
- p += b.bf.size;
161
- memcpy(p, nullbyte, 2);
162
- p += 2;
163
- }else
164
- {
165
- stat = STATUS_BUFFERTOOSMALL;
166
- break;
167
- }
168
- }
169
- }
170
- return(unsigned int)(p - buffer);
171
- }
47
+ blobBuffer() { m_bh.fieldCount = 0; }
48
+ const blobHeader* getHeader() const { return &m_bh; };
49
+
50
+ void clear()
51
+ {
52
+ m_blobs.clear();
53
+ m_bh.fieldCount = 0;
54
+ m_bh.rows = 0;
55
+ m_data.clear();
56
+ m_datasize = 0;
57
+ m_blobCount = 0;
58
+ }
59
+
60
+ size_t blobs() { return m_blobCount; };
61
+ /**
62
+ * @param dataPtr blob data body pointer in result record image.
63
+ */
64
+ void addBlob(unsigned int bloblen, unsigned short fieldNum,
65
+ const unsigned char* dataPtr)
66
+ {
67
+ if (m_data.size() < m_datasize + bloblen + sizeof(blobField) + 2)
68
+ m_data.resize(m_datasize + bloblen + 1024);
69
+
70
+ unsigned char* p = &m_data[m_datasize];
71
+
72
+ blob b(bloblen, fieldNum, p + sizeof(blobField));
73
+ // m_blobs.push_back(b);
74
+
75
+ // write field desc
76
+ memcpy(p, &b.bf, sizeof(blobField));
77
+ p += sizeof(blobField);
78
+
79
+ // write field body
80
+ memcpy(p, dataPtr, b.bf.size);
81
+
82
+ // write null terminate
83
+ p += b.bf.size;
84
+ memcpy(p, nullbyte, 2);
85
+ p += 2;
86
+ m_datasize = (unsigned int)(p - &m_data[0]);
87
+ ++m_blobCount;
88
+ }
89
+
90
+ void addBlob(const blob& b)
91
+ {
92
+ m_blobs.push_back(b);
93
+ ++m_blobCount;
94
+ }
95
+
96
+ void setFieldCount(unsigned int v) { m_bh.fieldCount = v; };
97
+ unsigned int fieldCount() { return m_bh.fieldCount; }
98
+
99
+ /** Make boost::asio::multibuffer<const_buffer> from added blob.
100
+ * and write offset to record image of blob fields.
101
+ * @image pointer of normal result image.
102
+ * @size bytes of normal result image length.
103
+ * @return
104
+ * result buffer image
105
+ * ---------------------------
106
+ * n record image
107
+ * 2 fieldNum
108
+ * 4 dataLength
109
+ * n(dataLength) data
110
+ * 2 null terminate
111
+ * 2 fieldNum ...
112
+ * ----------------------------
113
+ */
114
+
115
+ unsigned int
116
+ makeMultiBuffer(std::vector<boost::asio::const_buffer>& mbuffer)
117
+ {
118
+ unsigned int size = 0;
119
+ if (m_bh.fieldCount)
120
+ {
121
+ // write buffer header
122
+ m_bh.rows = (unsigned short)(m_blobCount / m_bh.fieldCount);
123
+ mbuffer.push_back(
124
+ boost::asio::buffer((char*)&m_bh, sizeof(blobHeader)));
125
+ size += sizeof(blobHeader);
126
+ if (m_blobs.size() == 0)
127
+ {
128
+ mbuffer.push_back(
129
+ boost::asio::buffer((char*)&m_data[0], m_datasize));
130
+ size += m_datasize;
131
+ }
132
+ else
133
+ {
134
+ for (size_t i = 0; i < m_blobs.size(); i++)
135
+ {
136
+ const blob& b = m_blobs[i];
137
+ // add field desc
138
+ mbuffer.push_back(
139
+ boost::asio::buffer((char*)&b.bf, sizeof(blobField)));
140
+ size += sizeof(blobField);
141
+
142
+ // add field body
143
+ mbuffer.push_back(boost::asio::buffer(b.ptr, b.bf.size));
144
+
145
+ // add null terminate
146
+ mbuffer.push_back(boost::asio::buffer(nullbyte, 2));
147
+
148
+ // update record image pointer to offset from record start
149
+ size += b.bf.size + 2;
150
+ }
151
+ }
152
+ }
153
+ return size;
154
+ }
155
+
156
+ /** Copy to single buffer.
157
+ * this is use for pipe server only.
158
+ * @param stat [out] return additional status. ex. STATUS_BUFFERTOOSMALL
159
+ * @return length of written by this function.
160
+ * result buffer image
161
+ * ---------------------------
162
+ * n record image
163
+ * 2 fieldNum
164
+ * 4 dataLength
165
+ * n(dataLength) data
166
+ * 2 null terminate
167
+ * 2 fieldNum ...
168
+ * ----------------------------
169
+ */
170
+ unsigned int writeBuffer(unsigned char* buffer, unsigned int maxsize,
171
+ short& stat)
172
+ {
173
+ stat = 0;
174
+ unsigned char* p = buffer;
175
+ if (m_bh.fieldCount)
176
+ {
177
+ // write buffer header
178
+ m_bh.rows = (unsigned short)(m_blobCount / m_bh.fieldCount);
179
+ memcpy(p, &m_bh, sizeof(blobHeader));
180
+ p += sizeof(blobHeader);
181
+ if (m_blobs.size() == 0)
182
+ {
183
+ if (maxsize - (p - buffer) < m_datasize)
184
+ stat = STATUS_BUFFERTOOSMALL;
185
+ else
186
+ {
187
+ memcpy(p, &m_data[0], m_datasize);
188
+ p += m_datasize;
189
+ }
190
+ }
191
+ else
192
+ {
193
+ for (size_t i = 0; i < m_blobs.size(); i++)
194
+ {
195
+ const blob& b = m_blobs[i];
196
+ if (maxsize > (p - buffer) + b.bf.size + 2)
197
+ {
198
+ // write field desc
199
+ memcpy(p, &b.bf, sizeof(blobField));
200
+ p += sizeof(blobField);
201
+ // write field body
202
+ memcpy(p, b.ptr, b.bf.size);
203
+
204
+ // write null terminate
205
+ p += b.bf.size;
206
+ memcpy(p, nullbyte, 2);
207
+ p += 2;
208
+ }
209
+ else
210
+ {
211
+ stat = STATUS_BUFFERTOOSMALL;
212
+ break;
213
+ }
214
+ }
215
+ }
216
+ }
217
+ return (unsigned int)(p - buffer);
218
+ }
172
219
  };
173
220
 
174
- }//namespace db
175
- }//namespace bzs
176
- #endif //BZS_DB_BLOBBUFFER_H
177
-
221
+ } // namespace db
222
+ } // namespace bzs
223
+ #endif // BZS_DB_BLOBBUFFER_H