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
@@ -14,8 +14,8 @@
14
14
  GNU General Public License for more details.
15
15
 
16
16
  You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
19
  02111-1307, USA.
20
20
  =================================================================*/
21
21
  #include <bzs/db/engine/mysql/dbManager.h>
@@ -23,7 +23,7 @@
23
23
  #include <bzs/env/crosscompile.h>
24
24
 
25
25
  namespace bzs
26
- {
26
+ {
27
27
  namespace db
28
28
  {
29
29
  namespace protocol
@@ -31,83 +31,83 @@ namespace protocol
31
31
  namespace hs
32
32
  {
33
33
 
34
- #define HS_OP_READ 'R'
35
- #define HS_OP_OPEN 'P'
36
- #define HS_OP_AUTH 'A'
37
- #define HS_OP_INSERT '+'
38
- #define HS_OP_DELETE 'D'
39
- #define HS_OP_UPDATE 'U'
40
- #define HS_OP_UPDATE_INC '+'+0xff
41
- #define HS_OP_UPDATE_DEC '-'
42
- #define HS_OP_QUIT 'Q'
43
-
44
- #define HS_LG_EQUAL '='
45
- #define HS_LG_GREATER '>'
46
- #define HS_LG_LESS '<'
47
- #define HS_LG_NOTEQUAL '<'+0xfe //<>
48
- #define HS_LG_GREATEROREQUAL '>'+0xff //>=
49
- #define HS_LG_LESSOREQUAL '<'+0xff //<=
50
-
51
-
52
- #define DEBNAME_SIZE 64
53
- #define TABELNAME_SIZE 64
54
- #define INDEXNAME_SIZE 64
34
+ #define HS_OP_READ 'R'
35
+ #define HS_OP_OPEN 'P'
36
+ #define HS_OP_AUTH 'A'
37
+ #define HS_OP_INSERT '+'
38
+ #define HS_OP_DELETE 'D'
39
+ #define HS_OP_UPDATE 'U'
40
+ #define HS_OP_UPDATE_INC '+' + 0xff
41
+ #define HS_OP_UPDATE_DEC '-'
42
+ #define HS_OP_QUIT 'Q'
43
+
44
+ #define HS_LG_EQUAL '='
45
+ #define HS_LG_GREATER '>'
46
+ #define HS_LG_LESS '<'
47
+ #define HS_LG_NOTEQUAL '<' + 0xfe //<>
48
+ #define HS_LG_GREATEROREQUAL '>' + 0xff //>=
49
+ #define HS_LG_LESSOREQUAL '<' + 0xff //<=
50
+
51
+ #define DEBNAME_SIZE 64
52
+ #define TABELNAME_SIZE 64
53
+ #define INDEXNAME_SIZE 64
55
54
 
56
55
  #define HS_OP_RESULTBUFSIZE 64000
57
56
 
58
57
  //-----------------------------------------------------------------------
58
+
59
59
  // result buffer
60
60
  //-----------------------------------------------------------------------
61
61
 
62
62
  class resultBuffer
63
63
  {
64
- char* m_ptr;
65
- char* m_cur;
64
+ char* m_ptr;
65
+ char* m_cur;
66
66
 
67
67
  public:
68
- resultBuffer(char* ptr):m_ptr(ptr),m_cur(m_ptr){}
69
-
70
- void append(const char* ptr, size_t size)
71
- {
72
- const char* p = ptr;
73
- const char* end = ptr + size;
74
- for (;p < end; ++p)
75
- {
76
- if ((*p >= 0x00) && (*p <= 0x10))
77
- {
78
- *m_cur = 0x01;
79
- *(++m_cur) = *p + 0x40;
80
- }else
81
- *m_cur = *p;
82
- ++m_cur;
83
- }
84
- }
85
-
86
- void append(const char* ptr)
87
- {
88
- const char* p = ptr;
89
- while(*p)
90
- {
91
- *m_cur = *p;
92
- ++p;
93
- ++m_cur;
94
- }
95
- }
96
-
97
- void append(int v)
98
- {
99
- char tmp[50];
100
- sprintf_s(tmp, 50, "%d", v);
101
- append(tmp);
102
- }
103
-
104
- size_t size()
105
- {
106
- *m_ptr = 0x00;
107
- return m_cur - m_ptr;
108
- }
109
- const char* c_str(){return m_ptr;}
110
-
68
+ resultBuffer(char* ptr) : m_ptr(ptr), m_cur(m_ptr) {}
69
+
70
+ void append(const char* ptr, size_t size)
71
+ {
72
+ const char* p = ptr;
73
+ const char* end = ptr + size;
74
+ for (; p < end; ++p)
75
+ {
76
+ if ((*p >= 0x00) && (*p <= 0x10))
77
+ {
78
+ *m_cur = 0x01;
79
+ *(++m_cur) = *p + 0x40;
80
+ }
81
+ else
82
+ *m_cur = *p;
83
+ ++m_cur;
84
+ }
85
+ }
86
+
87
+ void append(const char* ptr)
88
+ {
89
+ const char* p = ptr;
90
+ while (*p)
91
+ {
92
+ *m_cur = *p;
93
+ ++p;
94
+ ++m_cur;
95
+ }
96
+ }
97
+
98
+ void append(int v)
99
+ {
100
+ char tmp[50];
101
+ sprintf_s(tmp, 50, "%d", v);
102
+ append(tmp);
103
+ }
104
+
105
+ size_t size()
106
+ {
107
+ *m_ptr = 0x00;
108
+ return m_cur - m_ptr;
109
+ }
110
+ const char* c_str() { return m_ptr; }
111
111
  };
112
112
  //-----------------------------------------------------------------------
113
113
  // request
@@ -115,114 +115,111 @@ public:
115
115
 
116
116
  struct request
117
117
  {
118
- short op;
119
- int handle;
120
-
121
- struct result
122
- {
123
- result():limit(1),offset(0),returnBeforeValue(0){};
124
- int limit;
125
- int offset;
126
- bool returnBeforeValue;
127
- }result;
128
-
129
- struct db
130
- {
131
- char name[DEBNAME_SIZE];
132
- }db;
133
-
134
- struct table
135
- {
136
- table():openMode(0){}
137
- char name[TABELNAME_SIZE];
138
- short openMode;
139
-
140
- struct key
141
- {
142
- key():logical(0){};
143
- char name[INDEXNAME_SIZE];
144
- std::vector<std::string> values;
145
- short logical;
146
- }key;
147
-
148
- std::string fields;
149
- std::vector<std::string> values;
150
- struct in
151
- {
152
- in():keypart(0){}
153
- uint keypart;
154
- std::vector<std::string> values;
155
- }in;
156
-
157
- struct filter
158
- {
159
- filter():type(0),logical(0),col(0){}
160
- char type;
161
- short logical;
162
- short col;
163
- std::string value;
164
- };
165
-
166
- typedef std::vector<filter> filters_type;
167
- filters_type filters;
168
-
169
- }table;
170
-
171
- request():op(HS_OP_READ),handle(0){}
172
- ha_rkey_function seekFlag();
173
- bool naviForward();
174
- bool naviSame();
118
+ short op;
119
+ int handle;
120
+
121
+ struct result
122
+ {
123
+ result() : limit(1), offset(0), returnBeforeValue(0){};
124
+ int limit;
125
+ int offset;
126
+ bool returnBeforeValue;
127
+ } result;
128
+
129
+ struct db
130
+ {
131
+ char name[DEBNAME_SIZE];
132
+ } db;
133
+
134
+ struct table
135
+ {
136
+ table() : openMode(0) {}
137
+ char name[TABELNAME_SIZE];
138
+ short openMode;
139
+
140
+ struct key
141
+ {
142
+ key() : logical(0){};
143
+ char name[INDEXNAME_SIZE];
144
+ std::vector<std::string> values;
145
+ short logical;
146
+ } key;
147
+
148
+ std::string fields;
149
+ std::vector<std::string> values;
150
+ struct in
151
+ {
152
+ in() : keypart(0) {}
153
+ uint keypart;
154
+ std::vector<std::string> values;
155
+ } in;
156
+
157
+ struct filter
158
+ {
159
+ filter() : type(0), logical(0), col(0) {}
160
+ char type;
161
+ short logical;
162
+ short col;
163
+ std::string value;
164
+ };
165
+
166
+ typedef std::vector<filter> filters_type;
167
+ filters_type filters;
168
+
169
+ } table;
170
+
171
+ request() : op(HS_OP_READ), handle(0) {}
172
+ ha_rkey_function seekFlag();
173
+ bool naviForward();
174
+ bool naviSame();
175
175
  };
176
176
 
177
-
178
-
179
177
  //-----------------------------------------------------------------------
180
178
  // class dbExecuter
181
179
  //-----------------------------------------------------------------------
182
- /** Current, no support auth command .
180
+ /** Current, no support auth command .
183
181
  */
184
182
  typedef int (*changeFunc)(request& req, engine::mysql::table* tb, int type);
185
183
  class dbExecuter : public engine::mysql::dbManager
186
184
  {
187
- void doRecordOperation( request& req, engine::mysql::table* tb, resultBuffer& buf, changeFunc func);
188
- inline int readAfter(request& req, engine::mysql::table* tb, resultBuffer& buf, changeFunc func);
185
+ void doRecordOperation(request& req, engine::mysql::table* tb,
186
+ resultBuffer& buf, changeFunc func);
187
+ inline int readAfter(request& req, engine::mysql::table* tb,
188
+ resultBuffer& buf, changeFunc func);
189
189
 
190
190
  public:
191
- int commandExec(std::vector<request>& requests, char* result, size_t& size, netsvc::server::buffers* optionalData);
192
- int errorCode(int ha_error){return 0;};
193
-
191
+ int commandExec(std::vector<request>& requests,
192
+ netsvc::server::netWriter* nw);
193
+ int errorCode(int ha_error) { return 0; };
194
194
  };
195
195
 
196
196
  //-----------------------------------------------------------------------
197
197
  // class commandExecuter
198
198
  //-----------------------------------------------------------------------
199
- class commandExecuter : public ICommandExecuter, public engine::mysql::igetDatabases
199
+ class commandExecuter : public ICommandExecuter,
200
+ public engine::mysql::igetDatabases
200
201
  {
201
- boost::shared_ptr<dbExecuter> m_dbExec;
202
- mutable std::vector<request> m_requests;
202
+ boost::shared_ptr<dbExecuter> m_dbExec;
203
+ mutable std::vector<request> m_requests;
203
204
 
204
205
  public:
205
- commandExecuter(__int64 parent);
206
- ~commandExecuter();
207
- size_t perseRequestEnd(const char* p, size_t size, bool& comp)const;
208
- size_t getAcceptMessage(char* message, size_t size){return 0;};
209
- bool parse(const char* p, size_t size) ;
210
- int execute(char* resultBuffer, size_t& size, netsvc::server::buffers* optionalData)
211
- {
212
- return m_dbExec->commandExec(m_requests, resultBuffer, size, optionalData);
213
- }
214
- void cleanup(){};
215
- bool isShutDown(){return m_dbExec->isShutDown();}
216
- const engine::mysql::databases& dbs() const{return m_dbExec->dbs();};
217
-
206
+ commandExecuter(__int64 parent);
207
+ ~commandExecuter();
208
+ size_t perseRequestEnd(const char* p, size_t size, bool& comp) const;
209
+ size_t getAcceptMessage(char* message, size_t size) { return 0; };
210
+ bool parse(const char* p, size_t size);
211
+ int execute(netsvc::server::netWriter* nw)
212
+ {
213
+ return m_dbExec->commandExec(m_requests, nw);
214
+ }
215
+ void cleanup(){};
216
+ bool isShutDown() { return m_dbExec->isShutDown(); }
217
+ const engine::mysql::databases& dbs() const { return m_dbExec->dbs(); };
218
218
  };
219
219
 
220
+ } // namespace hs
221
+ } // namespace protocol
222
+ } // namespace db
223
+ } // namespace bzs
220
224
 
221
- }//namespace hs
222
- }//namespace protocol
223
- }//namespace db
224
- }//namespace bzs
225
-
226
-
227
- #endif //BZS_DB_PROTOCOL_HS_HSCOMMANDEXECUTER_H
228
-
225
+ #endif // BZS_DB_PROTOCOL_HS_HSCOMMANDEXECUTER_H