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
@@ -12,8 +12,8 @@
12
12
  GNU General Public License for more details.
13
13
 
14
14
  You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
19
  #include <bzs/netsvc/server/serverCpt.h>
@@ -24,23 +24,24 @@
24
24
  #include <iostream>
25
25
  #include <string>
26
26
 
27
- #pragma warning(disable:4800)
27
+ #pragma warning(disable : 4800)
28
+ #undef PACKAGE
28
29
  #include <bzs/db/engine/mysql/mysqlInternal.h>
29
- #pragma warning(default:4800)
30
+ #pragma warning(default : 4800)
30
31
 
31
32
  #include <bzs/db/engine/mysql/mysqlThd.h>
32
33
  #include "appBuilderImple.h"
33
34
 
34
35
  /** tcp server type
35
36
  */
36
- #define TCP_CPT_SERVER 1
37
- #define TCP_TPOOL_SERVER 2
37
+ #define TCP_CPT_SERVER 1
38
+ #define TCP_TPOOL_SERVER 2
38
39
 
39
40
  using namespace bzs::netsvc::server;
40
41
 
41
42
  /** system valiables
42
43
  */
43
- static char* g_listenAddress=NULL;
44
+ static char* g_listenAddress = NULL;
44
45
  static char* g_listenPort = NULL;
45
46
  static char* g_hostCheckUserName = NULL;
46
47
 
@@ -48,250 +49,264 @@ static unsigned int g_tcpServerType = TCP_CPT_SERVER;
48
49
 
49
50
  static unsigned int g_maxTcpConnections = 200;
50
51
  static unsigned int g_pool_threads = 20;
51
- static unsigned int g_pipeCommSharememSize = 3145728;
52
- int g_tableNmaeLower = 1; //defined in btrvProtocol.h
53
- int g_useBtrvVariableTable = 1;
52
+ unsigned int g_pipeCommSharememSize = 3145728;
53
+ int g_tableNmaeLower = 1; // defined in btrvProtocol.h
54
54
  unsigned int g_lock_wait_timeout = 1;
55
55
  char* g_transaction_isolation = NULL;
56
56
 
57
- /** tcp server
57
+ /** tcp server
58
58
  */
59
59
  boost::shared_ptr<iserver> srv;
60
60
 
61
61
  /** pipe server
62
62
  */
63
63
  #ifdef WIN32
64
- #define PIPE_SERVER
65
- #include <bzs/netsvc/server/serverpipe.h>
66
- static unsigned int g_maxPipeConnections = 50;
67
- static int g_usePipedLocal = 1;
68
- #define PIPE_NAME "Transactd" //this name is fixed.
69
- boost::shared_ptr<iserver> srv_p;
64
+ #define PIPE_SERVER
65
+ #include <bzs/netsvc/server/serverpipe.h>
66
+ static unsigned int g_maxPipeConnections = 50;
67
+ static int g_usePipedLocal = 1;
68
+ #define PIPE_NAME "Transactd" // this name is fixed.
69
+ boost::shared_ptr<iserver> srv_p;
70
70
  #endif
71
71
 
72
72
  #ifdef USE_HANDLERSOCKET
73
- static char* g_hs_listenPort = NULL;
74
- static int g_use_hs = 0;
73
+ static char* g_hs_listenPort = NULL;
74
+ static int g_use_hs = 0;
75
75
  #endif
76
76
 
77
77
  class serveErrorHandler : public inotifyHandler
78
78
  {
79
79
  public:
80
+ void printError(const char* msg)
81
+ {
82
+ sql_print_error("%s%s", "Transactd: ", msg);
83
+ }
80
84
 
81
- void printError(const char* msg)
82
- {
83
- sql_print_error("%s%s","Transactd: ", msg);
84
- }
85
-
86
- void printInfo(const char* msg)
87
- {
88
- sql_print_information("%s%s","Transactd: ", msg);
89
- }
85
+ void printInfo(const char* msg)
86
+ {
87
+ sql_print_information("%s%s", "Transactd: ", msg);
88
+ }
90
89
  };
91
90
 
92
91
  serveErrorHandler srvErh;
93
92
 
94
93
  /** entry point for plugin
95
94
  */
