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
@@ -26,23 +26,21 @@ else()
26
26
  get_filename_component(TRANSACTD_PHP_PATH "@SWIG_NATIVE_OUTFILE@" PATH)
27
27
  file(TO_CMAKE_PATH "${TRANSACTD_PHP_PATH}/transactd.php" TRANSACTD_PHP_PATH)
28
28
  ## generate correct transactd.php
29
- if(NOT EXISTS "${TRANSACTD_PHP_PATH}.correct")
30
- MESSAGE("Generating ${TRANSACTD_PHP_PATH}.correct ...")
31
- execute_process(
32
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@" "@SWIG_INTERFACE_FILE@.org")
33
- execute_process(
34
- COMMAND grep -v "^%newobj" "@SWIG_INTERFACE_FILE@.org"
35
- OUTPUT_FILE "@SWIG_INTERFACE_FILE@")
36
- execute_process(
37
- ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
38
- COMMAND swig -c++ -php5 -I@SWIG_INC_PATH1@ -I@SWIG_INC_PATH2@ -o @SWIG_NATIVE_OUTFILE@ @SWIG_INTERFACE_FILE@)
39
- execute_process(
40
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${TRANSACTD_PHP_PATH}" "${TRANSACTD_PHP_PATH}.correct")
41
- execute_process(
42
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@.org" "@SWIG_INTERFACE_FILE@")
43
- execute_process(
44
- COMMAND ${CMAKE_COMMAND} -E remove "@SWIG_INTERFACE_FILE@.org")
45
- endif()
29
+ MESSAGE("Generating ${TRANSACTD_PHP_PATH}.correct ...")
30
+ execute_process(
31
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@" "@SWIG_INTERFACE_FILE@.org")
32
+ execute_process(
33
+ COMMAND grep -v "^%newobj" "@SWIG_INTERFACE_FILE@.org"
34
+ OUTPUT_FILE "@SWIG_INTERFACE_FILE@")
35
+ execute_process(
36
+ ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
37
+ COMMAND swig -c++ -php5 -I@SWIG_INC_PATH1@ -I@SWIG_INC_PATH2@ -o @SWIG_NATIVE_OUTFILE@ @SWIG_INTERFACE_FILE@)
38
+ execute_process(
39
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "${TRANSACTD_PHP_PATH}" "${TRANSACTD_PHP_PATH}.correct")
40
+ execute_process(
41
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@.org" "@SWIG_INTERFACE_FILE@")
42
+ execute_process(
43
+ COMMAND ${CMAKE_COMMAND} -E remove "@SWIG_INTERFACE_FILE@.org")
46
44
  ## generate wrapper cpp
47
45
  execute_process(
48
46
  ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
@@ -17,23 +17,29 @@
17
17
  @REM 02111-1307, USA.
18
18
  @REM ===============================================================
19
19
  call :GET_TRANSACTD_PHP_PATH "@SWIG_NATIVE_OUTFILE@"
20
- if not exist "%TDPHPPATH%.correct" call :GENERATE_TRANSACTD_PHP_CORRECT
21
20
 
22
- swig -c++ -php5 -DSWIGWIN -D_WIN32 -I"@SWIG_INC_PATH1@" -I"@SWIG_INC_PATH2@" @SWIG_ADDITONAL_OPTIONS@ -o "@SWIG_NATIVE_OUTFILE@" "@SWIG_INTERFACE_FILE@"
23
- del "%TDPHPPATH%"
24
- copy "%TDPHPPATH%.correct" "%TDPHPPATH%"
25
-
26
- exit /b 0
27
-
28
- :GENERATE_TRANSACTD_PHP_CORRECT
21
+ @REM Generate correct transactd.php
22
+ @REM -- see SWIG bugs:#1350 http://sourceforge.net/p/swig/bugs/1350/
23
+ @REM -- delete %newobject on interface file
29
24
  copy "@SWIG_INTERFACE_FILE@" "@SWIG_INTERFACE_FILE@.org"
30
25
  findstr /V /B /C:"%%newobject" "@SWIG_INTERFACE_FILE@.org" > "@SWIG_INTERFACE_FILE@"
26
+ @REM -- generate wrapper files
31
27
  swig -c++ -php5 -DSWIGWIN -D_WIN32 -I"@SWIG_INC_PATH1@" -I"@SWIG_INC_PATH2@" @SWIG_ADDITONAL_OPTIONS@ -o "@SWIG_NATIVE_OUTFILE@" "@SWIG_INTERFACE_FILE@"
28
+ @REM -- revert interface file
32
29
  del "@SWIG_INTERFACE_FILE@"
33
30
  copy "@SWIG_INTERFACE_FILE@.org" "@SWIG_INTERFACE_FILE@"
34
31
  del "@SWIG_INTERFACE_FILE@.org"
32
+ @REM -- rename transactd.php to transactd.php.correct to use after step
35
33
  move "%TDPHPPATH%" "%TDPHPPATH%.correct"
36
- exit /b 0
34
+
35
+ @REM Generate wrappers
36
+ swig -c++ -php5 -DSWIGWIN -D_WIN32 -I"@SWIG_INC_PATH1@" -I"@SWIG_INC_PATH2@" @SWIG_ADDITONAL_OPTIONS@ -o "@SWIG_NATIVE_OUTFILE@" "@SWIG_INTERFACE_FILE@"
37
+ @REM -- replace correct transactd.php
38
+ del "%TDPHPPATH%"
39
+ copy "%TDPHPPATH%.correct" "%TDPHPPATH%"
40
+ del "%TDPHPPATH%.correct
41
+
42
+ exit /b 0
37
43
 
38
44
  :GET_TRANSACTD_PHP_PATH
39
45
  setlocal enabledelayedexpansion
@@ -17,68 +17,30 @@
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
19
  #if defined(SWIGPHP) // ======= For PHP =======
20
-
21
- /* ===============================================
22
- ignore functions
23
- =============================================== */
24
- // original callback
25
- %ignore bzs::db::protocol::tdap::client::database::onCopyData;
26
- %ignore bzs::db::protocol::tdap::client::database::setOnCopyData;
27
- %ignore bzs::db::protocol::tdap::client::database::onDeleteRecord;
28
- %ignore bzs::db::protocol::tdap::client::database::setOnDeleteRecord;
29
- // overloaded functions
30
- %ignore bzs::db::protocol::tdap::client::table::setFV(short, float); // use double instead of this
31
- %ignore bzs::db::protocol::tdap::client::table::setFV(short, unsigned char); // use __int64 instead of this
32
- %ignore bzs::db::protocol::tdap::client::table::setFV(short, short); // use __int64 instead of this
33
- %ignore bzs::db::protocol::tdap::client::table::setFV(short, int); // use __int64 instead of this
34
- %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, float); // use double instead of this
35
- %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, unsigned char); // use __int64 instead of this
36
- %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, short); // use __int64 instead of this
37
- %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, int); // use __int64 instead of this
38
- %ignore bzs::db::protocol::tdap::client::table::setFVW; // use setFV instead of this
39
- %ignore bzs::db::protocol::tdap::client::table::getFVWstr; // use getFVstr instead of this
40
- %ignore bzs::db::protocol::tdap::btrTimeStamp::btrTimeStamp(const wchar_t *); // use char* instead of this
41
- %ignore bzs::db::protocol::tdap::btrTimeStamp::toString(wchar_t *); // use char* instead of this
42
- %ignore bzs::db::protocol::tdap::btrTimeStamp::fromString(const wchar_t *); // use char* instead of this
43
- %ignore bzs::db::protocol::tdap::atobtrd(const wchar_t *); // use char* instead of this
44
- %ignore bzs::db::protocol::tdap::atobtrt(const wchar_t *); // use char* instead of this
45
- %ignore bzs::db::protocol::tdap::btrdtoa(int, wchar_t *); // use char* instead of this
46
- %ignore bzs::db::protocol::tdap::btrdtoa(int, wchar_t *, bool); // use char* instead of this
47
- %ignore bzs::db::protocol::tdap::btrdtoa(const btrDate &, wchar_t *); // use char* instead of this
48
- %ignore bzs::db::protocol::tdap::btrdtoa(const btrDate &, wchar_t *, bool); // use char* instead of this
49
- %ignore bzs::db::protocol::tdap::btrttoa(int, wchar_t *); // use char* instead of this
50
- %ignore bzs::db::protocol::tdap::btrttoa(int, wchar_t *, bool); // use char* instead of this
51
- %ignore bzs::db::protocol::tdap::btrttoa(const btrTime &, wchar_t *); // use char* instead of this
52
- %ignore bzs::db::protocol::tdap::btrttoa(const btrTime &, wchar_t *, bool); // use char* instead of this
53
-
54
-
55
20
  /* ===============================================
56
- Rename functions
21
+ exception handler
57
22
  =============================================== */
58
- // Rename function which has keyword of PHP as its name.
59
- %rename(andWhere) bzs::db::protocol::tdap::client::queryBase::And;
60
- %rename(orWhere) bzs::db::protocol::tdap::client::queryBase::Or;
61
-
62
-
63
- /* ===============================================
64
- set execCodePage on createObject
65
- =============================================== */
66
- %ignore bzs::db::protocol::tdap::client::database::create();
67
- %extend bzs::db::protocol::tdap::client::database {
68
- static bzs::db::protocol::tdap::client::database* createObject()
69
- {
70
- bzs::db::protocol::tdap::client::nsdatabase::setExecCodePage(CP_UTF8);
71
- return bzs::db::protocol::tdap::client::database::create();
23
+ %exception {
24
+ try {
25
+ $action
26
+ } catch (bzs::rtl::exception& e) {
27
+ SWIG_exception(SWIG_RuntimeError, (* bzs::rtl::getMsg(e)).c_str());
28
+ } catch (std::exception &e) {
29
+ SWIG_exception(SWIG_RuntimeError, e.what());
72
30
  }
73
- };
74
- %newobject bzs::db::protocol::tdap::client::database::createObject;
75
- %delobject bzs::db::protocol::tdap::client::database::release;
31
+ }
76
32
 
77
33
 
78
34
  /* ===============================================
79
- SWIG PHP can't convert String to c++ wchar_t
80
- so define _TCHAR as char.
35
+ General settings for PHP
81
36
  =============================================== */
37
+ %{
38
+ #ifdef SWIGPHP
39
+ #undef realloc
40
+ #endif
41
+ %}
42
+
43
+ // SWIG PHP can't convert String to c++ wchar_t so define _TCHAR as char.
82
44
  #ifdef _UNICODE
83
45
  #undef _UNICODE
84
46
  #endif
@@ -88,11 +50,7 @@
88
50
  typedef char _TCHAR;
89
51
  #define _T(x) x
90
52
 
91
-
92
- /* ===============================================
93
- define strtoll and strtoull
94
- for Visual Studio 2008 or lesser
95
- =============================================== */
53
+ // define strtoll and strtoull for Visual Studio 2008 or lesser
96
54
  %{
97
55
  #if _MSC_VER
98
56
  #define strtoll _strtoi64
@@ -100,11 +58,27 @@ typedef char _TCHAR;
100
58
  #endif
101
59
  %}
102
60
 
61
+ // phpinfo
62
+ #ifndef SWIGWIN
63
+ %{
64
+ #define TRANSACTD_PHP_REQUIRED_MODULE_PREFIX "lib"
65
+ %}
66
+ #else
67
+ %{
68
+ #define TRANSACTD_PHP_REQUIRED_MODULE_PREFIX ""
69
+ %}
70
+ #endif
71
+ %pragma(php) phpinfo="
72
+ php_info_print_table_start();
73
+ php_info_print_table_row(2, \"Version\", CPP_INTERFACE_VER_MAJOR \".\" CPP_INTERFACE_VER_MINOR \".\" CPP_INTERFACE_VER_RELEASE);
74
+ php_info_print_table_row(2, \"Required Module\", TRANSACTD_PHP_REQUIRED_MODULE_PREFIX TDCLC_LIBNAME);
75
+ php_info_print_table_end();
76
+ "
103
77
 
104
- /* ===============================================
105
- typemap
106
- =============================================== */
78
+ // General typemap
107
79
  %apply short { char_td }
80
+
81
+ // typemaps for encoding support
108
82
  %typemap(argout) (const char* u8, int u8size, char* mbc, int mbcsize) {
109
83
  ZVAL_STRING(return_value, (char *)$3, 1);
110
84
  }
@@ -114,9 +88,77 @@ typedef char _TCHAR;
114
88
 
115
89
 
116
90
  /* ===============================================
117
- setFV / getFV for binary data
91
+ ignore / rename functions
118
92
  =============================================== */
93
+ // * bzs/db/protocol/tdap/btrDate.h *
94
+ %ignore bzs::db::protocol::tdap::btrTimeStamp::btrTimeStamp(const wchar_t *); // use char*
95
+ %ignore bzs::db::protocol::tdap::btrTimeStamp::toString(wchar_t *); // use char*
96
+ %ignore bzs::db::protocol::tdap::btrTimeStamp::fromString(const wchar_t *); // use char*
97
+ %ignore bzs::db::protocol::tdap::atobtrd(const wchar_t *); // use char*
98
+ %ignore bzs::db::protocol::tdap::atobtrt(const wchar_t *); // use char*
99
+ %ignore bzs::db::protocol::tdap::btrdtoa(int, wchar_t *); // use char*
100
+ %ignore bzs::db::protocol::tdap::btrdtoa(int, wchar_t *, bool); // use char*
101
+ %ignore bzs::db::protocol::tdap::btrdtoa(const btrDate &, wchar_t *); // use char*
102
+ %ignore bzs::db::protocol::tdap::btrdtoa(const btrDate &, wchar_t *, bool); // use char*
103
+ %ignore bzs::db::protocol::tdap::btrttoa(int, wchar_t *); // use char*
104
+ %ignore bzs::db::protocol::tdap::btrttoa(int, wchar_t *, bool); // use char*
105
+ %ignore bzs::db::protocol::tdap::btrttoa(const btrTime &, wchar_t *); // use char*
106
+ %ignore bzs::db::protocol::tdap::btrttoa(const btrTime &, wchar_t *, bool); // use char*
107
+
108
+ // * bzs/db/protocol/tdap/client/database.h *
109
+ %ignore bzs::db::protocol::tdap::client::database::onCopyData;
110
+ %ignore bzs::db::protocol::tdap::client::database::setOnCopyData;
111
+ %ignore bzs::db::protocol::tdap::client::database::onDeleteRecord;
112
+ %ignore bzs::db::protocol::tdap::client::database::setOnDeleteRecord;
113
+
114
+ // * bzs/db/protocol/tdap/client/field.h *
115
+ %ignore bzs::db::protocol::tdap::client::field::operator=(const char*);
116
+ %ignore bzs::db::protocol::tdap::client::field::operator=(const std::string&);
117
+ %ignore bzs::db::protocol::tdap::client::field::operator=(int);
118
+ %ignore bzs::db::protocol::tdap::client::field::operator=(float);
119
+ %rename(setFV) bzs::db::protocol::tdap::client::field::operator=(const _TCHAR*);
120
+ %rename(setFV) bzs::db::protocol::tdap::client::field::operator=(__int64);
121
+ %rename(setFV) bzs::db::protocol::tdap::client::field::operator=(double);
122
+ %rename(setFV) bzs::db::protocol::tdap::client::field::setBin;
123
+ %rename(__clone) bzs::db::protocol::tdap::client::fielddefs::clone;
124
+ // getBin typemap
125
+ %typemap(in, numinputs=0) (uint_td & size) (uint_td temp) {
126
+ $1 = &temp;
127
+ }
128
+ %typemap(argout) (uint_td & size) {
129
+ ZVAL_STRINGL($result, (char *)result, *$1, 1);
130
+ }
131
+
132
+ // * bzs/db/protocol/tdap/client/groupQuery.h *
133
+ %rename(__clone) bzs::db::protocol::tdap::client::groupFuncBase::clone;
134
+ %rename(__clone) bzs::db::protocol::tdap::client::avg::clone;
135
+ %rename(__clone) bzs::db::protocol::tdap::client::count::clone;
136
+ %rename(__clone) bzs::db::protocol::tdap::client::max::clone;
137
+ %rename(__clone) bzs::db::protocol::tdap::client::min::clone;
138
+ %rename(__clone) bzs::db::protocol::tdap::client::sum::clone;
139
+
140
+ // * bzs/db/protocol/tdap/client/nsDatabase.h *
141
+ %rename(__clone) bzs::db::protocol::tdap::client::nsdatabase::clone;
142
+
143
+ // * bzs/db/protocol/tdap/client/recordset.h *
144
+ %rename(__clone) bzs::db::protocol::tdap::client::recordset::clone;
145
+ %ignore bzs::db::protocol::tdap::client::recordset::first;
146
+ %ignore bzs::db::protocol::tdap::client::recordset::last;
147
+
148
+ // * bzs/db/protocol/tdap/client/table.h *
149
+ %ignore bzs::db::protocol::tdap::client::table::setFV(short, float); // use double
150
+ %ignore bzs::db::protocol::tdap::client::table::setFV(short, unsigned char); // use __int64
151
+ %ignore bzs::db::protocol::tdap::client::table::setFV(short, short); // use __int64
152
+ %ignore bzs::db::protocol::tdap::client::table::setFV(short, int); // use __int64
153
+ %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, float); // use double
154
+ %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, unsigned char); // use __int64
155
+ %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, short); // use __int64
156
+ %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR *, int); // use __int64
157
+ %ignore bzs::db::protocol::tdap::client::table::setFVW; // use setFV
158
+ %ignore bzs::db::protocol::tdap::client::table::getFVWstr; // use getFVstr
159
+ // define setFVbin
119
160
  %ignore bzs::db::protocol::tdap::client::table::setFV(short, const void *, uint_td);
161
+ %ignore bzs::db::protocol::tdap::client::table::setFV(const _TCHAR*, const void *, uint_td);
120
162
  %extend bzs::db::protocol::tdap::client::table {
121
163
  void setFV(short index, const char * data, uint_td size) {
122
164
  return self->setFV(index, (void const *) data, size);
@@ -125,31 +167,31 @@ typedef char _TCHAR;
125
167
  return self->setFV(fieldName, (void const *) data, size);
126
168
  }
127
169
  };
128
- %typemap(in, numinputs=0) (uint_td & size) (uint_td temp) {
170
+ // fix getFVbin
171
+ %typemap(in, numinputs=0) (uint_td & table_getFVbin_size) (uint_td temp) {
129
172
  $1 = &temp;
130
173
  }
131
- %typemap(argout) (uint_td & size) {
174
+ %typemap(argout) (uint_td & table_getFVbin_size) {
132
175
  ZVAL_STRINGL($result, (char *)result, *$1, 1);
133
176
  }
177
+ %extend bzs::db::protocol::tdap::client::table {
178
+ void* getFVbin(short index, uint_td& table_getFVbin_size)
179
+ {
180
+ return self->getFVbin(index, table_getFVbin_size);
181
+ }
182
+ void* getFVbin(const _TCHAR *fieldName, uint_td& table_getFVbin_size)
183
+ {
184
+ return self->getFVbin(fieldName, table_getFVbin_size);
185
+ }
186
+ };
187
+ %ignore bzs::db::protocol::tdap::client::table::getFVbin(short, uint_td&);
188
+ %ignore bzs::db::protocol::tdap::client::table::getFVbin(const _TCHAR *, uint_td&);
134
189
 
135
190
 
136
191
  /* ===============================================
137
- phpinfo
192
+ add code to init section
138
193
  =============================================== */
139
- #ifndef SWIGWIN
140
- %{
141
- #define TRANSACTD_PHP_REQUIRED_MODULE_PREFIX "lib"
194
+ %init %{
195
+ bzs::db::protocol::tdap::client::nsdatabase::setCheckTablePtr(true);
142
196
  %}
143
- #else
144
- %{
145
- #define TRANSACTD_PHP_REQUIRED_MODULE_PREFIX ""
146
- %}
147
- #endif
148
- %pragma(php) phpinfo="
149
- php_info_print_table_start();
150
- php_info_print_table_row(2, \"Version\", CPP_INTERFACE_VER_MAJOR \".\" CPP_INTERFACE_VER_MINOR \".\" CPP_INTERFACE_VER_RELEASE);
151
- php_info_print_table_row(2, \"Required Module\", TRANSACTD_PHP_REQUIRED_MODULE_PREFIX TDCLC_LIBNAME);
152
- php_info_print_table_end();
153
- "
154
-
155
197
  #endif // =============== For PHP ===============