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
@@ -1,118 +1,141 @@
1
- #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
2
- #define BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
3
- /* =================================================================
4
- Copyright (C) 2000-2013 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
- #include "nsDatabase.h"
22
-
23
- namespace bzs
24
- {
25
- namespace db
26
- {
27
- namespace protocol
28
- {
29
- namespace tdap
30
- {
31
- namespace client
32
- {
33
-
34
- class database;
35
- class table;
36
- class repData;
37
- class dbdef;
38
-
39
- #if defined(__BORLANDC__)
40
- typedef bool __stdcall(*deleteRecordFn)(database* db, table* tb, bool inkey);
41
- typedef short __stdcall(*schemaMgrFn)(database* db);
42
- typedef void __stdcall(*copyDataFn)(database* db, int recordCount, int count, bool &cancel);
43
- #else
44
- typedef bool(__STDCALL *deleteRecordFn)(database* db, table* tb, bool inkey);
45
- typedef short(__STDCALL *schemaMgrFn)(database* db);
46
- typedef void (__STDCALL *copyDataFn)(database* db, int recordCount, int count, bool &cancel);
47
- #endif
48
-
49
-
50
- class AGRPACK database : public nsdatabase
51
- {
52
- struct dbimple* m_impl;
53
- void setDir(const _TCHAR* directory);
54
- virtual table* createTableObject();
55
-
56
- protected:
57
- database& operator = (const database&);
58
- database();
59
- virtual ~database();
60
- void setLockReadOnly(bool v);
61
- virtual void doClose();
62
- virtual void doOpen(const _TCHAR* uri, short type, short mode, const _TCHAR* username);
63
- virtual bool onOpenAfter() {return true;};
64
- virtual bool onTableOpened(table* tb, short fileNum, short mode, bool isCreated) {return true;};
65
- virtual char* getContinuousList(int option);
66
- virtual void onCopyDataInternal(table* tb, int recordCount, int count, bool& cancel);
67
- virtual void doConvertTable(short tableIndex, bool turbo, const _TCHAR* ownerName);
68
-
69
- public:
70
- virtual void release();
71
- dbdef* dbDef() const ;
72
- const _TCHAR* rootDir() const ;
73
- void setRootDir(const _TCHAR* directory);
74
- void* optionalData() const ;
75
- void setOptionalData(void* v);
76
- bool tableReadOnly() const ;
77
- void setTableReadOnly(bool value);
78
- const deleteRecordFn onDeleteRecord() const ;
79
- void setOnDeleteRecord(const deleteRecordFn v);
80
- const copyDataFn onCopyData() const;
81
- void setOnCopyData(const copyDataFn v);
82
- bool open(const _TCHAR* uri, short schemaType = 0, short mode = -2, const _TCHAR* dir = NULL,
83
- const _TCHAR* ownerName = NULL);
84
- table* openTable(short fileNum, short mode = 0, bool autoCreate = true,
85
- const _TCHAR* ownerName = NULL, const _TCHAR* uri = NULL);
86
- table* openTable(const _TCHAR* tableName, short mode = 0, bool autoCreate = true,
87
- const _TCHAR* ownerName = NULL, const _TCHAR* uri = NULL);
88
- database* clone();
89
- bool createTable(short fileNum, const _TCHAR* uri = NULL);
90
- void create(const _TCHAR* uri, short type = TYPE_SCHEMA_BDF);
91
- void drop();
92
- void dropTable(const _TCHAR* tableName);
93
- void close();
94
- short continuous(char_td op = TD_BACKUP_START, bool inclideRepfile = false);
95
- short assignSchemaData(dbdef* src);
96
- short copyTableData(table* dest, table* src, bool turbo, int offset = 0, short keyNum = -1,
97
- int maxSkip = -1);
98
- void convertTable(short tableIndex, bool turbo, const _TCHAR* ownerName=NULL);
99
- bool existsTableFile(short tableIndex, const _TCHAR* ownerName=NULL);
100
- _TCHAR* getTableUri(_TCHAR* buf, short fileNum);
101
- void getBtrVersion(btrVersions* versions);
102
- bool isOpened() const ;
103
- virtual int defaultAutoIncSpace() const {return 0;};
104
- static database* create();
105
- /* For C++ direct only. don't use by wrapper class for COM or SWIG
106
- This method is ignore refarence count of nsdatabse.
107
- */
108
- static void destroy(database* db);
109
-
110
- };
111
-
112
- }// namespace client
113
- }// namespace tdap
114
- }// namespace protocol
115
- }// namespace db
116
- }// namespace bzs
117
-
118
- #endif//BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
1
+ #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
2
+ #define BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
3
+ /* =================================================================
4
+ Copyright (C) 2000-2013 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
+ #include "nsDatabase.h"
22
+
23
+ namespace bzs
24
+ {
25
+ namespace db
26
+ {
27
+ namespace protocol
28
+ {
29
+ namespace tdap
30
+ {
31
+ namespace client
32
+ {
33
+
34
+ class database;
35
+ class table;
36
+ class dbdef;
37
+
38
+ #if defined(__BORLANDC__)
39
+ typedef bool __stdcall (*deleteRecordFn)(database* db, table* tb, bool inkey);
40
+ typedef short __stdcall (*schemaMgrFn)(database* db);
41
+ typedef void __stdcall (*copyDataFn)(database* db, int recordCount, int count,
42
+ bool& cancel);
43
+ #else
44
+ /** @cond INTERNAL */
45
+ /** Callback function on a record was deleted. */
46
+ typedef bool(__STDCALL* deleteRecordFn)(database* db, table* tb, bool inkey);
47
+ /** @endcond */
48
+
49
+ /** Callback function on a database is opening by database::open operation.
50
+ This is use for change a table schema and table data at before database
51
+ */
52
+ typedef short(__STDCALL* schemaMgrFn)(database* db);
53
+
54
+ /** Callback function on a record was copied by convert table operation. */
55
+ typedef void(__STDCALL* copyDataFn)(database* db, int recordCount, int count,
56
+ bool& cancel);
57
+ #endif
58
+
59
+ class DLLLIB database : public nsdatabase
60
+ {
61
+ struct dbimple* m_impl;
62
+
63
+ void setDir(const _TCHAR* directory);
64
+ virtual table* createTableObject();
65
+
66
+ protected:
67
+ database& operator=(const database&);
68
+ database();
69
+ virtual ~database();
70
+ void setLockReadOnly(bool v);
71
+ virtual void doClose();
72
+ virtual void doOpen(const _TCHAR* uri, short type, short mode,
73
+ const _TCHAR* username);
74
+
75
+ virtual bool onOpenAfter() { return true; };
76
+
77
+ virtual bool onTableOpened(table* tb, short fileNum, short mode,
78
+ bool isCreated)
79
+ {
80
+ return true;
81
+ };
82
+ virtual char* getContinuousList(int option);
83
+ virtual void onCopyDataInternal(table* tb, int recordCount, int count,
84
+ bool& cancel);
85
+ virtual void doConvertTable(short tableIndex, bool turbo,
86
+ const _TCHAR* ownerName);
87
+
88
+ public:
89
+ virtual void release();
90
+ dbdef* dbDef() const;
91
+ const _TCHAR* rootDir() const;
92
+ void setRootDir(const _TCHAR* directory);
93
+ void* optionalData() const;
94
+ void setOptionalData(void* v);
95
+ bool tableReadOnly() const;
96
+ void setTableReadOnly(bool value);
97
+ const deleteRecordFn onDeleteRecord() const;
98
+ void setOnDeleteRecord(const deleteRecordFn v);
99
+ const copyDataFn onCopyData() const;
100
+ void setOnCopyData(const copyDataFn v);
101
+ bool open(const _TCHAR* uri, short schemaType = 0, short mode = -2,
102
+ const _TCHAR* dir = NULL, const _TCHAR* ownerName = NULL);
103
+ table* openTable(short fileNum, short mode = TD_OPEN_NORMAL,
104
+ bool autoCreate = true, const _TCHAR* ownerName = NULL,
105
+ const _TCHAR* uri = NULL);
106
+ table* openTable(const _TCHAR* tableName, short mode = 0,
107
+ bool autoCreate = true, const _TCHAR* ownerName = NULL,
108
+ const _TCHAR* uri = NULL);
109
+ database* clone();
110
+ bool createTable(short fileNum, const _TCHAR* uri = NULL);
111
+ void create(const _TCHAR* uri, short type = TYPE_SCHEMA_BDF);
112
+ void drop();
113
+ void dropTable(const _TCHAR* tableName);
114
+ void close();
115
+ short continuous(char_td op = TD_BACKUP_START, bool inclideRepfile = false);
116
+ short assignSchemaData(dbdef* src);
117
+ short copyTableData(table* dest, table* src, bool turbo, int offset = 0,
118
+ short keyNum = -1, int maxSkip = -1);
119
+ void convertTable(short tableIndex, bool turbo,
120
+ const _TCHAR* ownerName = NULL);
121
+ bool existsTableFile(short tableIndex, const _TCHAR* ownerName = NULL);
122
+ _TCHAR* getTableUri(_TCHAR* buf, short fileNum);
123
+ void getBtrVersion(btrVersions* versions);
124
+ bool isOpened() const;
125
+ char_td mode() const;
126
+
127
+ virtual int defaultAutoIncSpace() const { return 0; };
128
+ static database* create();
129
+ /* For C++ direct only. don't use by wrapper class for COM or SWIG
130
+ This method is ignore refarence count of nsdatabse.
131
+ */
132
+ static void destroy(database* db);
133
+ };
134
+
135
+ } // namespace client
136
+ } // namespace tdap
137
+ } // namespace protocol
138
+ } // namespace db
139
+ } // namespace bzs
140
+
141
+ #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
@@ -23,7 +23,6 @@
23
23
  #include <bzs/rtl/exception.h>