96
- static int transactd_plugin_init(void *p)
95
+ static int transactd_plugin_init(void* p)
97
96
  {
98
- try
99
- {
100
- boost::shared_ptr<IAppModuleBuilder> app(new transctionalIF(PROTOCOL_TYPE_BTRV));
101
- if (g_tcpServerType == TCP_CPT_SERVER)
102
- {
103
- cpt::server* p = new cpt::server(g_maxTcpConnections, g_hostCheckUserName);
104
- p->addApplication(app, g_listenAddress, g_listenPort);
105
- #ifdef USE_HANDLERSOCKET
106
- if (g_use_hs)
107
- {
108
- boost::shared_ptr<IAppModuleBuilder> app_hs(new transctionalIF(PROTOCOL_TYPE_HS));
109
- p->addApplication(app_hs, g_listenAddress, g_hs_listenPort);
110
- }
111
- #endif
112
- srv.reset(p);
113
-
114
- }
115
- else if (g_tcpServerType == TCP_TPOOL_SERVER)
116
- {
117
- tpool::server* p = new tpool::server(g_pool_threads, g_hostCheckUserName);
118
- p->addApplication(app, g_listenAddress, g_listenPort);
119
- #ifdef USE_HANDLERSOCKET
120
- if (g_use_hs)
121
- {
122
- boost::shared_ptr<IAppModuleBuilder> app_hs(new transctionalIF(PROTOCOL_TYPE_HS));
123
- p->addApplication(app_hs, g_listenAddress, g_hs_listenPort);
124
- }
125
- #endif
126
- srv.reset(p);
127
- }
128
- if (srv)
129
- {
130
- srv->registerErrorHandler(&srvErh);
131
- srv->start();
132
- }
133
- #ifdef PIPE_SERVER
134
- if (g_usePipedLocal)
135
- {
136
- srv_p.reset(new pipe::server(app, PIPE_NAME , g_maxPipeConnections, g_pipeCommSharememSize, g_hostCheckUserName));
137
- srv_p->registerErrorHandler(&srvErh);
138
- srv_p->start();
139
- }
140
- #endif
141
- DEBUG_PROFILE_INIT()
142
- return 0;
143
- }
144
- catch(boost::system::system_error &e)
145
- {
146
- char buf[1024];
147
- sprintf_s(buf, 1024, "Transactd error at startup. :%s", e.what());
148
- sql_print_error("%s", buf);
149
- return 1;
150
- }
151
- catch(bzs::rtl::exception &e)
152
- {
153
- if(const std::string *msg = getMsg(e))
154
- {
155
- std::string s = "Transactd error at startup. :" + *msg;
156
- sql_print_error("%s", s.c_str());
157
- }else
158
- sql_print_error("%s", boost::diagnostic_information(e).c_str());
159
- return 1;
160
- }
161
- catch(...)
162
- {
163
- sql_print_error("%s", "Transactd unknown error at startup.");
164
- }
165
- return 1;
97
+ try
98
+ {
99
+ if (g_tcpServerType == TCP_CPT_SERVER)
100
+ {
101
+ boost::shared_ptr<IAppModuleBuilder> app(new transctionalIF(
102
+ PROTOCOL_TYPE_BTRV | PROTOCOL_TYPE_MEMBUFFER));
103
+ cpt::server* p =
104
+ new cpt::server(g_maxTcpConnections, g_hostCheckUserName);
105
+ p->addApplication(app, g_listenAddress, g_listenPort);
106
+ #ifdef USE_HANDLERSOCKET
107
+ if (g_use_hs)
108
+ {
109
+ boost::shared_ptr<IAppModuleBuilder> app_hs(
110
+ new transctionalIF(PROTOCOL_TYPE_HS));
111
+ p->addApplication(app_hs, g_listenAddress, g_hs_listenPort);
112
+ }
113
+ #endif
114
+ srv.reset(p);
115
+ }
116
+ else if (g_tcpServerType == TCP_TPOOL_SERVER)
117
+ {
118
+ boost::shared_ptr<IAppModuleBuilder> app(new transctionalIF(
119
+ PROTOCOL_TYPE_BTRV | PROTOCOL_TYPE_MEMBUFFER));
120
+ tpool::server* p =
121
+ new tpool::server(g_pool_threads, g_hostCheckUserName);
122
+ p->addApplication(app, g_listenAddress, g_listenPort);
123
+ #ifdef USE_HANDLERSOCKET
124
+ if (g_use_hs)
125
+ {
126
+ boost::shared_ptr<IAppModuleBuilder> app_hs(new transctionalIF(
127
+ PROTOCOL_TYPE_HS | PROTOCOL_TYPE_MEMBUFFER));
128
+ p->addApplication(app_hs, g_listenAddress, g_hs_listenPort);
129
+ }
130
+ #endif
131
+ srv.reset(p);
132
+ }
133
+ if (srv)
134
+ {
135
+ srv->registerErrorHandler(&srvErh);
136
+ srv->start();
137
+ }
138
+ #ifdef PIPE_SERVER
139
+ if (g_usePipedLocal)
140
+ {
141
+ boost::shared_ptr<IAppModuleBuilder> app(new transctionalIF(
142
+ PROTOCOL_TYPE_BTRV | PROTOCOL_TYPE_MEMBUFFER));
143
+ srv_p.reset(new pipe::server(app, PIPE_NAME, g_maxPipeConnections,
144
+ g_pipeCommSharememSize,
145
+ g_hostCheckUserName));
146
+ srv_p->registerErrorHandler(&srvErh);
147
+ srv_p->start();
148
+ }
149
+ #endif
150
+ DEBUG_PROFILE_INIT()
151
+ return 0;
152
+ }
153
+ catch (boost::system::system_error& e)
154
+ {
155
+ char buf[1024];
156
+ sprintf_s(buf, 1024, "Transactd error at startup. :%s", e.what());
157
+ sql_print_error("%s", buf);
158
+ return 1;
159
+ }
160
+ catch (bzs::rtl::exception& e)
161
+ {
162
+ if (const std::string* msg = getMsg(e))
163
+ {
164
+ std::string s = "Transactd error at startup. :" + *msg;
165
+ sql_print_error("%s", s.c_str());
166
+ }
167
+ else
168
+ sql_print_error("%s", boost::diagnostic_information(e).c_str());
169
+ return 1;
170
+ }
171
+ catch (...)
172
+ {
173
+ sql_print_error("%s", "Transactd unknown error at startup.");
174
+ }
175
+ return 1;
166
176
  }
