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
 
@@ -23,179 +23,182 @@
23
23
 
24
24
  namespace bzs
25
25
  {
26
- using namespace netsvc::server;
26
+ using namespace netsvc::server;
27
27
  namespace db
28
28
  {
29
- using namespace protocol::tdap::mysql;
30
- using namespace engine::mysql;
29
+ using namespace protocol::tdap::mysql;
30
+ using namespace engine::mysql;
31
31
 
32
32
  namespace transactd
33
33
  {
34
34
 
35
35
  connManager::~connManager()
36
36
  {
37
-
38
-
39
37
  }
40
38
 
41
39
  const module* getMod(unsigned __int64 conid)
42
40
  {
43
- for (size_t i=0;i<modules.size();i++)
44
- {
45
- const module* mod = dynamic_cast<module*>(modules[i]);
46
- if ((unsigned __int64)mod == conid)
47
- return mod;
48
- }
49
- return NULL;
41
+ for (size_t i = 0; i < modules.size(); i++)
42
+ {
43
+ const module* mod = dynamic_cast<module*>(modules[i]);
44
+ if ((unsigned __int64)mod == conid)
45
+ return mod;
46
+ }
47
+ return NULL;
50
48
  }
51
49
 
52
- const database* connManager::getDatabase(const module* mod, int dbid)const
50
+ const database* connManager::getDatabase(const module* mod, int dbid) const
53
51
  {
54
52
 
55
- igetDatabases* dbm = dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
56
- const databases& dbs = dbm->dbs();
57
- if (dbid < (int)dbs.size())
58
- return dbs[dbid].get();
59
- return NULL;
53
+ igetDatabases* dbm =
54
+ dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
55
+ const databases& dbs = dbm->dbs();
56
+ if (dbid < (int)dbs.size())
57
+ return dbs[dbid].get();
58
+ return NULL;
60
59
  }
61
60
 
62
- void connManager::getConnectionList()const
61
+ void connManager::getConnectionList() const
63
62
  {
64
- for (size_t i=0;i<modules.size();i++)
65
- {
66
- const module* mod = dynamic_cast<module*>(modules[i]);
67
- if (mod && ((unsigned __int64)mod != m_me))
68
- {
69
-
70
-
71
- m_records.push_back(connection::record());
72
- connection::record& rec = m_records[m_records.size()-1];
73
- rec.conId = (unsigned __int64)mod;
74
- boost::asio::ip::address adr = mod->m_endpoint.address();
75
- strncpy_s(rec.name,64, adr.to_string().c_str(), 64);
76
-
77
- }
78
- }
63
+ for (size_t i = 0; i < modules.size(); i++)
64
+ {
65
+ const module* mod = dynamic_cast<module*>(modules[i]);
66
+ if (mod && ((unsigned __int64)mod != m_me))
67
+ {
68
+
69
+ m_records.push_back(connection::record());
70
+ connection::record& rec = m_records[m_records.size() - 1];
71
+ rec.conId = (unsigned __int64)mod;
72
+ boost::asio::ip::address adr = mod->m_endpoint.address();
73
+ strncpy_s(rec.name, 64, adr.to_string().c_str(), 64);
74
+ }
75
+ }
79
76
  }
80
77
 
81
- void connManager::getDatabaseList(const module* mod)const
78
+ void connManager::getDatabaseList(const module* mod) const
82
79
  {
83
- igetDatabases* dbm = dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
84
- const databases& dbs = dbm->dbs();
85
- for (size_t j=0;j<dbs.size();j++)
86
- {
87
-
88
- if (dbs[j])
89
- {
90
- m_records.push_back(connection::record());
91
- connection::record& rec = m_records[m_records.size()-1];
92
- rec.conId = (unsigned __int64)mod;
93
- rec.cid = dbs[j]->clientID();
94
- rec.dbid = (unsigned short)j;
95
- strncpy_s(rec.name, 64, dbs[j]->name().c_str(),64);
96
- }
97
- }
80
+ igetDatabases* dbm =
81
+ dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
82
+ const databases& dbs = dbm->dbs();
83
+ for (size_t j = 0; j < dbs.size(); j++)
84
+ {
85
+
86
+ if (dbs[j])
87
+ {
88
+ m_records.push_back(connection::record());
89
+ connection::record& rec = m_records[m_records.size() - 1];
90
+ rec.conId = (unsigned __int64)mod;
91
+ rec.cid = dbs[j]->clientID();
92
+ rec.dbid = (unsigned short)j;
93
+ strncpy_s(rec.name, 64, dbs[j]->name().c_str(), 64);
94
+ }
95
+ }
98
96
  }
99
97
 
100
- const connManager::records& connManager::getRecords(unsigned __int64 conid, int dbid) const
98
+ const connManager::records& connManager::getRecords(unsigned __int64 conid,
99
+ int dbid) const
101
100
  {
102
- boost::mutex::scoped_lock lck(modulesMutex);
103
-
104
- if (conid==0)
105
- getConnectionList();
106
- else
107
- {
108
- const module* mod = getMod(conid);
109
- if (mod)
110
- {
111
- boost::try_mutex::scoped_try_lock m(mod->mutex(), boost::try_to_lock_t());
112
- if (m.owns_lock())
113
- {
114
- if (dbid < 0)
115
- getDatabaseList(mod);
116
- else
117
- {
118
- const database* db = getDatabase(mod, dbid);
119
- if (db)
120
- {
121
- const std::vector<boost::shared_ptr<table> >& tables = db->tables();
122
- for (size_t k=0;k<tables.size();k++)
123
- {
124
- const table* tb = tables[k].get();
125
- if (tb)
126
- {
127
- m_records.push_back(connection::record());
128
- connection::record& rec = m_records[m_records.size()-1];
129
- rec.conId = (unsigned __int64)mod;
130
- rec.cid = db->clientID();
131
-
132
- strncpy_s(rec.name, 64, tb->name().c_str(),64);
133
- }
134
- }
135
- }
136
- }
137
- }
138
- }
139
- }
140
- return m_records;
101
+ boost::mutex::scoped_lock lck(modulesMutex);
102
+
103
+ if (conid == 0)
104
+ getConnectionList();
105
+ else
106
+ {
107
+ const module* mod = getMod(conid);
108
+ if (mod)
109
+ {
110
+ boost::try_mutex::scoped_try_lock m(mod->mutex(),
111
+ boost::try_to_lock_t());
112
+ if (m.owns_lock())
113
+ {
114
+ if (dbid < 0)
115
+ getDatabaseList(mod);
116
+ else
117
+ {
118
+ const database* db = getDatabase(mod, dbid);
119
+ if (db)
120
+ {
121
+ const std::vector<boost::shared_ptr<table> >& tables =
122
+ db->tables();
123
+ for (size_t k = 0; k < tables.size(); k++)
124
+ {
125
+ const table* tb = tables[k].get();
126
+ if (tb)
127
+ {
128
+ m_records.push_back(connection::record());
129
+ connection::record& rec =
130
+ m_records[m_records.size() - 1];
131
+ rec.conId = (unsigned __int64)mod;
132
+ rec.cid = db->clientID();
133
+
134
+ strncpy_s(rec.name, 64, tb->name().c_str(), 64);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ return m_records;
141
143
  }
142
144
 
143
145
  void connManager::doDisconnect(unsigned __int64 conid)
144
146
  {
145
- module* mod = const_cast<module*>(getMod(conid));
146
- if (mod)
147
- {
148
- igetDatabases* dbm = dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
149
- const databases& dbs = dbm->dbs();
150
- if (dbs.size())
151
- mod->disconnect();
152
- }
147
+ module* mod = const_cast<module*>(getMod(conid));
148
+ if (mod)
149
+ {
150
+ igetDatabases* dbm =
151
+ dynamic_cast<igetDatabases*>(mod->m_commandExecuter.get());
152
+ const databases& dbs = dbm->dbs();
153
+ if (dbs.size())
154
+ mod->disconnect();
155
+ }
153
156
  }
154
157
 
155
158
  void connManager::disconnect(unsigned __int64 conid)
156
159
  {
157
- boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
158
-
159
- if (m.owns_lock())
160
- doDisconnect(conid);
161
- else
162
- {
163
- for (int i=0;i<20;i++)
164
- {
165
- if (m.try_lock())
166
- return doDisconnect(conid);
167
- Sleep(100);
168
- }
169
- }
160
+ boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
161
+
162
+ if (m.owns_lock())
163
+ doDisconnect(conid);
164
+ else
165
+ {
166
+ for (int i = 0; i < 20; i++)
167
+ {
168
+ if (m.try_lock())
169
+ return doDisconnect(conid);
170
+ Sleep(100);
171
+ }
172
+ }
170
173
  }
171
174
 
172
175
  void connManager::doDisconnectAll()
173
176
  {
174
- for (size_t i=0;i<modules.size();i++)
175
- {
176
- const module* mod = dynamic_cast<module*>(modules[i]);
177
- doDisconnect((unsigned __int64)mod);
178
- }
177
+ for (size_t i = 0; i < modules.size(); i++)
178
+ {
179
+ const module* mod = dynamic_cast<module*>(modules[i]);
180
+ doDisconnect((unsigned __int64)mod);
181
+ }
179
182
  }
180
183
 
181
184
  void connManager::disconnectAll()
182
185
  {
183
- boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
184
-
185
- if (m.owns_lock())
186
- doDisconnectAll();
187
- else
188
- {
189
- for (int i=0;i<20;i++)
190
- {
191
- if (m.try_lock())
192
- return doDisconnectAll();;
193
- Sleep(100);
194
- }
195
- }
196
-
186
+ boost::try_mutex::scoped_lock m(modulesMutex, boost::try_to_lock_t());
187
+
188
+ if (m.owns_lock())
189
+ doDisconnectAll();
190
+ else
191
+ {
192
+ for (int i = 0; i < 20; i++)
193
+ {
194
+ if (m.try_lock())
195
+ return doDisconnectAll();
196
+ ;
197
+ Sleep(100);
198
+ }
199
+ }
197
200
  }
198
201
 
199
- }//namespace transactd
200
- }//namespace db
201
- }//namespace bzs
202
+ } // namespace transactd
203
+ } // namespace db
204
+ } // namespace bzs
@@ -14,19 +14,24 @@
14
14
  GNU General Public License for more details.
15
15
 
16
16
  You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
19
  02111-1307, USA.
20
20
  =================================================================*/
21
21
  #include "connectionRecord.h"
22
22
  #include <bzs/netsvc/server/IAppModule.h>
23
23
 
24
-
25
24
  namespace bzs
26
25
  {
27
26
  namespace db
28
27
  {
29
- namespace engine{namespace mysql{class database;}}
28
+ namespace engine
29
+ {
30
+ namespace mysql
31
+ {
32
+ class database;
33
+ }
34
+ }
30
35
  namespace transactd
31
36
  {
32
37
 
@@ -35,26 +40,28 @@ class module;
35
40
  class connManager
36
41
  {
37
42
  public:
43
+ typedef std::vector<connection::record> records;
38
44
 
39
- typedef std::vector<connection::record> records;
40
45
  private:
41
- mutable records m_records;
42
- __int64 m_me;
43
- void getConnectionList()const;
44
- void getDatabaseList(const module* mod) const;
45
- const bzs::db::engine::mysql::database* getDatabase(const module* mod, int dbid)const;
46
- void doDisconnect(unsigned __int64 conid);
47
- void doDisconnectAll();
46
+ mutable records m_records;
47
+ unsigned __int64 m_me;
48
+ void getConnectionList() const;
49
+ void getDatabaseList(const module* mod) const;
50
+ const bzs::db::engine::mysql::database* getDatabase(const module* mod,
51
+ int dbid) const;
52
+ void doDisconnect(unsigned __int64 conid);
53
+ void doDisconnectAll();
54
+
48
55
  public:
49
- connManager(unsigned __int64 me):m_me(me){};
50
- virtual ~connManager();
51
- const records& getRecords(unsigned __int64 conid, int dbid) const;
52
- void disconnect(unsigned __int64 conid);
53
- void disconnectAll();
56
+ connManager(unsigned __int64 me) : m_me(me){};
57
+ virtual ~connManager();
58
+ const records& getRecords(unsigned __int64 conid, int dbid) const;
59
+ void disconnect(unsigned __int64 conid);
60
+ void disconnectAll();
54
61
  };
55
62
 
56
- }//namespace transactd
57
- }//namespace db
58
- }//namespace bzs
63
+ } // namespace transactd
64
+ } // namespace db
65
+ } // namespace bzs
59
66
 
60
- #endif//BZS_DB_TRANSACTD_CONNMANAGER_H
67
+ #endif // BZS_DB_TRANSACTD_CONNMANAGER_H
@@ -14,15 +14,15 @@
14
14
  GNU General Public License for more details.
15
15
 
16
16
  You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
19
  02111-1307, USA.
20
20
  =================================================================*/
21
21
  #include <bzs/env/compiler.h>
22
22
  #include <bzs/env/crosscompile.h>
23
23
 
24
- #pragma option -a-
25
- pragma_pack1
24
+ #pragma pack(push, 1)
25
+ pragma_pack1;
26
26
 
27
27
  namespace bzs
28
28
  {
@@ -31,39 +31,39 @@ namespace db
31
31
  namespace transactd
32
32
  {
33
33
  namespace connection
34
- {
35
- struct record
36
- {
37
- record():conId(0),dbid(0),cid(0)
38
- {
39
- name[0] = 0x00;
40
- status = 0;
41
- }
42
- __int64 conId;
43
- unsigned int cid;
44
- unsigned short dbid;
45
- char name[64];
46
- union
47
- {
48
- char status;
49
- struct
50
- {
51
- char inTransaction:1;
52
- char inSnapshot :1;
53
- char openNormal :1;
54
- char openReadOnly :1;
55
- char openEx :1;
56
- char dummy :3;
57
- };
58
- };
59
- };
34
+ {
35
+ struct record
36
+ {
37
+ record() : conId(0), cid(0), dbid(0)
38
+ {
39
+ name[0] = 0x00;
40
+ status = 0;
41
+ }
42
+ __int64 conId;
43
+ unsigned int cid;
44
+ unsigned short dbid;
45
+ char name[64];
46
+ union
47
+ {
48
+ char status;
49
+ struct
50
+ {
51
+ char inTransaction : 1;
52
+ char inSnapshot : 1;
53
+ char openNormal : 1;
54
+ char openReadOnly : 1;
55
+ char openEx : 1;
56
+ char dummy : 3;
57
+ };
58
+ };
59
+ };
60
+
61
+ } // connection
62
+ } // transactd
63
+ } // db
64
+ } // bzs
65
+
66
+ #pragma pack(pop)
67
+ pragma_pop;
60
68
 
61
- }//connection
62
- }//transactd
63
- }//db
64
- }//bzs
65
-
66
- #pragma option -a
67
- pragma_pop
68
-
69
- #endif //BZS_DB_TRANSACTD_CONNECTIONRECORD_H
69
+ #endif // BZS_DB_TRANSACTD_CONNECTIONRECORD_H