24
24
  //---------------------------------------------------------------------------
25
25
 
26
-
27
26
  #pragma package(smart_init)
28
27
 
29
28
  namespace bzs
@@ -37,32 +36,33 @@ namespace tdap
37
36
  namespace client
38
37
  {
39
38
 
40
-
41
39
  database* database::create()
42
40
  {
43
41
  try
44
- {
45
- return new database();
46
- }
47
- catch( bzs::rtl::exception& /*e*/){}
48
- return NULL;
42
+ {
43
+ return new database();
44
+ }
45
+ catch (bzs::rtl::exception& /*e*/)
46
+ {
47
+ }
48
+ return NULL;
49
49
  }
50
50
 
51
- }//namespace client
52
- }//namespace tdap
53
- }//namespace protocol
54
- }//namespace db
55
- }//namespace bzs
56
-
51
+ } // namespace client
52
+ } // namespace tdap
53
+ } // namespace protocol
54
+ } // namespace db
55
+ } // namespace bzs
57
56
 
58
57
  #undef USETLS
59
- #if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
58
+ #if ((defined(_WIN32) && _MSC_VER) || (__APPLE__ && !defined(__BCPLUSPLUS__)))
60
59
  #define USETLS
61
60
  #endif
62
61
 
63
- /* At MSVC use __thread before Windows Vista, After the DLL is loaded with LoadLibrary
62
+ /* At MSVC use __thread before Windows Vista, After the DLL is loaded with
63
+ LoadLibrary
64
64
  then it causes system failure.
65
-
65
+
66
66
  */