167
177
 
168
178
  void shutdownSrv(boost::shared_ptr<iserver>& srv)
169
179
  {
170
- try
171
- {
172
- if (srv)
173
- {
174
- srv->stop();
175
- srv.reset();
176
- }
177
- }
178
- catch(boost::system::system_error &e)
179
- {
180
- sql_print_error("Transactd %s", e.what());
181
- }
182
- catch(bzs::rtl::exception &e)
183
- {
184
- if(const std::string *msg = getMsg(e))
185
- {
186
- std::string s = "Transactd. :" + *msg;
187
- sql_print_error("%s", s.c_str());
188
- }else
189
- sql_print_error("%s", boost::diagnostic_information(e).c_str());
190
- }
191
- catch(...)
192
- {
193
- sql_print_error("%s", "Transactd Unknown");
194
- }
180
+ try
181
+ {
182
+ if (srv)
183
+ {
184
+ srv->stop();
185
+ srv.reset();
186
+ }
187
+ }
188
+ catch (boost::system::system_error& e)
189
+ {
190
+ sql_print_error("Transactd %s", e.what());
191
+ }
192
+ catch (bzs::rtl::exception& e)
193
+ {
194
+ if (const std::string* msg = getMsg(e))
195
+ {
196
+ std::string s = "Transactd. :" + *msg;
197
+ sql_print_error("%s", s.c_str());
198
+ }
199
+ else
200
+ sql_print_error("%s", boost::diagnostic_information(e).c_str());
201
+ }
202
+ catch (...)
203
+ {
204
+ sql_print_error("%s", "Transactd Unknown");
205
+ }
195
206
  }
196
207
 
197
208
  /** called from mysql at shutdown plugin.
198
209
  */
