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
@@ -38,9 +38,9 @@ namespace tdap
38
38
  namespace client
39
39
  {
40
40
 
41
- typedef int(*isMbcleadFunc)(unsigned int c);
41
+ typedef int (*isMbcleadFunc)(unsigned int c);
42
42
 
43
- inline size_t charNumByteUtf8(const unsigned char *p, size_t isize, size_t num)
43
+ inline size_t charNumByteUtf8(const unsigned char* p, size_t isize, size_t num)
44
44
  {
45
45
  int n = 0;
46
46
  const unsigned char* end = p + isize;
@@ -58,15 +58,16 @@ inline size_t charNumByteUtf8(const unsigned char *p, size_t isize, size_t num)
58
58
  for (unsigned char tmp = *p & 0xfc; (tmp & 0x80); tmp = tmp << 1)
59
59
  {
60
60
  ++n;
61
- if (++p == end)
62
- break;
61
+ if (++p == end)
62
+ break;
63
63
  }
64
64
  }
65
65
  }
66
66
  return n;
67
67
  }
68
68
 
69
- inline size_t charNumByte(isMbcleadFunc func, const unsigned char* p, size_t isize, size_t num)
69
+ inline size_t charNumByte(isMbcleadFunc func, const unsigned char* p,
70
+ size_t isize, size_t num)
70
71
  {
71
72
  size_t n = 0;
72
73
  const unsigned char* end = p + isize;
@@ -86,25 +87,27 @@ inline size_t charNumByte(isMbcleadFunc func, const unsigned char* p, size_t isi
86
87
 
87
88
  /** Trim or fill fc charctor and return bytes that not include fill char bytes.
88
89
  */
89
- inline size_t validateTrim(isMbcleadFunc func, unsigned char* src, size_t maxBytes, int fc)
90
+ inline size_t validateTrim(isMbcleadFunc func, unsigned char* src,
91
+ size_t maxBytes, int fc)
90
92
  {
91
93
  unsigned char* p = src + maxBytes - 1;
92
94
  unsigned char* tmp = p;
93
95
  if (fc == -1)
94
96
  fc = 0x00;
95
- while (func(*tmp) && (--tmp>=src));
97
+ while (func(*tmp) && (--tmp >= src))
98
+ ;
96
99
 
97
- //if (func(*p) && (maxBytes>1) && !func(*(p-1)))
98
- if ((p-tmp) % 2)
100
+ // if (func(*p) && (maxBytes>1) && !func(*(p-1)))
101
+ if ((p - tmp) % 2)
99
102
  {
100
103
  *p = (unsigned char)fc;
101
104
  return maxBytes - 1;
102
105
  }
103
106
  return maxBytes;
104
-
105
107
  }
106
108
 
107
- /** UTF8 Version: Trim or fill fc charctor and return bytes that not include fill char bytes.
109
+ /** UTF8 Version: Trim or fill fc charctor and return bytes that not include
110
+ * fill char bytes.
108
111
  */
109
112
  inline size_t validateTrimUTF8(unsigned char* src, size_t maxBytes, int fc)
110
113
  {
@@ -114,7 +117,7 @@ inline size_t validateTrimUTF8(unsigned char* src, size_t maxBytes, int fc)
114
117
  if ((*p & 0x80) == 0)
115
118
  return maxBytes;
116
119
 
117
- //If multi byte string then first byte is 0xC0.
120
+ // If multi byte string then first byte is 0xC0.
118
121
  while ((*p & 0xC0) != 0xC0)
119
122
  {
120
123
  if (--p < src)
@@ -135,20 +138,25 @@ inline size_t validateTrimUTF8(unsigned char* src, size_t maxBytes, int fc)
135
138
  return p - src;
136
139
  }
137
140
 
138
- inline int isMbcCP932(unsigned int c) {return ((c >= 0x81) && (c <= 0x9F)) || ((c >= 0xE0) && (c <= 0xFC));
141
+ inline int isMbcCP932(unsigned int c)
142
+ {
143
+ return ((c >= 0x81) && (c <= 0x9F)) || ((c >= 0xE0) && (c <= 0xFC));
139
144
  }
140
145
 
141
146
  // Trim or fill fc charctor and return bytes.
142
- inline size_t charNumTrim(int codePage, char* src, size_t inputsize, size_t maxCharnum, int fc)
147
+ inline size_t charNumTrim(int codePage, char* src, size_t inputsize,
148
+ size_t maxCharnum, int fc)
143
149
  {
144
150
  size_t size = inputsize;
145
151
  switch (codePage)
146
152
  {
147
- case CP_UTF8: size = charNumByteUtf8((unsigned char*)src, inputsize, maxCharnum);
153
+ case CP_UTF8:
154
+ size = charNumByteUtf8((unsigned char*)src, inputsize, maxCharnum);
148
155
  break;
149
- case 932: size = charNumByte(isMbcCP932, (unsigned char*)src, inputsize, maxCharnum);
156
+ case 932:
157
+ size =
158
+ charNumByte(isMbcCP932, (unsigned char*)src, inputsize, maxCharnum);
150
159
  break;
151
-
152
160
  }
153
161
  if (size && (fc != -1))
154
162
  memset(src + size, fc, inputsize - size);
@@ -156,7 +164,8 @@ inline size_t charNumTrim(int codePage, char* src, size_t inputsize, size_t maxC
156
164
  }
157
165
 
158
166
  // Wide version: Trim or fill fc charctor and return wide char number..
159
- inline size_t charNumTrim(int codePage, WCHAR* src, size_t inputsize, size_t maxCharnum, int fc)
167
+ inline size_t charNumTrim(int codePage, WCHAR* src, size_t inputsize,
168
+ size_t maxCharnum, int fc)
160
169
  {
161
170
  WCHAR* end = src + inputsize;
162
171
  WCHAR* p = src;
@@ -179,13 +188,16 @@ inline size_t validateTrim(int codePage, char* src, size_t maxlen, int fc)
179
188
  {
180
189
  switch (codePage)
181
190
  {
182
- case CP_UTF8: return validateTrimUTF8((unsigned char*)src, maxlen, fc);
183
- case 932: return validateTrim(isMbcCP932, (unsigned char*)src, maxlen, fc);
191
+ case CP_UTF8:
192
+ return validateTrimUTF8((unsigned char*)src, maxlen, fc);
193
+ case 932:
194
+ return validateTrim(isMbcCP932, (unsigned char*)src, maxlen, fc);
184
195
  }
185
196
  return maxlen;
186
197
  }
187
198
 
188
- // Wide Version if invalid end charctor then fill fc char. And return wide charctor number.
199
+ // Wide Version if invalid end charctor then fill fc char. And return wide
200
+ // charctor number.
189
201
  inline size_t validateTrim(int codePage, WCHAR* src, size_t maxlen, int fc)
190
202
  {
191
203
  if (IS_HIGH_SURROGATE(src[maxlen - 1]))
@@ -202,56 +214,72 @@ class stringConverter
202
214
 
203
215
  public:
204
216
  stringConverter(unsigned int src_codPage, unsigned int exec_codePage)
205
- : m_codePage(src_codPage), m_exec_codePage(exec_codePage) {}
217
+ : m_codePage(src_codPage), m_exec_codePage(exec_codePage)
218
+ {
219
+ }
206
220
 
207
- inline void setCodePage(unsigned int src_codPage) {m_codePage = src_codPage;}
221
+ inline void setCodePage(unsigned int src_codPage)
222
+ {
223
+ m_codePage = src_codPage;
224
+ }
208
225
 
209
- inline void setExecCodePage(unsigned int codPage) {m_exec_codePage = codPage;}
226
+ inline void setExecCodePage(unsigned int codPage)
227
+ {
228
+ m_exec_codePage = codPage;
229
+ }
210
230
 
211
- inline unsigned int execCodePage() const {return m_exec_codePage;};
231
+ inline unsigned int execCodePage() const { return m_exec_codePage; };
212
232
 
213
233
  // wide to codepage. Result is no need Nullterminate.
214
- inline size_t convert(char* to, size_t tsize, const WCHAR* from, size_t fsize)
234
+ inline size_t convert(char* to, size_t tsize, const WCHAR* from,
235
+ size_t fsize)
215
236
  {
216
237
  to[tsize - 1] = 0x00;
217
- size_t len = WideCharToMultiByte(m_codePage, (m_codePage == CP_UTF8) ? 0 :
218
- WC_COMPOSITECHECK, from, (int)fsize, to, (int)tsize, NULL, NULL);
238
+ size_t len = WideCharToMultiByte(
239
+ m_codePage, (m_codePage == CP_UTF8) ? 0 : WC_COMPOSITECHECK, from,
240
+ (int)fsize, to, (int)tsize, NULL, NULL);
219
241
  if (len == 0)
220
242
  return tsize - (to[tsize - 1] ? 0 : 1);
221
243
  return len;
222
244
  }
223
245
 
224
- inline size_t convert(WCHAR* to, size_t tsize, const char* from, size_t fsize)
246
+ inline size_t convert(WCHAR* to, size_t tsize, const char* from,
247
+ size_t fsize)
225
248
  {
226
249
  to[tsize - 1] = 0x00;
227
- size_t len = MultiByteToWideChar(m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 :
228
- MB_PRECOMPOSED, from, (int)fsize, to, (int)tsize);
250
+ size_t len = MultiByteToWideChar(
251
+ m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
252
+ from, (int)fsize, to, (int)tsize);
229
253
  if (len == 0)
230
254
  return tsize - (to[tsize - 1] ? 0 : 1);
231
255
  return len;
232
-
233
256
  }
234
257
 
235
- inline size_t convert(WCHAR* to, size_t tsize, const WCHAR* from, size_t fsize)
258
+ inline size_t convert(WCHAR* to, size_t tsize, const WCHAR* from,
259
+ size_t fsize)
236
260
  {
237
261
  assert(0);
238
262
  return fsize;
239
263
  }
240
264
 
241
- inline size_t convert(char* to, size_t tsize, const char* from, size_t fsize)
265
+ inline size_t convert(char* to, size_t tsize, const char* from,
266
+ size_t fsize)
242
267
  {
243
268
  size_t size = 0;
244
269
  #ifdef _WIN32
245
- size = MultiByteToWideChar(m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 :
246
- MB_PRECOMPOSED, from, (int)fsize, NULL, (int)0);
270
+ size = MultiByteToWideChar(
271
+ m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
272
+ from, (int)fsize, NULL, (int)0);
247
273
  WCHAR* ws = new WCHAR[++size];
248
- size = MultiByteToWideChar(m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 :
249
- MB_PRECOMPOSED, from, (int)fsize, ws, (int)size);
274
+ size = MultiByteToWideChar(
275
+ m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
276
+ from, (int)fsize, ws, (int)size);
250
277
 
251
278
  to[tsize - 1] = 0x00;
252
- size = WideCharToMultiByte(m_codePage, (m_codePage == CP_UTF8) ? 0 : WC_COMPOSITECHECK, ws,
279
+ size = WideCharToMultiByte(
280
+ m_codePage, (m_codePage == CP_UTF8) ? 0 : WC_COMPOSITECHECK, ws,
253
281
  (int)size, to, (int)tsize, NULL, NULL);
254
- delete[]ws;
282
+ delete[] ws;
255
283
  if (size == 0)
256
284
  size = tsize - (to[tsize - 1] ? 0 : 1);
257
285
  #else
@@ -264,15 +292,25 @@ public:
264
292
  }
265
293
 
266
294
  // codepage to wide. Result is need Nullterminate.
267
- inline size_t revert(WCHAR* to, size_t tsize, const char* from, size_t fsize) {
268
- return MultiByteToWideChar(m_codePage, (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED, from,
269
- (int)fsize, to, (int)tsize);}
295
+ inline size_t revert(WCHAR* to, size_t tsize, const char* from,
296
+ size_t fsize)
297
+ {
298
+ return MultiByteToWideChar(m_codePage,
299
+ (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
300
+ from, (int)fsize, to, (int)tsize);
301
+ }
270
302
 
271
- inline size_t revert(char* to, size_t tsize, const WCHAR* from, size_t fsize) {
272
- return WideCharToMultiByte(m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 :
273
- WC_COMPOSITECHECK, from, (int)fsize, to, (int)tsize, NULL, NULL);}
303
+ inline size_t revert(char* to, size_t tsize, const WCHAR* from,
304
+ size_t fsize)
305
+ {
306
+ return WideCharToMultiByte(
307
+ m_exec_codePage,
308
+ (m_exec_codePage == CP_UTF8) ? 0 : WC_COMPOSITECHECK, from,
309
+ (int)fsize, to, (int)tsize, NULL, NULL);
310
+ }
274
311
 
275
- inline size_t revert(WCHAR* to, size_t tsize, const WCHAR* from, size_t fsize)
312
+ inline size_t revert(WCHAR* to, size_t tsize, const WCHAR* from,
313
+ size_t fsize)
276
314
  {
277
315
  assert(0);
278
316
  return fsize;
@@ -282,14 +320,18 @@ public:
282
320
  {
283
321
  size_t size = 0;
284
322
  #ifdef _WIN32
285
- size = MultiByteToWideChar(m_codePage, (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED, from,
286
- (int)fsize, NULL, (int)0);
323
+ size = MultiByteToWideChar(m_codePage,
324
+ (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
325
+ from, (int)fsize, NULL, (int)0);
287
326
  WCHAR* ws = new WCHAR[++size];
288
- size = MultiByteToWideChar(m_codePage, (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED, from,
289
- (int)fsize, ws, (int)size);
290
- size = WideCharToMultiByte(m_exec_codePage, (m_exec_codePage == CP_UTF8) ? 0 :
291
- WC_COMPOSITECHECK, ws, (int)size, to, (int)tsize, NULL, NULL);
292
- delete[]ws;
327
+ size = MultiByteToWideChar(m_codePage,
328
+ (m_codePage == CP_UTF8) ? 0 : MB_PRECOMPOSED,
329
+ from, (int)fsize, ws, (int)size);
330
+ size = WideCharToMultiByte(m_exec_codePage, (m_exec_codePage == CP_UTF8)
331
+ ? 0
332
+ : WC_COMPOSITECHECK,
333
+ ws, (int)size, to, (int)tsize, NULL, NULL);
334
+ delete[] ws;
293
335
  #else
294
336
  if (m_exec_codePage == CP_UTF8)
295
337
  size = bzs::env::mbctou8(from, fsize, to, tsize);
@@ -299,29 +341,30 @@ public:
299
341
  return size;
300
342
  }
301
343
 
302
- inline bool isNeedConvert() const {return (m_codePage != m_exec_codePage);}
303
-
344
+ inline bool isNeedConvert() const
345
+ {
346
+ return (m_codePage != m_exec_codePage);
347
+ }
304
348
  };
305
349
 
306
350
  typedef stringConverter converter_type;
307
351
 
308
352
  class myCharStoreBase
309
353
  {
310
- fielddef& m_fd;
354
+ const fielddef& m_fd;
311
355
 
312
356
  public:
313
- inline myCharStoreBase(fielddef& fd) : m_fd(fd) {};
357
+ inline myCharStoreBase(const fielddef& fd) : m_fd(fd){};
314
358
 
315
- inline size_t maxStoreBytes() const {return m_fd.len;};
359
+ inline size_t maxStoreBytes() const { return m_fd.len; };
316
360
 
317
- inline int padChar() const {return 0x20;};
361
+ inline int padChar() const { return 0x20; };
318
362
 
319
- inline int storeOffsetBytes() const {return 0;};
363
+ inline int storeOffsetBytes() const { return 0; };
320
364
 
321
- inline int maxCharNum() const {return m_fd.charNum();}
322
-
323
- inline bool isNeedReadCopy() const {return true;}
365
+ inline int maxCharNum() const { return m_fd.charNum(); }
324
366
 
367
+ inline bool isNeedReadCopy() const { return true; }
325
368
  };
326
369
 
327
370
  typedef myCharStoreBase myWcharStore;
@@ -329,65 +372,68 @@ typedef myCharStoreBase myCharStore;
329
372
 
330
373
  class myVarCharStoreBase
331
374
  {
332
- fielddef& m_fd;
375
+ const fielddef& m_fd;
333
376
 
334
377
  public:
335
- inline myVarCharStoreBase(fielddef& fd) : m_fd(fd) {};
336
-
337
- inline size_t maxStoreBytes() const {return m_fd.len - m_fd.varLenBytes();};
378
+ inline myVarCharStoreBase(const fielddef& fd) : m_fd(fd){};
338
379
 
339
- inline int padChar() const {return -1;};
380
+ inline size_t maxStoreBytes() const
381
+ {
382
+ return m_fd.len - m_fd.varLenBytes();
383
+ };
340
384
 
341
- inline int storeOffsetBytes() const {return m_fd.varLenBytes();};
385
+ inline int padChar() const { return -1; };
342
386
 
343
- inline int maxCharNum() const {return m_fd.charNum();}
387
+ inline int storeOffsetBytes() const { return m_fd.varLenBytes(); };
344
388
 
345
- inline bool isNeedReadCopy() const {return true;}
389
+ inline int maxCharNum() const { return m_fd.charNum(); }
346
390
 
391
+ inline bool isNeedReadCopy() const { return true; }
347
392
  };
348
393
 
349
394
  typedef myVarCharStoreBase myWvarCharStore;
350
395
  typedef myVarCharStoreBase myVarCharStore;
351
396
 
352
-
353
397
  class myVarBinaryStoreBase
354
398
  {
355
- fielddef& m_fd;
399
+ const fielddef& m_fd;
356
400
 
357
401
  public:
358
- inline myVarBinaryStoreBase(fielddef& fd) : m_fd(fd) {};
402
+ inline myVarBinaryStoreBase(const fielddef& fd) : m_fd(fd){};
359
403
 
360
- inline size_t maxStoreBytes() const {return m_fd.len - m_fd.varLenBytes();};
404
+ inline size_t maxStoreBytes() const
405
+ {
406
+ return m_fd.len - m_fd.varLenBytes();
407
+ };
361
408
 
362
- inline int padChar() const {return -1;};
409
+ inline int padChar() const { return -1; };
363
410
 
364
- inline int storeOffsetBytes() const {return m_fd.varLenBytes();};
411
+ inline int storeOffsetBytes() const { return m_fd.varLenBytes(); };
365
412
 
366
- inline int maxCharNum() const {return -1;}
413
+ inline int maxCharNum() const { return -1; }
367
414
 
368
- inline bool isNeedReadCopy() const {return true;}
415
+ inline bool isNeedReadCopy() const { return true; }
369
416
  };
370
417
 
371
-
372
418
  typedef myVarBinaryStoreBase myWvarBinaryStore;
373
419
  typedef myVarBinaryStoreBase myVarBinaryStore;
374
420
 
375
421
  class myBinaryStoreBase
376
422
  {
377
- fielddef& m_fd;
423
+ const fielddef& m_fd;
378
424
 
379
425
  public:
380
- inline myBinaryStoreBase(fielddef& fd) : m_fd(fd) {};
426
+ inline myBinaryStoreBase(const fielddef& fd) : m_fd(fd){};
381
427
 
382
- inline size_t maxStoreBytes() const {return m_fd.len;};
428
+ inline size_t maxStoreBytes() const { return m_fd.len; };
383
429
 
384
- inline int padChar() const {return 0;};
430
+ inline int padChar() const { return 0; };
385
431
 
386
- inline int storeOffsetBytes() const {return 0;};
432
+ inline int storeOffsetBytes() const { return 0; };
387
433
 
388
- inline int maxCharNum() const {return -1;}
434
+ inline int maxCharNum() const { return -1; }
389
435
 
390
- inline bool isNeedReadCopy() const {return true;}
436
+ inline bool isNeedReadCopy() const { return true; }
391
437
  };
392
438
 
393
439
  typedef myBinaryStoreBase myWbinaryStore;
@@ -395,78 +441,94 @@ typedef myBinaryStoreBase myBinaryStore;
395
441
 
396
442
  class zstringStore
397
443
  {
398
- fielddef& m_fd;
444
+ const fielddef& m_fd;
399
445
 
400
446
  public:
401
- inline zstringStore(fielddef& fd) : m_fd(fd) {};
447
+ inline zstringStore(const fielddef& fd) : m_fd(fd){};
402
448
 
403
- inline size_t maxStoreBytes() const {return m_fd.len - 1;};
449
+ inline size_t maxStoreBytes() const { return m_fd.len - 1; };
404
450
 
405
- inline int padChar() const {return 0;};
451
+ inline int padChar() const { return 0; };
406
452
 
407
- inline int storeOffsetBytes() const {return 0;};
453
+ inline int storeOffsetBytes() const { return 0; };
408
454
 
409
- inline int maxCharNum() const {return -1;}
455
+ inline int maxCharNum() const { return -1; }
410
456
 
411
- inline bool isNeedReadCopy() const {return false;}
457
+ inline bool isNeedReadCopy() const { return false; }
412
458
  };
413
459
 
414
460
  class wzstringStore
415
461
  {
416
- fielddef& m_fd;
462
+ const fielddef& m_fd;
417
463
 
418
464
  public:
419
- inline wzstringStore(fielddef& fd) : m_fd(fd) {};
465
+ inline wzstringStore(const fielddef& fd) : m_fd(fd){};
420
466
 
421
- inline size_t maxStoreBytes() const {return m_fd.len -sizeof(short);};
467
+ inline size_t maxStoreBytes() const { return m_fd.len - sizeof(short); };
422
468
 
423
- inline int padChar() const {return 0;};
469
+ inline int padChar() const { return 0; };
424
470
 
425
- inline int storeOffsetBytes() const {return 0;};
471
+ inline int storeOffsetBytes() const { return 0; };
426
472
 
427
- inline int maxCharNum() const {return -1;}
473
+ inline int maxCharNum() const { return -1; }
428
474
 
429
- inline bool isNeedReadCopy() const {return false;}
475
+ inline bool isNeedReadCopy() const { return false; }
430
476
  };
431
477
 
432
478
  class stringStoreBase
433
479
  {
434
- fielddef& m_fd;
480
+ const fielddef& m_fd;
435
481
 
436
482
  public:
437
- inline stringStoreBase(fielddef& fd) : m_fd(fd) {};
483
+ inline stringStoreBase(const fielddef& fd) : m_fd(fd){};
438
484
 
439
- inline size_t maxStoreBytes() const {return m_fd.len;};
485
+ inline size_t maxStoreBytes() const { return m_fd.len; };
440
486
 
441
- inline int padChar() const {return 0x20;};
487
+ inline int padChar() const { return 0x20; };
442
488
 
443
- inline int storeOffsetBytes() const {return 0;};
489
+ inline int storeOffsetBytes() const { return 0; };
444
490
 
445
- inline int maxCharNum() const {return -1;}
491
+ inline int maxCharNum() const { return -1; }
446
492
 
447
- inline bool isNeedReadCopy() const {return true;}
493
+ inline bool isNeedReadCopy() const { return true; }
448
494
  };
449
495
 
450
-
451
496
  typedef stringStoreBase wstringStore;
452
497
  typedef stringStoreBase stringStore;
453
498
 
499
+ inline size_t strlen_t(const WCHAR* p)
500
+ {
501
+ return strlen16(p);
502
+ }
454
503
 
455
- inline size_t strlen_t(const WCHAR* p) {return strlen16(p);}
456
-
457
- inline size_t strlen_t(const char* p) {return strlen(p);}
504
+ inline size_t strlen_t(const char* p)
505
+ {
506
+ return strlen(p);
507
+ }
458
508
 
459
- inline void* memcpy_t(void *dest, const void *src, size_t count) {return memcpy(dest, src, count);}
509
+ inline void* memcpy_t(void* dest, const void* src, size_t count)
510
+ {
511
+ return memcpy(dest, src, count);
512
+ }
460
513
 
461
- inline WCHAR* memcpy_t(WCHAR* dest, const WCHAR *src, size_t count) {
462
- return wmemcpy(dest, src, count);}
514
+ inline WCHAR* memcpy_t(WCHAR* dest, const WCHAR* src, size_t count)
515
+ {
516
+ return wmemcpy(dest, src, count);
517
+ }
463
518
 
464
- inline void* memset_t(void *dest, int c, size_t count) {return memset(dest, c, count);}
519
+ inline void* memset_t(void* dest, int c, size_t count)
520
+ {
521
+ return memset(dest, c, count);
522
+ }
465
523
 
466
- inline WCHAR* memset_t(WCHAR* dest, int c, size_t count) {return wmemset16(dest, (WCHAR)c, count);}
524
+ inline WCHAR* memset_t(WCHAR* dest, int c, size_t count)
525
+ {
526
+ return wmemset16(dest, (WCHAR)c, count);
527
+ }
467
528
 
468
- template<typename _SF, typename store_type, typename T>
469
- void store(char* ptr, const T* data, fielddef& fd, stringConverter* cv, bool usePad = true)
529
+ template <typename _SF, typename store_type, typename T>
530
+ void store(char* ptr, const T* data, const fielddef& fd, stringConverter* cv,
531
+ bool usePad = true)
470
532
  {
471
533
  _SF sf(fd);
472
534
 
@@ -491,7 +553,8 @@ void store(char* ptr, const T* data, fielddef& fd, stringConverter* cv, bool use
491
553
  }
492
554
  int fc = usePad ? sf.padChar() : -1;
493
555
 
494
- // Trim by max charctor number (not char type length) and invalid mbc lead byte.
556
+ // Trim by max charctor number (not char type length) and invalid mbc lead
557
+ // byte.
495
558
  int maxCharnum = sf.maxCharNum();
496
559
  if (maxCharnum != -1)
497
560
  len = charNumTrim(fd.codePage(), strPtr, len, maxCharnum, fc);
@@ -510,8 +573,7 @@ void store(char* ptr, const T* data, fielddef& fd, stringConverter* cv, bool use
510
573
  }
511
574
  }
512
575
 
513
- template<class T>
514
- T* trim(T* src, T* end, int padChar)
576
+ template <class T> T* trim(T* src, T* end, int padChar)
515
577
  {
516
578
  while (src <= --end)
517
579
  {
@@ -525,23 +587,24 @@ T* trim(T* src, T* end, int padChar)
525
587
  #pragma warn -8008
526
588
  #pragma warn -8066
527
589
 
528
- template<class _SF, typename store_type, typename T>
529
- const T* read(char* ptr, ::bzs::rtl::stringBuffer* strBufs, fielddef& fd, stringConverter* cv,
530
- bool isTrimPadChar = false)
590
+ template <class _SF, typename store_type, typename T>
591
+ const T* read(char* ptr, ::bzs::rtl::stringBuffer* strBufs, const fielddef& fd,
592
+ stringConverter* cv, bool isTrimPadChar = false)
531
593
  {
532
594
  _SF sf(fd);
533
595
 
534
596
  int offset = sf.storeOffsetBytes();
535
597
  T* result = (T*)(ptr + offset);
536
- //convert
598
+ // convert
537
599
  size_t len;
538
- if ((typeid(T) != typeid(store_type)) || (cv->isNeedConvert() && (typeid(T) == typeid(char))))
600
+ if ((typeid(T) != typeid(store_type)) ||
601
+ (cv->isNeedConvert() && (typeid(T) == typeid(char))))
539
602
  {
540
603
  len = fd.dataLen((const uchar_td*)ptr) / sizeof(store_type);
541
- size_t olen = len * 2 * sizeof(store_type) + 1; // utf8�ւ�2�{�̉”\��������
604
+ size_t olen =
605
+ len * 2 * sizeof(store_type) + 1; // utf8�ւ�2�{�̉”\��������
542
606
  result = strBufs->getPtr<T>(olen);
543
607
  len = cv->revert(result, olen, (const store_type*)(ptr + offset), len);
544
-
545
608
  }
546
609
  else if (sf.isNeedReadCopy())
547
610
  {
@@ -552,7 +615,6 @@ const T* read(char* ptr, ::bzs::rtl::stringBuffer* strBufs, fielddef& fd, string
552
615
  memcpy(result, ptr + offset, len);
553
616
  }
554
617
  len /= sizeof(store_type);
555
-
556
618
  }
557
619
  else
558
620
  return result; // zstring;
@@ -564,22 +626,25 @@ const T* read(char* ptr, ::bzs::rtl::stringBuffer* strBufs, fielddef& fd, string
564
626
  #pragma warn .8008
565
627
  #pragma warn .8066
566
628
 
567
- template<typename T>
568
- char* blobStore(char* ptr, const T* data, fielddef& fd, stringConverter* cv)
629
+ template <typename T>
630
+ char* blobStore(char* ptr, const T* data, const fielddef& fd,
631
+ stringConverter* cv)
569
632
  {
570
633
  size_t len = strlen_t(data);
571
634
  int offset = fd.len - 8;
572
635
  char* p = NULL;
573
- size_t maxlen = (offset == 1) ? 255 : (offset == 2) ? USHRT_MAX : (offset == 3) ?
574
- USHRT_MAX * 255 : UINT_MAX;
636
+ size_t maxlen =
637
+ (offset == 1) ? 255 : (offset == 2) ? USHRT_MAX : (offset == 3)
638
+ ? USHRT_MAX * 255
639
+ : UINT_MAX;
575
640
  if (len != 0)
576
641
  {
577
- if ((typeid(T) != typeid(char)) || (cv->isNeedConvert() && (typeid(T) == typeid(char))))
642
+ if ((typeid(T) != typeid(char)) ||
643
+ (cv->isNeedConvert() && (typeid(T) == typeid(char))))
578
644
  {
579
645
  maxlen = std::min<size_t>(maxlen, len * 2 * sizeof(T) + 1);
580
646
  p = new char[maxlen];
581
647
  len = cv->convert(p, maxlen, data, len);
582
-
583
648
  }
584
649
  else
585
650
  {
@@ -594,25 +659,25 @@ char* blobStore(char* ptr, const T* data, fielddef& fd, stringConverter* cv)
594
659
  if (p)
595
660
  memcpy(ptr + offset, &(p), sizeof(char*));
596
661
  return p;
597
-
598
662
  }
599
663
  #pragma warn -8004
600
- template<typename T>
601
- const T* readBlob(char* ptr, ::bzs::rtl::stringBuffer* strBufs, fielddef& fd, stringConverter* cv)
664
+ template <typename T>
665
+ const T* readBlob(char* ptr, ::bzs::rtl::stringBuffer* strBufs,
666
+ const fielddef& fd, stringConverter* cv)
602
667
  {
603
668
 
604
669
  int offset = fd.len - 8;
605
670
  T* result = (T*)(ptr + offset);
606
671
  char** pc = (char**)(ptr + fd.blobLenBytes());
607
672
 
608
- if ((typeid(T) != typeid(char)) || (cv->isNeedConvert() && (typeid(T) == typeid(char))))
673
+ if ((typeid(T) != typeid(char)) ||
674
+ (cv->isNeedConvert() && (typeid(T) == typeid(char))))
609
675
  {
610
676
  size_t len = fd.blobDataLen((const uchar_td*)ptr);
611
677
  size_t olen = len * 2 + 1;
612
678
  result = strBufs->getPtr<T>(olen);
613
679
  len = cv->revert(result, olen, *pc, len);
614
680
  result[len] = 0x00;
615
-
616
681
  }
617
682
  else
618
683
  result = (T*)*pc;
@@ -620,9 +685,10 @@ const T* readBlob(char* ptr, ::bzs::rtl::stringBuffer* strBufs, fielddef& fd, st
620
685
  }
621
686
  #pragma warn .8004
622
687
 
623
- }// namespace client
624
- }// namespace tdap
625
- }// namespace protocol
626
- }// namespace db
627
- }// namespace bzs
628
- #endif //BZS_DB_PROTOCOL_TDAP_CLIENT_STRINGCONVERTER_H
688
+ } // namespace client
689
+ } // namespace tdap
690
+ } // namespace protocol
691
+ } // namespace db
692
+ } // namespace bzs
693
+
694
+ #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_STRINGCONVERTER_H