67
67
  #ifdef USETLS
68
68
  tls_key g_tlsiID_SC1;
@@ -71,72 +71,70 @@ tls_key g_tlsiID_SC3;
71
71
 
72
72
  void initTlsThread()
73
73
  {
74
- tls_setspecific(g_tlsiID_SC1, new wchar_t[256]);
75
- tls_setspecific(g_tlsiID_SC2, new wchar_t[45]);
76
- tls_setspecific(g_tlsiID_SC3, new wchar_t[45]);
74
+ tls_setspecific(g_tlsiID_SC1, new wchar_t[256]);
75
+ tls_setspecific(g_tlsiID_SC2, new wchar_t[45]);
76
+ tls_setspecific(g_tlsiID_SC3, new wchar_t[45]);
77
77
  }
78
78
 
79
79
  void cleanupTls()
80
80
  {
81
- delete (char*)tls_getspecific(g_tlsiID_SC1);
82
- delete (char*)tls_getspecific(g_tlsiID_SC2);
83
- delete (char*)tls_getspecific(g_tlsiID_SC3);
81
+ delete (char*)tls_getspecific(g_tlsiID_SC1);
82
+ delete (char*)tls_getspecific(g_tlsiID_SC2);
83
+ delete (char*)tls_getspecific(g_tlsiID_SC3);
84
84
  }