199
- static int transactd_plugin_deinit(void *p)
210
+ static int transactd_plugin_deinit(void* p)
200
211
  {
201
- #ifdef PIPE_SERVER
202
- shutdownSrv(srv_p);
203
- #endif
204
- shutdownSrv(srv);
205
- return 0;
212
+ #ifdef PIPE_SERVER
213
+ shutdownSrv(srv_p);
214
+ #endif
215
+ shutdownSrv(srv);
216
+ return 0;
206
217
  }
207
218
 
208
- static struct st_mysql_daemon transactd_info =
209
- {
210
- MYSQL_DAEMON_INTERFACE_VERSION
219
+ static struct st_mysql_daemon transactd_info = {
220
+ MYSQL_DAEMON_INTERFACE_VERSION
211
221
  };
212
222
 
213
223
  /** system valiable define
214
224
  */
215
- static MYSQL_SYSVAR_STR(address, g_listenAddress, PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, "0::0|0.0.0.0", NULL, NULL, "0.0.0.0");
216
- static MYSQL_SYSVAR_STR(port, g_listenPort, PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL, NULL, "8610");
217
- static MYSQL_SYSVAR_STR(hostcheck_username, g_hostCheckUserName, PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL, NULL, "root");
218
- static MYSQL_SYSVAR_UINT(max_tcp_connections, g_maxTcpConnections, PLUGIN_VAR_READONLY, "1..3000", 0, 0, 200, 1,3000, 0);
219
- static MYSQL_SYSVAR_INT(table_name_lowercase, g_tableNmaeLower, PLUGIN_VAR_READONLY,"", 0, 0, 1, 0,1, 0);
220
- static MYSQL_SYSVAR_INT(use_btrv_variable_table, g_useBtrvVariableTable, PLUGIN_VAR_READONLY,"", 0, 0, 1, 0,1, 0);
221
- static MYSQL_SYSVAR_UINT(pool_threads, g_pool_threads, PLUGIN_VAR_READONLY,"1..1000", 0, 0, 20, 1,1000, 0);
222
- static MYSQL_SYSVAR_UINT(tcp_server_type, g_tcpServerType, PLUGIN_VAR_READONLY,"1..2", 0, 0, TCP_CPT_SERVER, 1,2, 0);
223
- static MYSQL_SYSVAR_UINT(lock_wait_timeout, g_lock_wait_timeout, PLUGIN_VAR_READONLY,"1..3600", 0, 0, 1, 1,3600, 0);
224
- static MYSQL_SYSVAR_STR(transaction_isolation, g_transaction_isolation, PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL, NULL, "READ-COMMITTED");
225
+ static MYSQL_SYSVAR_STR(address, g_listenAddress,
226
+ PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC,
227
+ "0::0|0.0.0.0", NULL, NULL, "0.0.0.0");
228
+ static MYSQL_SYSVAR_STR(port, g_listenPort,
229
+ PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL,
230
+ NULL, "8610");
231
+ static MYSQL_SYSVAR_STR(hostcheck_username, g_hostCheckUserName,
232
+ PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL,
233
+ NULL, "root");
234
+ static MYSQL_SYSVAR_UINT(max_tcp_connections, g_maxTcpConnections,
235
+ PLUGIN_VAR_READONLY, "1..3000", 0, 0, 200, 1, 3000, 0);
236
+ static MYSQL_SYSVAR_INT(table_name_lowercase, g_tableNmaeLower,
237
+ PLUGIN_VAR_READONLY, "", 0, 0, 1, 0, 1, 0);
238
+ static MYSQL_SYSVAR_UINT(pool_threads, g_pool_threads, PLUGIN_VAR_READONLY,
239
+ "1..1000", 0, 0, 20, 1, 1000, 0);
240
+ static MYSQL_SYSVAR_UINT(tcp_server_type, g_tcpServerType, PLUGIN_VAR_READONLY,
241
+ "1..2", 0, 0, TCP_CPT_SERVER, 1, 2, 0);
242
+ static MYSQL_SYSVAR_UINT(lock_wait_timeout, g_lock_wait_timeout,
243
+ PLUGIN_VAR_READONLY, "1..3600", 0, 0, 1, 1, 3600, 0);
244
+ static MYSQL_SYSVAR_STR(transaction_isolation, g_transaction_isolation,
245
+ PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL,
246
+ NULL, "READ-COMMITTED");
225
247
 
226
248
  #ifdef PIPE_SERVER
227
- static MYSQL_SYSVAR_UINT(pipe_comm_sharemem_size, g_pipeCommSharememSize, PLUGIN_VAR_READONLY,"66000..52428800", 0, 0, 3145728, 66000,52428800, 0);
228
- static MYSQL_SYSVAR_UINT(max_pipe_connections, g_maxPipeConnections, PLUGIN_VAR_READONLY, "1..100", 0, 0, 50, 1,100, 0);
229
- static MYSQL_SYSVAR_INT(use_piped_local, g_usePipedLocal, PLUGIN_VAR_READONLY, "", 0, 0, 1, 0, 1,0);
249
+ static MYSQL_SYSVAR_UINT(pipe_comm_sharemem_size, g_pipeCommSharememSize,
250
+ PLUGIN_VAR_READONLY, "66000..52428800", 0, 0, 3145728,
251
+ 66000, 52428800, 0);
252
+ static MYSQL_SYSVAR_UINT(max_pipe_connections, g_maxPipeConnections,
253
+ PLUGIN_VAR_READONLY, "1..100", 0, 0, 50, 1, 100, 0);
254
+ static MYSQL_SYSVAR_INT(use_piped_local, g_usePipedLocal, PLUGIN_VAR_READONLY,
255
+ "", 0, 0, 1, 0, 1, 0);
230
256
  #endif
231
257
 
232
258
  #ifdef USE_HANDLERSOCKET
233
- static MYSQL_SYSVAR_STR(hs_port, g_hs_listenPort, PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL, NULL, "9999");
234
- static MYSQL_SYSVAR_INT(use_handlersocket, g_use_hs, PLUGIN_VAR_READONLY,"", 0, 0, 0, 0,1, 0);
259
+ static MYSQL_SYSVAR_STR(hs_port, g_hs_listenPort,
260
+ PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC, NULL, NULL,
261
+ NULL, "9999");
262
+ static MYSQL_SYSVAR_INT(use_handlersocket, g_use_hs, PLUGIN_VAR_READONLY, "", 0,
263
+ 0, 0, 0, 1, 0);
235
264
  #endif
236
265
 
237
266
  /** system valiables struct.
238
267
  */
239
- static struct st_mysql_sys_var *g_systemVariables[] =
240
- {
241
- MYSQL_SYSVAR(address),
242
- MYSQL_SYSVAR(port),
243
- MYSQL_SYSVAR(max_tcp_connections),
244
- MYSQL_SYSVAR(hostcheck_username),
245
- MYSQL_SYSVAR(table_name_lowercase),
246
- MYSQL_SYSVAR(use_btrv_variable_table),
247
- MYSQL_SYSVAR(pool_threads),
248
- MYSQL_SYSVAR(tcp_server_type),
249
- MYSQL_SYSVAR(lock_wait_timeout),
250
- MYSQL_SYSVAR(transaction_isolation),
268
+ static struct st_mysql_sys_var* g_systemVariables[] = {
269
+ MYSQL_SYSVAR(address), MYSQL_SYSVAR(port),
270
+ MYSQL_SYSVAR(max_tcp_connections), MYSQL_SYSVAR(hostcheck_username),
271
+ MYSQL_SYSVAR(table_name_lowercase), MYSQL_SYSVAR(pool_threads),
272
+ MYSQL_SYSVAR(tcp_server_type), MYSQL_SYSVAR(lock_wait_timeout),
273
+ MYSQL_SYSVAR(transaction_isolation),
251
274
  #ifdef PIPE_SERVER
252
- MYSQL_SYSVAR(pipe_comm_sharemem_size),
253
- MYSQL_SYSVAR(max_pipe_connections),
254
- MYSQL_SYSVAR(use_piped_local),
275
+ MYSQL_SYSVAR(pipe_comm_sharemem_size), MYSQL_SYSVAR(max_pipe_connections),
276
+ MYSQL_SYSVAR(use_piped_local),
255
277
  #endif
256
278
  #ifdef USE_HANDLERSOCKET
257
- MYSQL_SYSVAR(use_handlersocket),
258
- MYSQL_SYSVAR(hs_port),
279
+ MYSQL_SYSVAR(use_handlersocket), MYSQL_SYSVAR(hs_port),
259
280
  #endif
260
- 0
281
+ 0
261
282
  };
262
283
 
263
284
  /** show valiables struct.
264
285
  */
265
- static st_mysql_show_var g_showVariables[] =
266
- {
267
- {"trnsctd_tcp_connections", (char*)&cpt::g_connections, SHOW_INT},
268
- {"trnsctd_tcp_wait_threads", (char*)&cpt::g_waitThread, SHOW_INT},
269
- {"trnsctd_tpool_connections", (char*)&tpool::g_connections, SHOW_INT},
270
- {"trnsctd_tpool_threads", (char*)&tpool::server::m_threadPoolSize, SHOW_INT},
286
+ static st_mysql_show_var g_showVariables[] = {
287
+ { "trnsctd_tcp_connections", (char*)&cpt::g_connections, SHOW_INT },
288
+ { "trnsctd_tcp_wait_threads", (char*)&cpt::g_waitThread, SHOW_INT },
289
+ { "trnsctd_tpool_connections", (char*)&tpool::g_connections, SHOW_INT },
290
+ { "trnsctd_tpool_threads", (char*)&tpool::server::m_threadPoolSize,
291
+ SHOW_INT },
271
292
  #ifdef PIPE_SERVER
272
- {"trnsctd_pipe_connections", (char*)&pipe::g_connections, SHOW_INT},
273
- {"trnsctd_pipe_wait_threads", (char*)&pipe::g_waitThread, SHOW_INT},
293
+ { "trnsctd_pipe_connections", (char*)&pipe::g_connections, SHOW_INT },
294
+ { "trnsctd_pipe_wait_threads", (char*)&pipe::g_waitThread, SHOW_INT },
274
295
  #endif
275
- {"trnsctd_cur_open_databases", (char*)&g_openDatabases, SHOW_INT},
276
- {0, 0, (enum_mysql_show_type)0}
296
+ { "trnsctd_cur_open_databases", (char*)&g_openDatabases, SHOW_INT },
297
+ { 0, 0, (enum_mysql_show_type)0 }
277
298
  };
278
299
 
279
300
  /** plugin struct.
280
301
  */
281
302
  mysql_declare_plugin(transactd)
282
303
  {
283
- MYSQL_DAEMON_PLUGIN,
284
- &transactd_info,
285
- "transactd",//this is plugin name for mysql.
286
- "Hisashi Yaguchi at BizStation Corp",
287
- "Transactional access demon for mysql",
288
- PLUGIN_LICENSE_GPL,
289
- transactd_plugin_init,
290
- transactd_plugin_deinit,
291
- 0x0100,
292
- g_showVariables,
293
- g_systemVariables,
294
- NULL
304
+ MYSQL_DAEMON_PLUGIN, &transactd_info,
305
+ "transactd", // this is plugin name for mysql.
306
+ "Hisashi Yaguchi at BizStation Corp",
307
+ "Transactional access demon for mysql", PLUGIN_LICENSE_GPL,
308
+ transactd_plugin_init, transactd_plugin_deinit, 0x0100, g_showVariables,
309
+ g_systemVariables, NULL
295
310
  }
296
311
 
297
312
  mysql_declare_plugin_end;
@@ -299,41 +314,40 @@ mysql_declare_plugin_end;
299
314
  #ifdef USETLS
300
315
  extern tls_key g_tlsiID;
301
316
 
302
- #ifdef __APPLE__
317
+ #ifdef __APPLE__
303
318
 
304
- void __attribute__ ((constructor)) onLoadLibrary(void);
305
- void __attribute__ ((destructor)) onUnloadLibrary(void);
319
+ void __attribute__((constructor)) onLoadLibrary(void);
320
+ void __attribute__((destructor)) onUnloadLibrary(void);
306
321
 
307
322
  void onLoadLibrary(void)
308
323
  {
309
- pthread_key_create(&g_tlsiID, NULL);
324
+ pthread_key_create(&g_tlsiID, NULL);
310
325
  }
311
326
 
312
327
  void onUnloadLibrary(void)
313
328
  {
314
- pthread_key_delete(g_tlsiID);
329
+ pthread_key_delete(g_tlsiID);
315
330
  }
316
331
 
317
- #else //WIN32
332
+ #else // WIN32
318
333
 
319
- BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
320
- {
321
- switch (fdwReason)
334
+ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
335
+ {
336
+ switch (fdwReason)
322
337
  {
323
338
  case DLL_PROCESS_ATTACH:
324
- if ((g_tlsiID = TlsAlloc()) == TLS_OUT_OF_INDEXES)
325
- return FALSE;
326
- break;
339
+ if ((g_tlsiID = TlsAlloc()) == TLS_OUT_OF_INDEXES)
340
+ return FALSE;
341
+ break;
327
342
  case DLL_PROCESS_DETACH:
328
343
  TlsFree(g_tlsiID);
329
344
  break;
330
345
  default:
331
- break;
332
- }
333
- return TRUE;
346
+ break;
347
+ }
348
+ return TRUE;
334
349
  }
335
350
 
336
351
  #endif //__APPLE__
337
352
 
338
- #endif //USETLS
339
-
353
+ #endif // USETLS
@@ -0,0 +1,131 @@
1
+ #ifndef BZS_ENV_BOOST_LINK_BCB_H
2
+ #define BZS_ENV_BOOST_LINK_BCB_H
3
+ /*=================================================================
4
+ Copyright (C) 2014 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ =================================================================*/
21
+ #ifdef __BCPLUSPLUS__
22
+ #include <bzs/db/protocol/tdap/tdapcapi.h>
23
+ #ifdef _WIN64
24
+ #if (__BCPLUSPLUS__ >= 0x690)
25
+ #define TD_BOOST_VER_STR "1_55"
26
+ #else
27
+ #define TD_BOOST_VER_STR "1_50"
28
+ #endif
29
+ #ifdef _RTLDLL
30
+ #ifdef BZS_LINK_BOOST_SYSTEM
31
+ #pragma comment(lib, "libboost_system-bcb64-mt-" TD_BOOST_VER_STR ".a")
32
+ #endif
33
+ #ifdef BZS_LINK_BOOST_FILESYSTEM
34
+ #pragma comment(lib, "libboost_filesystem-bcb64-mt-" TD_BOOST_VER_STR ".a")
35
+ #endif
36
+ #ifdef BZS_LINK_BOOST_SERIALIZATION
37
+ #pragma comment(lib, "libboost_serialization-bcb64-mt-" TD_BOOST_VER_STR ".a")
38
+ #endif
39
+ #ifdef BZS_LINK_BOOST_CHRONO
40
+ #pragma comment(lib, "libboost_chrono-bcb64-mt-" TD_BOOST_VER_STR ".a")
41
+ #endif
42
+ #ifdef BZS_LINK_BOOST_TIMER
43
+ #pragma comment(lib, "libboost_timer-bcb64-mt-" TD_BOOST_VER_STR ".a")
44
+ #endif
45
+ #ifdef BZS_LINK_BOOST_THREAD
46
+ #pragma comment(lib, "libboost_thread-bcb64-mt-" TD_BOOST_VER_STR ".a")
47
+ #endif
48
+ #ifdef BZS_LINK_BOOST_PROGRAM_OPTIONS
49
+ #pragma comment(lib, "libboost_program_options-bcb64-mt-" TD_BOOST_VER_STR ".a")
50
+ #endif
51
+ #else
52
+ #ifdef BZS_LINK_BOOST_SYSTEM
53
+ #pragma comment(lib, "libboost_system-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
54
+ #endif
55
+ #ifdef BZS_LINK_BOOST_FILESYSTEM
56
+ #pragma comment(lib, "libboost_filesystem-bcb64-mt-s-" TD_BOOST_VER_STR ".a)
57
+ #endif
58
+ #ifdef BZS_LINK_BOOST_SERIALIZATION
59
+ #pragma comment(lib, "libboost_serialization-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
60
+ #endif
61
+ #ifdef BZS_LINK_BOOST_CHRONO
62
+ #pragma comment(lib, "libboost_chrono-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
63
+ #endif
64
+ #ifdef BZS_LINK_BOOST_TIMER
65
+ #pragma comment(lib, "libboost_timer-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
66
+ #endif
67
+ #ifdef BZS_LINK_BOOST_THREAD
68
+ #pragma comment(lib, "libboost_thread-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
69
+ #endif
70
+ #ifdef BZS_LINK_BOOST_PROGRAM_OPTIONS
71
+ #pragma comment(lib, \
72
+ "libboost_program_options-bcb64-mt-s-" TD_BOOST_VER_STR ".a")
73
+ #endif
74
+ #endif
75
+ #else
76
+ #if (defined(__APPLE__))
77
+ #define LIB_EXT "a"
78
+ #define THREADNAME "thread_pthread"
79
+ #else
80
+ #define LIB_EXT "lib"
81
+ #define THREADNAME "thread"
82
+ #endif
83
+ #ifdef _RTLDLL
84
+ #ifdef BZS_LINK_BOOST_SYSTEM
85
+ #pragma comment(lib, "libboost_system-bcb-mt-1_39" LIB_EXTENTION)
86
+ #endif
87
+ #ifdef BZS_LINK_BOOST_FILESYSTEM
88
+ #pragma comment(lib, "libboost_filesystem-bcb-mt-1_39" LIB_EXTENTION)
89
+ #endif
90
+ #ifdef BZS_LINK_BOOST_SERIALIZATION
91
+ #pragma comment(lib, "libboost_serialization-bcb-mt-1_39" LIB_EXTENTION)
92
+ #endif
93
+ #ifdef BZS_LINK_BOOST_CHRONO
94
+ #pragma comment(lib, "libboost_chrono-bcb-mt-1_39" LIB_EXTENTION)
95
+ #endif
96
+ #ifdef BZS_LINK_BOOST_TIMER
97
+ #pragma comment(lib, "libboost_timer-bcb-mt-1_39" LIB_EXTENTION)
98
+ #endif
99
+ #ifdef BZS_LINK_BOOST_THREAD
100
+ #pragma comment(lib, "libboost_" THREADNAME "-bcb-mt-1_39" LIB_EXTENTION)
101
+ #endif
102
+ #ifdef BZS_LINK_BOOST_PROGRAM_OPTIONS
103
+ #pragma comment(lib, "libboost_program_options-bcb-mt-1_39" LIB_EXTENTION)
104
+ #endif
105
+ #else
106
+ #ifdef BZS_LINK_BOOST_SYSTEM
107
+ #pragma comment(lib, "libboost_system-bcb-mt-s-1_39" LIB_EXTENTION)
108
+ #endif
109
+ #ifdef BZS_LINK_BOOST_FILESYSTEM
110
+ #pragma comment(lib, "libboost_filesystem-bcb-mt-s-1_39" LIB_EXTENTION)
111
+ #endif
112
+ #ifdef BZS_LINK_BOOST_SERIALIZATION
113
+ #pragma comment(lib, "libboost_serialization-bcb-mt-s-1_39" LIB_EXTENTION)
114
+ #endif
115
+ #ifdef BZS_LINK_BOOST_CHRONO
116
+ #pragma comment(lib, "libboost_chrono-bcb-mt-s-1_39" LIB_EXTENTION)
117
+ #endif
118
+ #ifdef BZS_LINK_BOOST_TIMER
119
+ #pragma comment(lib, "libboost_timer-bcb-mt-s-1_39" LIB_EXTENTION)
120
+ #endif
121
+ #ifdef BZS_LINK_BOOST_THREAD
122
+ #pragma comment(lib, "libboost_" THREADNAME "-bcb-mt-s-1_39" LIB_EXTENTION)
123
+ #endif
124
+ #ifdef BZS_LINK_BOOST_PROGRAM_OPTIONS
125
+ #pragma comment(lib, "libboost_program_options-bcb-mt-s-1_39" LIB_EXTENTION)
126
+ #endif
127
+ #endif
128
+ #endif
129
+ #endif
130
+
131
+ #endif // BZS_ENV_BOOST_LINK_BCB_H