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,13 +12,10 @@
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
- #include <bzs/env/tstring.h>
20
- #pragma hdrstop
21
-
22
19
  #include "datetime.h"
23
20
  #include <string.h>
24
21
  #include <stdio.h>
@@ -27,53 +24,53 @@
27
24
  #include <bzs/env/crosscompile.h>
28
25
  #ifdef LINUX
29
26
  #include <wchar.h>
27
+ #if __clang__
28
+ #include <pthread.h>
29
+ #endif
30
30
  #endif
31
31
 
32
- #pragma package(smart_init) // BCB package
33
- #pragma warning(disable:4996) // VC++ unsafe function
32
+ #pragma package(smart_init) // BCB package
33
+ #pragma warning(disable : 4996) // VC++ unsafe function
34
34
 
35
35
  #undef USETLS
36
- #if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
36
+ #if ((defined(_WIN32) && _MSC_VER) || (__APPLE__ && !defined(__BCPLUSPLUS__)))
37
37
  #define USETLS
38
38
  #endif
39
39
 
40
40
  #ifdef USETLS
41
- extern tls_key g_tlsiID_SC3;
41
+ extern tls_key g_tlsiID_SC3;
42
42
  #else
43
- __THREAD _TCHAR __THREAD_BCB g_date[30];
43
+ __THREAD _TCHAR __THREAD_BCB g_date[30];
44
44
  #endif
45
45
 
46
46
  inline _TCHAR* databuf()
47
47
  {
48
- #ifdef USETLS
49
- _TCHAR* p = (_TCHAR*)tls_getspecific(g_tlsiID_SC3);
50
- if (p == NULL)
51
- {
52
- p = (_TCHAR*)new wchar_t[45];
53
- tls_setspecific(g_tlsiID_SC3, p);
54
- }
55
- return p;
56
- #else
57
- return g_date;
58
- #endif
48
+ #ifdef USETLS
49
+ _TCHAR* p = (_TCHAR*)tls_getspecific(g_tlsiID_SC3);
50
+ if (p == NULL)
51
+ {
52
+ p = (_TCHAR*)new wchar_t[45];
53
+ tls_setspecific(g_tlsiID_SC3, p);
54
+ }
55
+ return p;
56
+ #else
57
+ return g_date;
58
+ #endif
59
59
  }
60
60
 
61
-
62
61
  namespace bzs