85
85
 
86
86
  #ifdef __APPLE__
87
87
 
88
- void __attribute__ ((constructor)) onLoadLibrary(void);
89
- void __attribute__ ((destructor)) onUnloadLibrary(void);
88
+ #include <pthread.h>
89
+
90
+ void __attribute__((constructor)) onLoadLibrary(void);
91
+ void __attribute__((destructor)) onUnloadLibrary(void);
90
92
 
91
93
  void onLoadLibrary(void)
92
94
  {
93
- pthread_key_create(&g_tlsiID_SC1, NULL);
94
- pthread_key_create(&g_tlsiID_SC2, NULL);
95
- pthread_key_create(&g_tlsiID_SC3, NULL);
95
+ pthread_key_create(&g_tlsiID_SC1, NULL);
96
+ pthread_key_create(&g_tlsiID_SC2, NULL);
97
+ pthread_key_create(&g_tlsiID_SC3, NULL);
96
98
  }
97
99
 
98
100
  void onUnloadLibrary(void)
99
101
  {
100
- cleanupTls();
101
- pthread_key_delete(g_tlsiID_SC1);
102
- pthread_key_delete(g_tlsiID_SC2);
103
- pthread_key_delete(g_tlsiID_SC3);
102
+ cleanupTls();
103
+ pthread_key_delete(g_tlsiID_SC1);
104
+ pthread_key_delete(g_tlsiID_SC2);
105
+ pthread_key_delete(g_tlsiID_SC3);
104
106
  }
105
107
 
106
-
107
-
108
108
  #else
109
109
 
110
- BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
110
+ BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
111
111
  {
112
- if (reason == DLL_PROCESS_ATTACH)
113
- {
114
- if ((g_tlsiID_SC1 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
115
- return FALSE;
116
- if ((g_tlsiID_SC2 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
117
- return FALSE;
118
- if ((g_tlsiID_SC3 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
119
- return FALSE;
120
- initTlsThread();
121
- }
122
- else if(reason == DLL_THREAD_ATTACH)
123
- {
124
- initTlsThread();
125
- }
126
- else if(reason == DLL_THREAD_DETACH)
127
- {
128
- cleanupTls();
129
- }
130
- else if (reason == DLL_PROCESS_DETACH)
131
- {
132
- cleanupTls();
133
- TlsFree(g_tlsiID_SC1);
134
- TlsFree(g_tlsiID_SC2);
135
- TlsFree(g_tlsiID_SC3);
136
- }
137
- return TRUE;
112
+ if (reason == DLL_PROCESS_ATTACH)
113
+ {
114
+ if ((g_tlsiID_SC1 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
115
+ return FALSE;
116
+ if ((g_tlsiID_SC2 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
117
+ return FALSE;
118
+ if ((g_tlsiID_SC3 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
119
+ return FALSE;
120
+ initTlsThread();
121
+ }
122
+ else if (reason == DLL_THREAD_ATTACH)
123
+ {
124
+ initTlsThread();
125
+ }
126
+ else if (reason == DLL_THREAD_DETACH)
127
+ {
128
+ cleanupTls();
129
+ }
130
+ else if (reason == DLL_PROCESS_DETACH)
131
+ {
132
+ cleanupTls();
133
+ TlsFree(g_tlsiID_SC1);
134
+ TlsFree(g_tlsiID_SC2);
135
+ TlsFree(g_tlsiID_SC3);
136
+ }
137
+ return TRUE;
138
138
  }
139
139
  #endif
140
140
  #endif //(_UNICODE && defined(_WIN32) && _MSC_VER)
141
-
142
-