ooxml_crypt 0.1.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 (264) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +58 -0
  5. data/Rakefile +12 -0
  6. data/bin/console +15 -0
  7. data/bin/setup +8 -0
  8. data/ext/ooxml_crypt/extconf.rb +18 -0
  9. data/ext/ooxml_crypt/ooxml_crypt.c +27 -0
  10. data/ext/ooxml_crypt/ooxml_crypt.h +7 -0
  11. data/lib/ooxml_crypt/version.rb +5 -0
  12. data/lib/ooxml_crypt.rb +75 -0
  13. data/vendor/cybozulib/.github/workflows/main.yml +12 -0
  14. data/vendor/cybozulib/.gitignore +5 -0
  15. data/vendor/cybozulib/CMakeLists.txt +6 -0
  16. data/vendor/cybozulib/COPYRIGHT +27 -0
  17. data/vendor/cybozulib/Makefile +26 -0
  18. data/vendor/cybozulib/bin/libeay32.dll +0 -0
  19. data/vendor/cybozulib/bin/libmecab.dll +0 -0
  20. data/vendor/cybozulib/bin/ssleay32.dll +0 -0
  21. data/vendor/cybozulib/common.mk +116 -0
  22. data/vendor/cybozulib/common.props +25 -0
  23. data/vendor/cybozulib/cybozulib.sln +286 -0
  24. data/vendor/cybozulib/debug.props +14 -0
  25. data/vendor/cybozulib/include/cybozu/array.hpp +197 -0
  26. data/vendor/cybozulib/include/cybozu/atoi.hpp +238 -0
  27. data/vendor/cybozulib/include/cybozu/atomic.hpp +146 -0
  28. data/vendor/cybozulib/include/cybozu/base64.hpp +210 -0
  29. data/vendor/cybozulib/include/cybozu/benchmark.hpp +212 -0
  30. data/vendor/cybozulib/include/cybozu/bfd.hpp +105 -0
  31. data/vendor/cybozulib/include/cybozu/bit_operation.hpp +139 -0
  32. data/vendor/cybozulib/include/cybozu/bitvector.hpp +358 -0
  33. data/vendor/cybozulib/include/cybozu/condition_variable.hpp +113 -0
  34. data/vendor/cybozulib/include/cybozu/condition_variable_cs.hpp +74 -0
  35. data/vendor/cybozulib/include/cybozu/config.hpp +392 -0
  36. data/vendor/cybozulib/include/cybozu/critical_section.hpp +60 -0
  37. data/vendor/cybozulib/include/cybozu/crypto.hpp +321 -0
  38. data/vendor/cybozulib/include/cybozu/csucvector.hpp +624 -0
  39. data/vendor/cybozulib/include/cybozu/csv.hpp +294 -0
  40. data/vendor/cybozulib/include/cybozu/data_type.hpp +27 -0
  41. data/vendor/cybozulib/include/cybozu/endian.hpp +224 -0
  42. data/vendor/cybozulib/include/cybozu/env.hpp +63 -0
  43. data/vendor/cybozulib/include/cybozu/event.hpp +122 -0
  44. data/vendor/cybozulib/include/cybozu/exception.hpp +253 -0
  45. data/vendor/cybozulib/include/cybozu/file.hpp +626 -0
  46. data/vendor/cybozulib/include/cybozu/fmindex.hpp +291 -0
  47. data/vendor/cybozulib/include/cybozu/format.hpp +93 -0
  48. data/vendor/cybozulib/include/cybozu/frequency.hpp +264 -0
  49. data/vendor/cybozulib/include/cybozu/hash.hpp +67 -0
  50. data/vendor/cybozulib/include/cybozu/inttype.hpp +174 -0
  51. data/vendor/cybozulib/include/cybozu/itoa.hpp +336 -0
  52. data/vendor/cybozulib/include/cybozu/json.hpp +120 -0
  53. data/vendor/cybozulib/include/cybozu/line_stream.hpp +149 -0
  54. data/vendor/cybozulib/include/cybozu/link_libeay32.hpp +21 -0
  55. data/vendor/cybozulib/include/cybozu/link_mpir.hpp +18 -0
  56. data/vendor/cybozulib/include/cybozu/link_ssleay32.hpp +19 -0
  57. data/vendor/cybozulib/include/cybozu/log.hpp +237 -0
  58. data/vendor/cybozulib/include/cybozu/minixml.hpp +452 -0
  59. data/vendor/cybozulib/include/cybozu/mmap.hpp +143 -0
  60. data/vendor/cybozulib/include/cybozu/mutex.hpp +144 -0
  61. data/vendor/cybozulib/include/cybozu/nlp/mecab.hpp +96 -0
  62. data/vendor/cybozulib/include/cybozu/nlp/plsi.hpp +315 -0
  63. data/vendor/cybozulib/include/cybozu/nlp/random.hpp +74 -0
  64. data/vendor/cybozulib/include/cybozu/nlp/sparse.hpp +529 -0
  65. data/vendor/cybozulib/include/cybozu/nlp/svd.hpp +486 -0
  66. data/vendor/cybozulib/include/cybozu/nlp/tfidf.hpp +226 -0
  67. data/vendor/cybozulib/include/cybozu/nlp/top_score.hpp +75 -0
  68. data/vendor/cybozulib/include/cybozu/option.hpp +743 -0
  69. data/vendor/cybozulib/include/cybozu/parallel.hpp +88 -0
  70. data/vendor/cybozulib/include/cybozu/pcg.hpp +72 -0
  71. data/vendor/cybozulib/include/cybozu/process.hpp +324 -0
  72. data/vendor/cybozulib/include/cybozu/quit_signal_handler.hpp +66 -0
  73. data/vendor/cybozulib/include/cybozu/random_generator.hpp +144 -0
  74. data/vendor/cybozulib/include/cybozu/regex.hpp +463 -0
  75. data/vendor/cybozulib/include/cybozu/select8.hpp +279 -0
  76. data/vendor/cybozulib/include/cybozu/serializer.hpp +363 -0
  77. data/vendor/cybozulib/include/cybozu/sha1.hpp +209 -0
  78. data/vendor/cybozulib/include/cybozu/sha2.hpp +506 -0
  79. data/vendor/cybozulib/include/cybozu/siphash.hpp +105 -0
  80. data/vendor/cybozulib/include/cybozu/socket.hpp +785 -0
  81. data/vendor/cybozulib/include/cybozu/ssl.hpp +203 -0
  82. data/vendor/cybozulib/include/cybozu/stacktrace.hpp +291 -0
  83. data/vendor/cybozulib/include/cybozu/stream.hpp +269 -0
  84. data/vendor/cybozulib/include/cybozu/string.hpp +1746 -0
  85. data/vendor/cybozulib/include/cybozu/string_operation.hpp +365 -0
  86. data/vendor/cybozulib/include/cybozu/sucvector.hpp +378 -0
  87. data/vendor/cybozulib/include/cybozu/test.hpp +373 -0
  88. data/vendor/cybozulib/include/cybozu/thread.hpp +229 -0
  89. data/vendor/cybozulib/include/cybozu/time.hpp +281 -0
  90. data/vendor/cybozulib/include/cybozu/tls.hpp +115 -0
  91. data/vendor/cybozulib/include/cybozu/unordered_map.hpp +13 -0
  92. data/vendor/cybozulib/include/cybozu/unordered_set.hpp +13 -0
  93. data/vendor/cybozulib/include/cybozu/v128.hpp +376 -0
  94. data/vendor/cybozulib/include/cybozu/wavelet_matrix.hpp +345 -0
  95. data/vendor/cybozulib/include/cybozu/xorshift.hpp +189 -0
  96. data/vendor/cybozulib/include/cybozu/zlib.hpp +325 -0
  97. data/vendor/cybozulib/include/sais.hxx +364 -0
  98. data/vendor/cybozulib/misc/make_select8tbl.cpp +26 -0
  99. data/vendor/cybozulib/mk.bat +37 -0
  100. data/vendor/cybozulib/readme.md +29 -0
  101. data/vendor/cybozulib/release.props +12 -0
  102. data/vendor/cybozulib/sample/Makefile +30 -0
  103. data/vendor/cybozulib/sample/csucvector_smpl.cpp +42 -0
  104. data/vendor/cybozulib/sample/data/svd/org/test1.S +4 -0
  105. data/vendor/cybozulib/sample/data/svd/org/test1.U +4 -0
  106. data/vendor/cybozulib/sample/data/svd/org/test1.V +6 -0
  107. data/vendor/cybozulib/sample/data/svd/test1 +4 -0
  108. data/vendor/cybozulib/sample/data/svd/test2 +4 -0
  109. data/vendor/cybozulib/sample/desymbol.cpp +127 -0
  110. data/vendor/cybozulib/sample/exception_smpl.cpp +46 -0
  111. data/vendor/cybozulib/sample/fmindex_smpl.cpp +231 -0
  112. data/vendor/cybozulib/sample/log_smpl.cpp +19 -0
  113. data/vendor/cybozulib/sample/mecab_smpl.cpp +37 -0
  114. data/vendor/cybozulib/sample/option2_smpl.cpp +68 -0
  115. data/vendor/cybozulib/sample/option_smpl.cpp +42 -0
  116. data/vendor/cybozulib/sample/plsi_smpl.cpp +207 -0
  117. data/vendor/cybozulib/sample/proj/exception_smpl.vcproj +184 -0
  118. data/vendor/cybozulib/sample/proj/mecab_smpl.vcproj +184 -0
  119. data/vendor/cybozulib/sample/proj/ssl_smpl/ssl_smpl.vcxproj +85 -0
  120. data/vendor/cybozulib/sample/proj/ssl_smpl.vcproj +347 -0
  121. data/vendor/cybozulib/sample/proj/stacktrace_smpl/stacktrace_smpl.vcxproj +85 -0
  122. data/vendor/cybozulib/sample/proj/svd_smpl.vcproj +184 -0
  123. data/vendor/cybozulib/sample/quit_signal_handler.cpp +30 -0
  124. data/vendor/cybozulib/sample/serializer_smpl.cpp +196 -0
  125. data/vendor/cybozulib/sample/socket_smpl.cpp +82 -0
  126. data/vendor/cybozulib/sample/ssl_smpl.cpp +39 -0
  127. data/vendor/cybozulib/sample/stacktrace_smpl.cpp +52 -0
  128. data/vendor/cybozulib/sample/svd_bench_smpl.cpp +143 -0
  129. data/vendor/cybozulib/sample/svd_smpl.cpp +94 -0
  130. data/vendor/cybozulib/sample/wm_bench_smpl.cpp +182 -0
  131. data/vendor/cybozulib/sample/zlib_smpl.cpp +41 -0
  132. data/vendor/cybozulib/src/Makefile +8 -0
  133. data/vendor/cybozulib/src/base/Makefile +19 -0
  134. data/vendor/cybozulib/test/Makefile +12 -0
  135. data/vendor/cybozulib/test/base/Makefile +37 -0
  136. data/vendor/cybozulib/test/base/array_test.cpp +173 -0
  137. data/vendor/cybozulib/test/base/atoi_test.cpp +774 -0
  138. data/vendor/cybozulib/test/base/atomic_test.cpp +49 -0
  139. data/vendor/cybozulib/test/base/base64_test.cpp +113 -0
  140. data/vendor/cybozulib/test/base/bit_operation_test.cpp +134 -0
  141. data/vendor/cybozulib/test/base/bitvector_test.cpp +204 -0
  142. data/vendor/cybozulib/test/base/condition_variable_cs_test.cpp +92 -0
  143. data/vendor/cybozulib/test/base/condition_variable_test.cpp +88 -0
  144. data/vendor/cybozulib/test/base/config_test.cpp +236 -0
  145. data/vendor/cybozulib/test/base/crypto_test.cpp +122 -0
  146. data/vendor/cybozulib/test/base/csucvector_test.cpp +63 -0
  147. data/vendor/cybozulib/test/base/csv_test.cpp +182 -0
  148. data/vendor/cybozulib/test/base/data/a.xml +26 -0
  149. data/vendor/cybozulib/test/base/endian_test.cpp +56 -0
  150. data/vendor/cybozulib/test/base/env_test.cpp +22 -0
  151. data/vendor/cybozulib/test/base/event_test.cpp +41 -0
  152. data/vendor/cybozulib/test/base/file_test.cpp +233 -0
  153. data/vendor/cybozulib/test/base/fmindex_test.cpp +118 -0
  154. data/vendor/cybozulib/test/base/format_test.cpp +12 -0
  155. data/vendor/cybozulib/test/base/frequency_test.cpp +104 -0
  156. data/vendor/cybozulib/test/base/itoa_test.cpp +522 -0
  157. data/vendor/cybozulib/test/base/line_stream_test.cpp +208 -0
  158. data/vendor/cybozulib/test/base/mecab_test.cpp +41 -0
  159. data/vendor/cybozulib/test/base/minixml_test.cpp +103 -0
  160. data/vendor/cybozulib/test/base/mmap_test.cpp +15 -0
  161. data/vendor/cybozulib/test/base/option_test.cpp +487 -0
  162. data/vendor/cybozulib/test/base/parallel_test.cpp +48 -0
  163. data/vendor/cybozulib/test/base/proj/array_test/array_test.vcxproj +86 -0
  164. data/vendor/cybozulib/test/base/proj/atoi_test/atoi_test.vcxproj +86 -0
  165. data/vendor/cybozulib/test/base/proj/atomic_test/atomic_test.vcxproj +86 -0
  166. data/vendor/cybozulib/test/base/proj/base64_test/base64_test.vcxproj +86 -0
  167. data/vendor/cybozulib/test/base/proj/condition_variable_cs_test/condition_variable_cs_test.vcxproj +86 -0
  168. data/vendor/cybozulib/test/base/proj/condition_variable_test/condition_variable_test.vcxproj +86 -0
  169. data/vendor/cybozulib/test/base/proj/config_test/config_test.vcxproj +86 -0
  170. data/vendor/cybozulib/test/base/proj/csv_test/csv_test.vcxproj +86 -0
  171. data/vendor/cybozulib/test/base/proj/endian_test/endian_test.vcxproj +86 -0
  172. data/vendor/cybozulib/test/base/proj/env_test/env_test.vcxproj +86 -0
  173. data/vendor/cybozulib/test/base/proj/event_test/event_test.vcxproj +86 -0
  174. data/vendor/cybozulib/test/base/proj/file_test/file_test.vcxproj +86 -0
  175. data/vendor/cybozulib/test/base/proj/itoa_test/itoa_test.vcxproj +86 -0
  176. data/vendor/cybozulib/test/base/proj/mecab_test/mecab_test.vcxproj +88 -0
  177. data/vendor/cybozulib/test/base/proj/minixml_test/minixml_test.vcxproj +86 -0
  178. data/vendor/cybozulib/test/base/proj/mmap_test/mmap_test.vcxproj +86 -0
  179. data/vendor/cybozulib/test/base/proj/serializer_test/serializer_test.vcxproj +86 -0
  180. data/vendor/cybozulib/test/base/proj/sha1_test/sha1_test.vcxproj +86 -0
  181. data/vendor/cybozulib/test/base/proj/stream_test/stream_test.vcxproj +86 -0
  182. data/vendor/cybozulib/test/base/proj/string_operation_test/string_operation_test.vcxproj +86 -0
  183. data/vendor/cybozulib/test/base/proj/string_test/string_test.vcxproj +86 -0
  184. data/vendor/cybozulib/test/base/proj/thread_test/thread_test.vcxproj +86 -0
  185. data/vendor/cybozulib/test/base/proj/time_test/time_test.vcxproj +86 -0
  186. data/vendor/cybozulib/test/base/proj/tls_test/tls_test.vcxproj +86 -0
  187. data/vendor/cybozulib/test/base/proj/zlib_test/zlib_test.vcxproj +86 -0
  188. data/vendor/cybozulib/test/base/random_generator_test.cpp +28 -0
  189. data/vendor/cybozulib/test/base/regex_test.cpp +74 -0
  190. data/vendor/cybozulib/test/base/serializer_test.cpp +483 -0
  191. data/vendor/cybozulib/test/base/sha1_test.cpp +61 -0
  192. data/vendor/cybozulib/test/base/sha2_test.cpp +191 -0
  193. data/vendor/cybozulib/test/base/siphash_test.cpp +33 -0
  194. data/vendor/cybozulib/test/base/socket_test.cpp +76 -0
  195. data/vendor/cybozulib/test/base/stream_test.cpp +101 -0
  196. data/vendor/cybozulib/test/base/string_operation_test.cpp +340 -0
  197. data/vendor/cybozulib/test/base/string_test.cpp +1705 -0
  198. data/vendor/cybozulib/test/base/sucvector_test.cpp +312 -0
  199. data/vendor/cybozulib/test/base/thread_test.cpp +62 -0
  200. data/vendor/cybozulib/test/base/time_test.cpp +164 -0
  201. data/vendor/cybozulib/test/base/tls_test.cpp +50 -0
  202. data/vendor/cybozulib/test/base/wavelet_matrix_test.cpp +145 -0
  203. data/vendor/cybozulib/test/base/zlib_test.cpp +371 -0
  204. data/vendor/cybozulib/test/nlp/Makefile +27 -0
  205. data/vendor/cybozulib/test/nlp/proj/random_test.vcproj +184 -0
  206. data/vendor/cybozulib/test/nlp/proj/sparse_test.vcproj +184 -0
  207. data/vendor/cybozulib/test/nlp/proj/svd_test.vcproj +184 -0
  208. data/vendor/cybozulib/test/nlp/random_test.cpp +62 -0
  209. data/vendor/cybozulib/test/nlp/sparse_test.cpp +347 -0
  210. data/vendor/cybozulib/test/nlp/svd_test.cpp +234 -0
  211. data/vendor/cybozulib/test/nlp/top_score_test.cpp +40 -0
  212. data/vendor/cybozulib/tool/create_vcproj.py +186 -0
  213. data/vendor/cybozulib/tool/vcproj_tmpl.py +185 -0
  214. data/vendor/msoffice/COPYRIGHT +27 -0
  215. data/vendor/msoffice/Makefile +29 -0
  216. data/vendor/msoffice/bin/64/msoc.dll +0 -0
  217. data/vendor/msoffice/bin/64/msocsample.exe +0 -0
  218. data/vendor/msoffice/bin/64/msoffice-crypt.exe +0 -0
  219. data/vendor/msoffice/bin/msoc.dll +0 -0
  220. data/vendor/msoffice/bin/msocsample.exe +0 -0
  221. data/vendor/msoffice/bin/msoffice-crypt.exe +0 -0
  222. data/vendor/msoffice/common.mk +71 -0
  223. data/vendor/msoffice/common.props +26 -0
  224. data/vendor/msoffice/debug.props +14 -0
  225. data/vendor/msoffice/include/attack.hpp +211 -0
  226. data/vendor/msoffice/include/cfb.hpp +777 -0
  227. data/vendor/msoffice/include/crypto_util.hpp +450 -0
  228. data/vendor/msoffice/include/custom_sha1.hpp +342 -0
  229. data/vendor/msoffice/include/decode.hpp +240 -0
  230. data/vendor/msoffice/include/encode.hpp +221 -0
  231. data/vendor/msoffice/include/make_dataspace.hpp +316 -0
  232. data/vendor/msoffice/include/msoc.h +129 -0
  233. data/vendor/msoffice/include/resource.hpp +7 -0
  234. data/vendor/msoffice/include/standard_encryption.hpp +145 -0
  235. data/vendor/msoffice/include/uint32vec.hpp +179 -0
  236. data/vendor/msoffice/include/util.hpp +212 -0
  237. data/vendor/msoffice/lib/.emptydir +0 -0
  238. data/vendor/msoffice/misc/decrypt-xls.vbs +46 -0
  239. data/vendor/msoffice/mk.bat +1 -0
  240. data/vendor/msoffice/mkdll.bat +3 -0
  241. data/vendor/msoffice/msoc.def +13 -0
  242. data/vendor/msoffice/msocsample.py +178 -0
  243. data/vendor/msoffice/msoffice12.sln +31 -0
  244. data/vendor/msoffice/readme.md +110 -0
  245. data/vendor/msoffice/release.props +28 -0
  246. data/vendor/msoffice/src/Makefile +19 -0
  247. data/vendor/msoffice/src/attack.cpp +124 -0
  248. data/vendor/msoffice/src/cfb_test.cpp +77 -0
  249. data/vendor/msoffice/src/minisample.c +54 -0
  250. data/vendor/msoffice/src/msocdll.cpp +276 -0
  251. data/vendor/msoffice/src/msocsample.c +136 -0
  252. data/vendor/msoffice/src/msoffice-crypt.cpp +219 -0
  253. data/vendor/msoffice/src/proj/attack/attack.vcxproj +88 -0
  254. data/vendor/msoffice/src/proj/main/msoffice-crypt.vcxproj +88 -0
  255. data/vendor/msoffice/src/sha1.cpp +234 -0
  256. data/vendor/msoffice/test/Makefile +20 -0
  257. data/vendor/msoffice/test/cfb_test.cpp +74 -0
  258. data/vendor/msoffice/test/hash_test.cpp +59 -0
  259. data/vendor/msoffice/test/proj/cfb/cfb_test.vcxproj +90 -0
  260. data/vendor/msoffice/test/proj/hash/hash_test.vcxproj +90 -0
  261. data/vendor/msoffice/test/sampl.bat +8 -0
  262. data/vendor/msoffice/test_all.py +46 -0
  263. data/vendor/update +4 -0
  264. metadata +351 -0