63
62
  {
64
63
  namespace rtl
65
64
  {
66
65
 
67
-
68
-
69
- int GetDate(const _TCHAR* NowDate)
66
+ int GetDate(const _TCHAR* NowDate)
70
67
  {
71
68
  int ret;
72
- ret = _ttol(NowDate+8);
69
+ ret = _ttol(NowDate + 8);
73
70
  return ret;
74
71
  }
75
72
 
76
- int GetYear(const _TCHAR* NowDate, bool PrevMonth)
73
+ int GetYear(const _TCHAR* NowDate, bool PrevMonth)
77
74
  {
78
75
  int ret;
79
76
  ret = _ttol(NowDate);
@@ -82,10 +79,10 @@ int GetYear(const _TCHAR* NowDate, bool PrevMonth)
82
79
  return ret;
83
80
  }
84
81
 
85
- int GetMonth(const _TCHAR* NowDate, bool PrevMonth)
82
+ int GetMonth(const _TCHAR* NowDate, bool PrevMonth)
86
83
  {
87
84
  int ret;
88
- ret = _ttol(NowDate+5);
85
+ ret = _ttol(NowDate + 5);
89
86
  if (PrevMonth)
90
87
  ret--;
91
88
  if (ret == 0)
@@ -94,7 +91,7 @@ int GetMonth(const _TCHAR* NowDate, bool PrevMonth)
94
91
  return ret;
95
92
  }
96
93
 
97
- bool IsUrudosi(int Year)
94
+ bool IsUrudosi(int Year)
98
95
  {
99
96
  if ((Year % 4) == 0)
100
97
  {
@@ -108,278 +105,279 @@ bool IsUrudosi(int Year)
108
105
  return false;
109
106
  }
110
107
 
111
- bool GetDatefromYearSerialDays(int year, int Days, _TCHAR* date, bool nextYearRight)
112
- {
113
- //The date of the day counted from the beginning of the year is returned.
114
- //if orver the year then return false.
108
+ bool GetDatefromYearSerialDays(int year, int Days, _TCHAR* date,
109
+ bool nextYearRight)
110
+ {
111
+ // The date of the day counted from the beginning of the year is returned.
112
+ // if orver the year then return false.
115
113
 
116
114
  int mm;
117
115
  int dd = Days;
118
- for (mm=1; mm < 14;mm++)
116
+ for (mm = 1; mm < 14; mm++)
119
117
  {
120
118
  switch (mm)
121
119
  {
122
120
  case 2:
123
- if(IsUrudosi(year))
124
- Days-=29;
121
+ if (IsUrudosi(year))
122
+ Days -= 29;
125
123
  else
126
- Days-=28;
124
+ Days -= 28;
127
125
  break;
128
126
  case 4:
129
127
  case 6:
130
128
  case 9:
131
129
  case 11:
132
- Days-=30;break;
130
+ Days -= 30;
131
+ break;
133
132
  default:
134
- Days-=31;
133
+ Days -= 31;
135
134
  }
136
135
  if (Days <= 0)
137
136
  break;
138
- dd=Days;
137
+ dd = Days;
139
138
  }
140
- bool ret= true;
141
- if ((dd>31)|| (mm==13))
139
+ bool ret = true;
140
+ if ((dd > 31) || (mm == 13))
142
141
  {
143
142
  if (nextYearRight)
144
143
  {
145
144
  year += 1;
146
145
  mm = 1;
147
- }else
148
- {//for old program
146
+ }
147
+ else
148
+ { // for old program
149
149
  dd = 31;
150
150
  mm--;
151
151
  }
152
- ret= false;
152
+ ret = false;
153
153
  }
154
- _stprintf(date,_T("%04d/%02d/%02d"), year,mm,dd);
154
+ _stprintf(date, _T("%04d/%02d/%02d"), year, mm, dd);
155
155
  return ret;
156
156
  }
157
157
 
158
158
  //---------------------------------------------------------------------------
159
159
  int JDate2NumOLD(const _TCHAR* date)
160
- {//1900/01/01 = 2415021
161
- int yy = GetYear(date,false);
162
- int mm = GetMonth(date,false);
163
- int dd = GetDate(date);
164
- int i;
165
-
166
- //The number of leap years
167
- int n = 2415020;
168
- for (i=1900; i < yy; i+= 4)
169
- {
170
- if(IsUrudosi(i))
171
- n+=1;
172
- }
173
- n+= (yy - 1900 ) * 365;
174
- for (i=1; i < mm ;i++)
175
- {
176
- switch(i)
177
- {
178
- case 2:
179
- if(IsUrudosi(yy))
180
- n+=29;
181
- else
182
- n+=28;
183
- break;
184
- case 4:
185
- case 6:
186
- case 9:
187
- case 11:
188
- n+=30;
189
- break;
190
- default:
191
- n+=31;
192
- }
193
- }
194
- n+=dd;
195
- return n;
160
+ { // 1900/01/01 = 2415021
161
+ int yy = GetYear(date, false);
162
+ int mm = GetMonth(date, false);
163
+ int dd = GetDate(date);
164
+ int i;
165
+
166
+ // The number of leap years
167
+ int n = 2415020;
168
+ for (i = 1900; i < yy; i += 4)
169
+ {
170
+ if (IsUrudosi(i))
171
+ n += 1;
172
+ }
173
+ n += (yy - 1900) * 365;
174
+ for (i = 1; i < mm; i++)
175
+ {
176
+ switch (i)
177
+ {
178
+ case 2:
179
+ if (IsUrudosi(yy))
180
+ n += 29;
181
+ else
182
+ n += 28;
183
+ break;
184
+ case 4:
185
+ case 6:
186
+ case 9:
187
+ case 11:
188
+ n += 30;
189
+ break;
190
+ default:
191
+ n += 31;
192
+ }
193
+ }
194
+ n += dd;
195
+ return n;
196
196
  }
197
197
  #ifdef _WIN32
198
198
  //---------------------------------------------------------------------------
199
199
  int JDate2Num(const _NTCHAR* date)
200
200
  {
201
- #ifdef _UNICODE
202
- wchar_t buf[20];
203
- MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, date, -1, buf, 20);
204
- #else
205
- char buf[20];
206
- wtoa(buf, date, 20);
207
- #endif
201
+ #ifdef _UNICODE
202
+ wchar_t buf[20];
203
+ MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, date, -1, buf, 20);
204
+ #else
205
+ char buf[20];
206
+ wtoa(buf, date, 20);
207
+ #endif
208
208
  return JDate2Num(buf);
209
209
  }
210
210
  #endif
211
211
  //---------------------------------------------------------------------------
212
212
  int JDate2Num(const _TCHAR* date)
213
- {//1980/01/01 = 2444240
214
- int yy = GetYear(date,false);
213
+ { // 1980/01/01 = 2444240
214
+ int yy = GetYear(date, false);
215
215
  if (yy < 1980)
216
216
  return JDate2NumOLD(date);
217
217
 
218
- int mm = GetMonth(date,false);
219
- int dd = GetDate(date);
220
- int i;
221
-
218
+ int mm = GetMonth(date, false);
219
+ int dd = GetDate(date);
220
+ int i;
222
221
 
223
- //The number of leap years
224
- int n = 2444239;
225
- for (i=1980; i < yy; i+= 4)
226
- {
227
- if(IsUrudosi(i))
228
- n+=1;
229
- }
230
- n+= (yy - 1980 ) * 365;
231
- for (i=1; i < mm ;i++)
232
- {
233
- switch(i)
234
- {
235
- case 2:
236
- if(IsUrudosi(yy))
237
- n+=29;
238
- else
239
- n+=28;
240
- break;
241
- case 4:
242
- case 6:
243
- case 9:
244
- case 11:
245
- n+=30;
246
- break;
247
- default:
248
- n+=31;
249
- }
250
- }
251
- n+=dd;
252
- return n;
222
+ // The number of leap years
223
+ int n = 2444239;
224
+ for (i = 1980; i < yy; i += 4)
225
+ {
226
+ if (IsUrudosi(i))
227
+ n += 1;
228
+ }
229
+ n += (yy - 1980) * 365;
230
+ for (i = 1; i < mm; i++)
231
+ {
232
+ switch (i)
233
+ {
234
+ case 2:
235
+ if (IsUrudosi(yy))
236
+ n += 29;
237
+ else
238
+ n += 28;
239
+ break;
240
+ case 4:
241
+ case 6:
242
+ case 9:
243
+ case 11:
244
+ n += 30;
245
+ break;
246
+ default:
247
+ n += 31;
248
+ }
249
+ }
250
+ n += dd;
251
+ return n;
253
252
  }
254
253
  //---------------------------------------------------------------------------
255
254
  _TCHAR* JNum2DateOLD(int n)
256
- {//1900/01/01 = 2415021
257
- bool uru = false;
258
- if (n < 2415021)
259
- return NULL;
260
-
261
- int yy = 1900;
262
- n -= 2415020;
263
- while (1)
264
- {
265
- if(uru)
266
- {
267
- if (n <= 366)
268
- break;
269
- }
270
- else
271
- {
272
- if (n <= 365)
273
- break;
274
- }
275
- if(uru)
276
- n -= 366;
277
- else
278
- n -= 365;
279
- yy++;
280
- uru = IsUrudosi(yy);
281
- }
282
- GetDatefromYearSerialDays(yy, n, databuf());
283
- return databuf();
255
+ { // 1900/01/01 = 2415021
256
+ bool uru = false;
257
+ if (n < 2415021)
258
+ return NULL;
259
+
260
+ int yy = 1900;
261
+ n -= 2415020;
262
+ while (1)
263
+ {
264
+ if (uru)
265
+ {
266
+ if (n <= 366)
267
+ break;
268
+ }
269
+ else
270
+ {
271
+ if (n <= 365)
272
+ break;
273
+ }
274
+ if (uru)
275
+ n -= 366;
276
+ else
277
+ n -= 365;
278
+ yy++;
279
+ uru = IsUrudosi(yy);
280
+ }
281
+ GetDatefromYearSerialDays(yy, n, databuf());
282
+ return databuf();
284
283
  }
285
284
 
286
285
  //---------------------------------------------------------------------------
287
286
  const _TCHAR* JNum2Date(int n)
288
- {//1980/01/01 = 2444240
289
- bool uru = true;
290
- if (n < 2444240)
287
+ { // 1980/01/01 = 2444240
288
+ bool uru = true;
289
+ if (n < 2444240)
291
290
  return JNum2DateOLD(n);
292
291
 
293
- int yy = 1980;
294
- n -= 2444239;
295
- while (1)
296
- {
297
- if(uru)
298
- {
299
- if (n <= 366)
300
- break;
301
- }
302
- else
303
- {
304
- if (n <= 365)
305
- break;
306
- }
307
- if(uru)
308
- n -= 366;
309
- else
310
- n -= 365;
311
- yy++;
312
- uru = IsUrudosi(yy);
313
- }
314
- GetDatefromYearSerialDays(yy, n, databuf());
315
- return databuf();
292
+ int yy = 1980;
293
+ n -= 2444239;
294
+ while (1)
295
+ {
296
+ if (uru)
297
+ {
298
+ if (n <= 366)
299
+ break;
300
+ }
301
+ else
302
+ {
303
+ if (n <= 365)
304
+ break;
305
+ }
306
+ if (uru)
307
+ n -= 366;
308
+ else
309
+ n -= 365;
310
+ yy++;
311
+ uru = IsUrudosi(yy);
312
+ }
313
+ GetDatefromYearSerialDays(yy, n, databuf());
314
+ return databuf();
316
315
  }
317
316
 
318
317
  //---------------------------------------------------------------------------
319
318
  long StrToLongDate(_TCHAR* strdat)
320
- { //Conver string date to long. ex : 20011231
321
- _TCHAR buf[9];
322
- _tcsncpy(buf, strdat, 4);
323
- _tcsncpy(buf + 4,strdat + 5, 2);
324
- _tcsncpy(buf + 6,strdat + 8, 2);
325
- buf[8] = 0x00;
326
- return _ttol(buf);
319
+ { // Conver string date to long. ex : 20011231
320
+ _TCHAR buf[9];
321
+ _tcsncpy(buf, strdat, 4);
322
+ _tcsncpy(buf + 4, strdat + 5, 2);
323
+ _tcsncpy(buf + 6, strdat + 8, 2);
324
+ buf[8] = 0x00;
325
+ return _ttol(buf);
327
326
  }
328
327
  //---------------------------------------------------------------------------
329
- _TCHAR* LongToStrDate(long ldat , _TCHAR* strdat)
330
- { //Conver long date to string date�B
331
- //No check long date is valid.
332
- _TCHAR buf[11];
333
- if (ldat == 0)
334
- _tcscpy(strdat,_T("0000/00/00"));
335
- else
336
- {
337
- _stprintf_s(buf, 11, _T("%08ld"),ldat);
338
-
339
- _tcsncpy(strdat, buf, 4);
340
- strdat[4] = '/';
341
- _tcsncpy(strdat + 5, buf + 4, 2);
342
- strdat[7] = '/';
343
- _tcsncpy(strdat + 8, buf + 6, 2);
344
- strdat[10] = 0x00;
345
- }
346
- return strdat;
328
+ _TCHAR* LongToStrDate(long ldat, _TCHAR* strdat)
329
+ { // Conver long date to string date�B
330
+ // No check long date is valid.
331
+ _TCHAR buf[11];
332
+ if (ldat == 0)
333
+ _tcscpy(strdat, _T("0000/00/00"));
334
+ else
335
+ {
336
+ _stprintf_s(buf, 11, _T("%08ld"), ldat);
337
+
338
+ _tcsncpy(strdat, buf, 4);
339
+ strdat[4] = '/';
340
+ _tcsncpy(strdat + 5, buf + 4, 2);
341
+ strdat[7] = '/';
342
+ _tcsncpy(strdat + 8, buf + 6, 2);
343
+ strdat[10] = 0x00;
344
+ }
345
+ return strdat;
347
346
  }
348
347
  //---------------------------------------------------------------------------
349
- _TCHAR* LongToStrTime(long ltime , _TCHAR* strdat)
350
- { //Conver long time to string time�B
351
- //No check long time is valid.
352
- _TCHAR buf[9];
353
- _stprintf_s(buf, 9, _T("%ld"),ltime);
354
- _tcsncpy(strdat,buf,2);
355
- strdat[2] = ':';
356
- _tcsncpy(strdat + 3, buf + 2, 2);
357
- strdat[5] = ':';
358
- _tcsncpy(strdat + 6, buf + 4, 2);
359
- strdat[8] = 0x00;
360
- return strdat;
348
+ _TCHAR* LongToStrTime(long ltime, _TCHAR* strdat)
349
+ { // Conver long time to string time�B
350
+ // No check long time is valid.
351
+ _TCHAR buf[9];
352
+ _stprintf_s(buf, 9, _T("%ld"), ltime);
353
+ _tcsncpy(strdat, buf, 2);
354
+ strdat[2] = ':';
355
+ _tcsncpy(strdat + 3, buf + 2, 2);
356
+ strdat[5] = ':';
357
+ _tcsncpy(strdat + 6, buf + 4, 2);
358
+ strdat[8] = 0x00;
359
+ return strdat;
361
360
  }
362
361
  //---------------------------------------------------------------------------
363
362
  const char* dateTimeStr(char* buf, unsigned int bufsize)
364
363
  {
365
- struct tm* date;
366
- time_t now;
367
- time(&now);
364
+ struct tm* date;
365
+ time_t now;
366
+ time(&now);
368
367
  #ifdef __MINGW32__
369
- date = localtime(&now);
368
+ date = localtime(&now);
370
369
  #else
371
- struct tm tmp;
372
- date = &tmp;
373
- localtime_x(date, &now);
374
- #endif
375
- sprintf_s(buf, bufsize, "%04d/%02d/%02d %02d:%02d:%02d"
376
- ,date->tm_year + 1900, date->tm_mon + 1,date->tm_mday
377
- ,date->tm_hour, date->tm_min, date->tm_sec);
378
- return buf;
370
+ struct tm tmp;
371
+ date = &tmp;
372
+ localtime_x(date, &now);
373
+ #endif
374
+ sprintf_s(buf, bufsize, "%04d/%02d/%02d %02d:%02d:%02d",
375
+ date->tm_year + 1900, date->tm_mon + 1, date->tm_mday,
376
+ date->tm_hour, date->tm_min, date->tm_sec);
377
+ return buf;
379
378
  }
380
379
 
380
+ } // namespace rtl
381
+ } // namespace bzs
381
382
 
382
- }//namespace rtl
383
- }//namespace bzs
384
-
385
- #pragma warning(default:4996)
383
+ #pragma warning(default : 4996)
@@ -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
 
@@ -27,27 +27,27 @@ namespace bzs
27
27
  namespace rtl
28
28
  {
29
29
  //---------------------------------------------------------------------------
30
- PACKAGE int GetYear(const _TCHAR* NowDate, bool PrevMonth);
31
- PACKAGE int GetMonth(const _TCHAR* NowDate, bool PrevMonth);
32
- PACKAGE int GetDate(const _TCHAR* NowDate);
33
- PACKAGE bool IsUrudosi(int Year);
34
- PACKAGE bool GetDatefromYearSerialDays(int year, int Days, _TCHAR* date
35
- , bool nextYearRight=false);
30
+ PACKAGE int GetYear(const _TCHAR* NowDate, bool PrevMonth);
31
+ PACKAGE int GetMonth(const _TCHAR* NowDate, bool PrevMonth);
32
+ PACKAGE int GetDate(const _TCHAR* NowDate);
33
+ PACKAGE bool IsUrudosi(int Year);
34
+ PACKAGE bool GetDatefromYearSerialDays(int year, int Days, _TCHAR* date,
35
+ bool nextYearRight = false);
36
36
 
37
- PACKAGE int JDate2Num(const _TCHAR* date);
37
+ PACKAGE int JDate2Num(const _TCHAR* date);
38
38
 
39
39
  #ifdef _WIN32
40
- PACKAGE int JDate2Num(const _NTCHAR* date);
40
+ PACKAGE int JDate2Num(const _NTCHAR* date);
41
41
  #endif
42
42
 
43
43
  PACKAGE const _TCHAR* JNum2Date(int ldate);
44
44
 
45
- PACKAGE long StrToLongDate(_TCHAR* pStrDate);
46
- PACKAGE _TCHAR* LongToStrDate(long , _TCHAR* );
47
- PACKAGE _TCHAR* LongToStrTime(long , _TCHAR* );
45
+ PACKAGE long StrToLongDate(_TCHAR* pStrDate);
46
+ PACKAGE _TCHAR* LongToStrDate(long, _TCHAR*);
47
+ PACKAGE _TCHAR* LongToStrTime(long, _TCHAR*);
48
48
  PACKAGE const char* dateTimeStr(char* buf, unsigned int bufsize);
49
49
 
50
- }//namespace rtl
51
- }//namespace bzs
50
+ } // namespace rtl
51
+ } // namespace bzs
52
52
 
53
- #endif//BZS_RT_DATETIME_H
53
+ #endif // BZS_RT_DATETIME_H