@@ -0,0 +1,286 @@
1
+ ����
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 2012
4
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "endian_test", "test\base\proj\endian_test\endian_test.vcxproj", "{46B6E88E-739A-406B-9F68-BC46C5950FA3}"
5
+ EndProject
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minixml_test", "test\base\proj\minixml_test\minixml_test.vcxproj", "{C2C77756-6703-477D-B3B5-29B61797C9BA}"
7
+ EndProject
8
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "env_test", "test\base\proj\env_test\env_test.vcxproj", "{DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}"
9
+ EndProject
10
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event_test", "test\base\proj\event_test\event_test.vcxproj", "{D1922853-1984-49D1-A3AB-98D2A18E1FB8}"
11
+ EndProject
12
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "file_test", "test\base\proj\file_test\file_test.vcxproj", "{CE80B07E-2E06-44D3-88B4-215FA05C49D0}"
13
+ EndProject
14
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mecab_test", "test\base\proj\mecab_test\mecab_test.vcxproj", "{0A9DEC67-500D-477B-9DE0-73286EAFFED3}"
15
+ EndProject
16
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mmap_test", "test\base\proj\mmap_test\mmap_test.vcxproj", "{274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}"
17
+ EndProject
18
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "serializer_test", "test\base\proj\serializer_test\serializer_test.vcxproj", "{700F4365-CE53-4E59-8148-038913D06650}"
19
+ EndProject
20
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sha1_test", "test\base\proj\sha1_test\sha1_test.vcxproj", "{201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}"
21
+ EndProject
22
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stream_test", "test\base\proj\stream_test\stream_test.vcxproj", "{04A20D05-5DBA-48F0-9243-495CD10DAF5F}"
23
+ EndProject
24
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string_operation_test", "test\base\proj\string_operation_test\string_operation_test.vcxproj", "{2643E00E-514D-43C5-AD62-F367B0ED74F7}"
25
+ EndProject
26
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string_test", "test\base\proj\string_test\string_test.vcxproj", "{C04835B3-17AB-4EA1-9074-269336B61FE7}"
27
+ EndProject
28
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "thread_test", "test\base\proj\thread_test\thread_test.vcxproj", "{1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}"
29
+ EndProject
30
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "time_test", "test\base\proj\time_test\time_test.vcxproj", "{023F5124-115F-418C-8794-4CE7377481C9}"
31
+ EndProject
32
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tls_test", "test\base\proj\tls_test\tls_test.vcxproj", "{7AE92250-D922-4F88-9E3B-39BA685057AA}"
33
+ EndProject
34
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib_test", "test\base\proj\zlib_test\zlib_test.vcxproj", "{B6CEFFF9-7767-438F-BA89-64AAD85F1D62}"
35
+ EndProject
36
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array_test", "test\base\proj\array_test\array_test.vcxproj", "{C91C3371-DFAD-4882-A4F4-E246FBB70933}"
37
+ EndProject
38
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "atomic_test", "test\base\proj\atomic_test\atomic_test.vcxproj", "{FA5F01DC-841A-467E-A625-629C40E36AFB}"
39
+ EndProject
40
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base64_test", "test\base\proj\base64_test\base64_test.vcxproj", "{84CAB116-53B3-497C-B594-ED4DD6D41895}"
41
+ EndProject
42
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "condition_variable_cs_test", "test\base\proj\condition_variable_cs_test\condition_variable_cs_test.vcxproj", "{90B5E13F-9FBB-42CF-91F7-974E3698F8D7}"
43
+ EndProject
44
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "condition_variable_test", "test\base\proj\condition_variable_test\condition_variable_test.vcxproj", "{D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}"
45
+ EndProject
46
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "config_test", "test\base\proj\config_test\config_test.vcxproj", "{A67262ED-1A70-420E-A817-D23B77E2D23C}"
47
+ EndProject
48
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csv_test", "test\base\proj\csv_test\csv_test.vcxproj", "{8FBD9849-7CB4-4430-A166-C7FCD064B10F}"
49
+ EndProject
50
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_smpl", "sample\proj\ssl_smpl\ssl_smpl.vcxproj", "{167A43E8-6159-4337-82C2-084551350739}"
51
+ EndProject
52
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stacktrace_smpl", "sample\proj\stacktrace_smpl\stacktrace_smpl.vcxproj", "{E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}"
53
+ EndProject
54
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "atoi_test", "test\base\proj\atoi_test\atoi_test.vcxproj", "{E11F981F-9271-4565-AEAE-64EAE6635F1D}"
55
+ EndProject
56
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "itoa_test", "test\base\proj\itoa_test\itoa_test.vcxproj", "{C91C3371-DFAD-4882-A4F4-E246FBB70939}"
57
+ EndProject
58
+ Global
59
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
60
+ Debug|Mixed Platforms = Debug|Mixed Platforms
61
+ Debug|x64 = Debug|x64
62
+ Release|Mixed Platforms = Release|Mixed Platforms
63
+ Release|x64 = Release|x64
64
+ EndGlobalSection
65
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
66
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
67
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Debug|Mixed Platforms.Build.0 = Debug|x64
68
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Debug|x64.ActiveCfg = Debug|x64
69
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Debug|x64.Build.0 = Debug|x64
70
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Release|Mixed Platforms.ActiveCfg = Release|x64
71
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Release|Mixed Platforms.Build.0 = Release|x64
72
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Release|x64.ActiveCfg = Release|x64
73
+ {46B6E88E-739A-406B-9F68-BC46C5950FA3}.Release|x64.Build.0 = Release|x64
74
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
75
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Debug|Mixed Platforms.Build.0 = Debug|x64
76
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Debug|x64.ActiveCfg = Debug|x64
77
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Debug|x64.Build.0 = Debug|x64
78
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Release|Mixed Platforms.ActiveCfg = Release|x64
79
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Release|Mixed Platforms.Build.0 = Release|x64
80
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Release|x64.ActiveCfg = Release|x64
81
+ {C2C77756-6703-477D-B3B5-29B61797C9BA}.Release|x64.Build.0 = Release|x64
82
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
83
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Debug|Mixed Platforms.Build.0 = Debug|x64
84
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Debug|x64.ActiveCfg = Debug|x64
85
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Debug|x64.Build.0 = Debug|x64
86
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Release|Mixed Platforms.ActiveCfg = Release|x64
87
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Release|Mixed Platforms.Build.0 = Release|x64
88
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Release|x64.ActiveCfg = Release|x64
89
+ {DA75BB1D-87C3-4B70-8DF3-F2EDABB51F3D}.Release|x64.Build.0 = Release|x64
90
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
91
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Debug|Mixed Platforms.Build.0 = Debug|x64
92
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Debug|x64.ActiveCfg = Debug|x64
93
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Debug|x64.Build.0 = Debug|x64
94
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Release|Mixed Platforms.ActiveCfg = Release|x64
95
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Release|Mixed Platforms.Build.0 = Release|x64
96
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Release|x64.ActiveCfg = Release|x64
97
+ {D1922853-1984-49D1-A3AB-98D2A18E1FB8}.Release|x64.Build.0 = Release|x64
98
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
99
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Debug|Mixed Platforms.Build.0 = Debug|x64
100
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Debug|x64.ActiveCfg = Debug|x64
101
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Debug|x64.Build.0 = Debug|x64
102
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Release|Mixed Platforms.ActiveCfg = Release|x64
103
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Release|Mixed Platforms.Build.0 = Release|x64
104
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Release|x64.ActiveCfg = Release|x64
105
+ {CE80B07E-2E06-44D3-88B4-215FA05C49D0}.Release|x64.Build.0 = Release|x64
106
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
107
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Debug|Mixed Platforms.Build.0 = Debug|Win32
108
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Debug|x64.ActiveCfg = Debug|Win32
109
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Debug|x64.Build.0 = Debug|Win32
110
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Release|Mixed Platforms.ActiveCfg = Release|Win32
111
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Release|Mixed Platforms.Build.0 = Release|Win32
112
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Release|x64.ActiveCfg = Release|Win32
113
+ {0A9DEC67-500D-477B-9DE0-73286EAFFED3}.Release|x64.Build.0 = Release|Win32
114
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
115
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Debug|Mixed Platforms.Build.0 = Debug|x64
116
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Debug|x64.ActiveCfg = Debug|x64
117
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Debug|x64.Build.0 = Debug|x64
118
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Release|Mixed Platforms.ActiveCfg = Release|x64
119
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Release|Mixed Platforms.Build.0 = Release|x64
120
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Release|x64.ActiveCfg = Release|x64
121
+ {274B6AAC-AB4C-488E-8F4D-2A84EA30B2AE}.Release|x64.Build.0 = Release|x64
122
+ {700F4365-CE53-4E59-8148-038913D06650}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
123
+ {700F4365-CE53-4E59-8148-038913D06650}.Debug|Mixed Platforms.Build.0 = Debug|x64
124
+ {700F4365-CE53-4E59-8148-038913D06650}.Debug|x64.ActiveCfg = Debug|x64
125
+ {700F4365-CE53-4E59-8148-038913D06650}.Debug|x64.Build.0 = Debug|x64
126
+ {700F4365-CE53-4E59-8148-038913D06650}.Release|Mixed Platforms.ActiveCfg = Release|x64
127
+ {700F4365-CE53-4E59-8148-038913D06650}.Release|Mixed Platforms.Build.0 = Release|x64
128
+ {700F4365-CE53-4E59-8148-038913D06650}.Release|x64.ActiveCfg = Release|x64
129
+ {700F4365-CE53-4E59-8148-038913D06650}.Release|x64.Build.0 = Release|x64
130
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
131
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Debug|Mixed Platforms.Build.0 = Debug|x64
132
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Debug|x64.ActiveCfg = Debug|x64
133
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Debug|x64.Build.0 = Debug|x64
134
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Release|Mixed Platforms.ActiveCfg = Release|x64
135
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Release|Mixed Platforms.Build.0 = Release|x64
136
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Release|x64.ActiveCfg = Release|x64
137
+ {201FE31F-4CD7-49A0-97AD-3EB18F11D3F1}.Release|x64.Build.0 = Release|x64
138
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
139
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Debug|Mixed Platforms.Build.0 = Debug|x64
140
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Debug|x64.ActiveCfg = Debug|x64
141
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Debug|x64.Build.0 = Debug|x64
142
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Release|Mixed Platforms.ActiveCfg = Release|x64
143
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Release|Mixed Platforms.Build.0 = Release|x64
144
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Release|x64.ActiveCfg = Release|x64
145
+ {04A20D05-5DBA-48F0-9243-495CD10DAF5F}.Release|x64.Build.0 = Release|x64
146
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
147
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Debug|Mixed Platforms.Build.0 = Debug|x64
148
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Debug|x64.ActiveCfg = Debug|x64
149
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Debug|x64.Build.0 = Debug|x64
150
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Release|Mixed Platforms.ActiveCfg = Release|x64
151
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Release|Mixed Platforms.Build.0 = Release|x64
152
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Release|x64.ActiveCfg = Release|x64
153
+ {2643E00E-514D-43C5-AD62-F367B0ED74F7}.Release|x64.Build.0 = Release|x64
154
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
155
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Debug|Mixed Platforms.Build.0 = Debug|x64
156
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Debug|x64.ActiveCfg = Debug|x64
157
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Debug|x64.Build.0 = Debug|x64
158
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Release|Mixed Platforms.ActiveCfg = Release|x64
159
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Release|Mixed Platforms.Build.0 = Release|x64
160
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Release|x64.ActiveCfg = Release|x64
161
+ {C04835B3-17AB-4EA1-9074-269336B61FE7}.Release|x64.Build.0 = Release|x64
162
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
163
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Debug|Mixed Platforms.Build.0 = Debug|x64
164
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Debug|x64.ActiveCfg = Debug|x64
165
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Debug|x64.Build.0 = Debug|x64
166
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Release|Mixed Platforms.ActiveCfg = Release|x64
167
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Release|Mixed Platforms.Build.0 = Release|x64
168
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Release|x64.ActiveCfg = Release|x64
169
+ {1C5E7AA1-1BC6-4A1C-BB58-A1A0F90B0034}.Release|x64.Build.0 = Release|x64
170
+ {023F5124-115F-418C-8794-4CE7377481C9}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
171
+ {023F5124-115F-418C-8794-4CE7377481C9}.Debug|Mixed Platforms.Build.0 = Debug|x64
172
+ {023F5124-115F-418C-8794-4CE7377481C9}.Debug|x64.ActiveCfg = Debug|x64
173
+ {023F5124-115F-418C-8794-4CE7377481C9}.Debug|x64.Build.0 = Debug|x64
174
+ {023F5124-115F-418C-8794-4CE7377481C9}.Release|Mixed Platforms.ActiveCfg = Release|x64
175
+ {023F5124-115F-418C-8794-4CE7377481C9}.Release|Mixed Platforms.Build.0 = Release|x64
176
+ {023F5124-115F-418C-8794-4CE7377481C9}.Release|x64.ActiveCfg = Release|x64
177
+ {023F5124-115F-418C-8794-4CE7377481C9}.Release|x64.Build.0 = Release|x64
178
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
179
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Debug|Mixed Platforms.Build.0 = Debug|x64
180
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Debug|x64.ActiveCfg = Debug|x64
181
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Debug|x64.Build.0 = Debug|x64
182
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Release|Mixed Platforms.ActiveCfg = Release|x64
183
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Release|Mixed Platforms.Build.0 = Release|x64
184
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Release|x64.ActiveCfg = Release|x64
185
+ {7AE92250-D922-4F88-9E3B-39BA685057AA}.Release|x64.Build.0 = Release|x64
186
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
187
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Debug|Mixed Platforms.Build.0 = Debug|x64
188
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Debug|x64.ActiveCfg = Debug|x64
189
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Debug|x64.Build.0 = Debug|x64
190
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Release|Mixed Platforms.ActiveCfg = Release|x64
191
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Release|Mixed Platforms.Build.0 = Release|x64
192
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Release|x64.ActiveCfg = Release|x64
193
+ {B6CEFFF9-7767-438F-BA89-64AAD85F1D62}.Release|x64.Build.0 = Release|x64
194
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
195
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Debug|Mixed Platforms.Build.0 = Debug|x64
196
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Debug|x64.ActiveCfg = Debug|x64
197
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Debug|x64.Build.0 = Debug|x64
198
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Release|Mixed Platforms.ActiveCfg = Release|x64
199
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Release|Mixed Platforms.Build.0 = Release|x64
200
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Release|x64.ActiveCfg = Release|x64
201
+ {C91C3371-DFAD-4882-A4F4-E246FBB70933}.Release|x64.Build.0 = Release|x64
202
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
203
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Debug|Mixed Platforms.Build.0 = Debug|x64
204
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Debug|x64.ActiveCfg = Debug|x64
205
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Debug|x64.Build.0 = Debug|x64
206
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Release|Mixed Platforms.ActiveCfg = Release|x64
207
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Release|Mixed Platforms.Build.0 = Release|x64
208
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Release|x64.ActiveCfg = Release|x64
209
+ {FA5F01DC-841A-467E-A625-629C40E36AFB}.Release|x64.Build.0 = Release|x64
210
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
211
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Debug|Mixed Platforms.Build.0 = Debug|x64
212
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Debug|x64.ActiveCfg = Debug|x64
213
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Debug|x64.Build.0 = Debug|x64
214
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Release|Mixed Platforms.ActiveCfg = Release|x64
215
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Release|Mixed Platforms.Build.0 = Release|x64
216
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Release|x64.ActiveCfg = Release|x64
217
+ {84CAB116-53B3-497C-B594-ED4DD6D41895}.Release|x64.Build.0 = Release|x64
218
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
219
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Debug|Mixed Platforms.Build.0 = Debug|x64
220
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Debug|x64.ActiveCfg = Debug|x64
221
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Debug|x64.Build.0 = Debug|x64
222
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Release|Mixed Platforms.ActiveCfg = Release|x64
223
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Release|Mixed Platforms.Build.0 = Release|x64
224
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Release|x64.ActiveCfg = Release|x64
225
+ {90B5E13F-9FBB-42CF-91F7-974E3698F8D7}.Release|x64.Build.0 = Release|x64
226
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
227
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Debug|Mixed Platforms.Build.0 = Debug|x64
228
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Debug|x64.ActiveCfg = Debug|x64
229
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Debug|x64.Build.0 = Debug|x64
230
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Release|Mixed Platforms.ActiveCfg = Release|x64
231
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Release|Mixed Platforms.Build.0 = Release|x64
232
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Release|x64.ActiveCfg = Release|x64
233
+ {D91D370B-0CE8-4506-BF6E-6AA4B8318FEB}.Release|x64.Build.0 = Release|x64
234
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
235
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Debug|Mixed Platforms.Build.0 = Debug|x64
236
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Debug|x64.ActiveCfg = Debug|x64
237
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Debug|x64.Build.0 = Debug|x64
238
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Release|Mixed Platforms.ActiveCfg = Release|x64
239
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Release|Mixed Platforms.Build.0 = Release|x64
240
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Release|x64.ActiveCfg = Release|x64
241
+ {A67262ED-1A70-420E-A817-D23B77E2D23C}.Release|x64.Build.0 = Release|x64
242
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
243
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Debug|Mixed Platforms.Build.0 = Debug|x64
244
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Debug|x64.ActiveCfg = Debug|x64
245
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Debug|x64.Build.0 = Debug|x64
246
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Release|Mixed Platforms.ActiveCfg = Release|x64
247
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Release|Mixed Platforms.Build.0 = Release|x64
248
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Release|x64.ActiveCfg = Release|x64
249
+ {8FBD9849-7CB4-4430-A166-C7FCD064B10F}.Release|x64.Build.0 = Release|x64
250
+ {167A43E8-6159-4337-82C2-084551350739}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
251
+ {167A43E8-6159-4337-82C2-084551350739}.Debug|Mixed Platforms.Build.0 = Debug|x64
252
+ {167A43E8-6159-4337-82C2-084551350739}.Debug|x64.ActiveCfg = Debug|x64
253
+ {167A43E8-6159-4337-82C2-084551350739}.Debug|x64.Build.0 = Debug|x64
254
+ {167A43E8-6159-4337-82C2-084551350739}.Release|Mixed Platforms.ActiveCfg = Release|x64
255
+ {167A43E8-6159-4337-82C2-084551350739}.Release|Mixed Platforms.Build.0 = Release|x64
256
+ {167A43E8-6159-4337-82C2-084551350739}.Release|x64.ActiveCfg = Release|x64
257
+ {167A43E8-6159-4337-82C2-084551350739}.Release|x64.Build.0 = Release|x64
258
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
259
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Debug|Mixed Platforms.Build.0 = Debug|x64
260
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Debug|x64.ActiveCfg = Debug|x64
261
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Debug|x64.Build.0 = Debug|x64
262
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Release|Mixed Platforms.ActiveCfg = Release|x64
263
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Release|Mixed Platforms.Build.0 = Release|x64
264
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Release|x64.ActiveCfg = Release|x64
265
+ {E8D067B3-DA08-401D-BC28-4DDE08FAEFE1}.Release|x64.Build.0 = Release|x64
266
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
267
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Debug|Mixed Platforms.Build.0 = Debug|x64
268
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Debug|x64.ActiveCfg = Debug|x64
269
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Debug|x64.Build.0 = Debug|x64
270
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Release|Mixed Platforms.ActiveCfg = Release|x64
271
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Release|Mixed Platforms.Build.0 = Release|x64
272
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Release|x64.ActiveCfg = Release|x64
273
+ {E11F981F-9271-4565-AEAE-64EAE6635F1D}.Release|x64.Build.0 = Release|x64
274
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
275
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Debug|Mixed Platforms.Build.0 = Debug|x64
276
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Debug|x64.ActiveCfg = Debug|x64
277
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Debug|x64.Build.0 = Debug|x64
278
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Release|Mixed Platforms.ActiveCfg = Release|x64
279
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Release|Mixed Platforms.Build.0 = Release|x64
280
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Release|x64.ActiveCfg = Release|x64
281
+ {C91C3371-DFAD-4882-A4F4-E246FBB70939}.Release|x64.Build.0 = Release|x64
282
+ EndGlobalSection
283
+ GlobalSection(SolutionProperties) = preSolution
284
+ HideSolutionNode = FALSE
285
+ EndGlobalSection
286
+ EndGlobal
@@ -0,0 +1,14 @@
1
+ ����<?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ImportGroup Label="PropertySheets" />
4
+ <PropertyGroup Label="UserMacros" />
5
+ <PropertyGroup>
6
+ <TargetName>$(ProjectName)d</TargetName>
7
+ </PropertyGroup>
8
+ <ItemDefinitionGroup>
9
+ <ClCompile>
10
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
11
+ </ClCompile>
12
+ </ItemDefinitionGroup>
13
+ <ItemGroup />
14
+ </Project>
@@ -0,0 +1,197 @@
1
+ #pragma once
2
+
3
+ /**
4
+ @file
5
+ @brief scoped array and aligned array
6
+
7
+ @author MITSUNARI Shigeo(@herumi)
8
+ */
9
+ #include <new>
10
+ #include <utility>
11
+ #ifdef _WIN32
12
+ #include <malloc.h>
13
+ #else
14
+ #include <stdlib.h>
15
+ #endif
16
+ #include <cybozu/inttype.hpp>
17
+
18
+ namespace cybozu {
19
+
20
+ inline void *AlignedMalloc(size_t size, size_t alignment)
21
+ {
22
+ #ifdef _WIN32
23
+ return _aligned_malloc(size, alignment);
24
+ #else
25
+ void *p;
26
+ int ret = posix_memalign(&p, alignment, size);
27
+ return (ret == 0) ? p : 0;
28
+ #endif
29
+ }
30
+
31
+ inline void AlignedFree(void *p)
32
+ {
33
+ #ifdef _WIN32
34
+ if (p == 0) return;
35
+ _aligned_free(p);
36
+ #else
37
+ free(p);
38
+ #endif
39
+ }
40
+
41
+ template<class T>
42
+ class ScopedArray {
43
+ T *p_;
44
+ size_t size_;
45
+ ScopedArray(const ScopedArray&);
46
+ void operator=(const ScopedArray&);
47
+ public:
48
+ explicit ScopedArray(size_t size)
49
+ : p_(new T[size])
50
+ , size_(size)
51
+ {
52
+ }
53
+ ~ScopedArray()
54
+ {
55
+ delete[] p_;
56
+ }
57
+ T& operator[](size_t idx) CYBOZU_NOEXCEPT { return p_[idx]; }
58
+ const T& operator[](size_t idx) const CYBOZU_NOEXCEPT { return p_[idx]; }
59
+ size_t size() const CYBOZU_NOEXCEPT { return size_; }
60
+ bool empty() const CYBOZU_NOEXCEPT { return size_ == 0; }
61
+ T* begin() CYBOZU_NOEXCEPT { return p_; }
62
+ T* end() CYBOZU_NOEXCEPT { return p_ + size_; }
63
+ const T* begin() const CYBOZU_NOEXCEPT { return p_; }
64
+ const T* end() const CYBOZU_NOEXCEPT { return p_ + size_; }
65
+ T* data() CYBOZU_NOEXCEPT { return p_; }
66
+ const T* data() const CYBOZU_NOEXCEPT { return p_; }
67
+ };
68
+
69
+ /**
70
+ T must be POD type
71
+ 16byte aligment array
72
+ */
73
+ template<class T, size_t N = 16, bool defaultDoClear = true>
74
+ class AlignedArray {
75
+ T *p_;
76
+ size_t size_;
77
+ size_t allocSize_;
78
+ T *alloc(size_t size) const
79
+ {
80
+ T *p = static_cast<T*>(AlignedMalloc(size * sizeof(T), N));
81
+ if (p == 0) throw std::bad_alloc();
82
+ return p;
83
+ }
84
+ void copy(T *dst, const T *src, size_t n) const
85
+ {
86
+ for (size_t i = 0; i < n; i++) dst[i] = src[i];
87
+ }
88
+ void setZero(T *p, size_t n) const
89
+ {
90
+ for (size_t i = 0; i < n; i++) p[i] = 0;
91
+ }
92
+ /*
93
+ alloc allocN and copy [p, p + copyN) to new p_
94
+ don't modify size_
95
+ */
96
+ void allocCopy(size_t allocN, const T *p, size_t copyN)
97
+ {
98
+ T *q = alloc(allocN);
99
+ copy(q, p, copyN);
100
+ AlignedFree(p_);
101
+ p_ = q;
102
+ allocSize_ = allocN;
103
+ }
104
+ public:
105
+ /*
106
+ don't clear buffer with zero if doClear is false
107
+ */
108
+ explicit AlignedArray(size_t size = 0, bool doClear = defaultDoClear)
109
+ : p_(0)
110
+ , size_(0)
111
+ , allocSize_(0)
112
+ {
113
+ resize(size, doClear);
114
+ }
115
+ AlignedArray(const AlignedArray& rhs)
116
+ : p_(0)
117
+ , size_(0)
118
+ , allocSize_(0)
119
+ {
120
+ *this = rhs;
121
+ }
122
+ AlignedArray& operator=(const AlignedArray& rhs)
123
+ {
124
+ if (allocSize_ < rhs.size_) {
125
+ allocCopy(rhs.size_, rhs.p_, rhs.size_);
126
+ } else {
127
+ copy(p_, rhs.p_, rhs.size_);
128
+ }
129
+ size_ = rhs.size_;
130
+ return *this;
131
+ }
132
+ #if (CYBOZU_CPP_VERSION >= CYBOZU_CPP_VERSION_CPP11)
133
+ AlignedArray(AlignedArray&& rhs) CYBOZU_NOEXCEPT
134
+ : p_(rhs.p_)
135
+ , size_(rhs.size_)
136
+ , allocSize_(rhs.allocSize_)
137
+ {
138
+ rhs.p_ = 0;
139
+ rhs.size_ = 0;
140
+ rhs.allocSize_ = 0;
141
+ }
142
+ AlignedArray& operator=(AlignedArray&& rhs) CYBOZU_NOEXCEPT
143
+ {
144
+ swap(rhs);
145
+ rhs.clear();
146
+ return *this;
147
+ }
148
+ #endif
149
+ /*
150
+ don't clear buffer with zero if doClear is false
151
+ @note don't free if shrinked
152
+ */
153
+ void resize(size_t size, bool doClear = defaultDoClear)
154
+ {
155
+ // shrink
156
+ if (size <= size_) {
157
+ size_ = size;
158
+ return;
159
+ }
160
+ // realloc if necessary
161
+ if (size > allocSize_) {
162
+ allocCopy(size, p_, size_);
163
+ }
164
+ if (doClear) setZero(p_ + size_, size - size_);
165
+ size_ = size;
166
+ }
167
+ void clear() // not free
168
+ {
169
+ size_ = 0;
170
+ }
171
+ ~AlignedArray()
172
+ {
173
+ AlignedFree(p_);
174
+ }
175
+ void swap(AlignedArray& rhs) CYBOZU_NOEXCEPT
176
+ {
177
+ std::swap(p_, rhs.p_);
178
+ std::swap(size_, rhs.size_);
179
+ std::swap(allocSize_, rhs.allocSize_);
180
+ }
181
+ T& operator[](size_t idx) CYBOZU_NOEXCEPT { return p_[idx]; }
182
+ const T& operator[](size_t idx) const CYBOZU_NOEXCEPT { return p_[idx]; }
183
+ size_t size() const CYBOZU_NOEXCEPT { return size_; }
184
+ bool empty() const CYBOZU_NOEXCEPT { return size_ == 0; }
185
+ T* begin() CYBOZU_NOEXCEPT { return p_; }
186
+ T* end() CYBOZU_NOEXCEPT { return p_ + size_; }
187
+ const T* begin() const CYBOZU_NOEXCEPT { return p_; }
188
+ const T* end() const CYBOZU_NOEXCEPT { return p_ + size_; }
189
+ T* data() CYBOZU_NOEXCEPT { return p_; }
190
+ const T* data() const CYBOZU_NOEXCEPT { return p_; }
191
+ #if (CYBOZU_CPP_VERSION >= CYBOZU_CPP_VERSION_CPP11)
192
+ const T* cbegin() const CYBOZU_NOEXCEPT { return p_; }
193
+ const T* cend() const CYBOZU_NOEXCEPT { return p_ + size_; }
194
+ #endif
195
+ };
196
+
197
+ } // cybozu