mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-04 19:25:51 +00:00
Compare commits
225 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97cecc18ce | ||
|
|
536db23e14 | ||
|
|
39d801fb9f | ||
|
|
6d707b21b2 | ||
|
|
2316fe5bbe | ||
|
|
16ec9d2bdb | ||
|
|
2ce4ce4309 | ||
|
|
858c3a5362 | ||
|
|
c124ad0dcd | ||
|
|
ed64c8bb29 | ||
|
|
2678360715 | ||
|
|
54e504dd5a | ||
|
|
b632a6b2cf | ||
|
|
b9e2ac38fa | ||
|
|
4d1c2a5798 | ||
|
|
c69d8a13b3 | ||
|
|
7c358cda17 | ||
|
|
1954a0eb2e | ||
|
|
5500701661 | ||
|
|
21918922f4 | ||
|
|
fad52c5917 | ||
|
|
306811d2a7 | ||
|
|
8b72f2ad79 | ||
|
|
1a1cb696f7 | ||
|
|
582c17b06b | ||
|
|
b156a49cff | ||
|
|
3943cfea06 | ||
|
|
97346c6618 | ||
|
|
474b824902 | ||
|
|
02b5572ccc | ||
|
|
4577ad60c7 | ||
|
|
e683c380e5 | ||
|
|
b660d82516 | ||
|
|
c0dda06499 | ||
|
|
65abd6307d | ||
|
|
6e713dc3b8 | ||
|
|
596a35acca | ||
|
|
4ad84a339f | ||
|
|
833435f8c2 | ||
|
|
4e4942e357 | ||
|
|
1fc8f0a33b | ||
|
|
1f433dea97 | ||
|
|
d8707cad2c | ||
|
|
a399b571ac | ||
|
|
d0e71225c4 | ||
|
|
19d4bf0ea5 | ||
|
|
9e519af887 | ||
|
|
29aa462bfd | ||
|
|
7a91872ee5 | ||
|
|
68307d1012 | ||
|
|
48cb707bb6 | ||
|
|
9322233b37 | ||
|
|
1daf1b9932 | ||
|
|
a3024352ba | ||
|
|
58f07a573f | ||
|
|
a05f33f6a7 | ||
|
|
968624971f | ||
|
|
57e77a5bd2 | ||
|
|
74c65cfdc5 | ||
|
|
399760fda9 | ||
|
|
67b8f95b1e | ||
|
|
d4d6acdf68 | ||
|
|
472baa8bac | ||
|
|
dd74c19858 | ||
|
|
b5f8d447a0 | ||
|
|
5f4a1917a6 | ||
|
|
cf71680aee | ||
|
|
f04b9131cc | ||
|
|
46861fac48 | ||
|
|
4620b667e7 | ||
|
|
49f43ccc0a | ||
|
|
63aa7284c4 | ||
|
|
286ade2d17 | ||
|
|
066d92ecfa | ||
|
|
c5ccabec38 | ||
|
|
548fedb859 | ||
|
|
8d5378a2ca | ||
|
|
bf1843be9e | ||
|
|
d50439cc4d | ||
|
|
6a8f313394 | ||
|
|
c211094d3e | ||
|
|
072b4f3b73 | ||
|
|
08cbcba4ee | ||
|
|
2a9171c623 | ||
|
|
8573679fbb | ||
|
|
811f244fc2 | ||
|
|
a31b2556a3 | ||
|
|
a0ad5cdbfe | ||
|
|
59cf668348 | ||
|
|
09acc26c50 | ||
|
|
0ae7bcff52 | ||
|
|
2210dbac94 | ||
|
|
6b2f654a30 | ||
|
|
3296ac5628 | ||
|
|
6d06cb29df | ||
|
|
b08c7d15cd | ||
|
|
940d620a96 | ||
|
|
a39fa8ae5f | ||
|
|
f859bf160a | ||
|
|
e0512930ae | ||
|
|
7bbf6c553f | ||
|
|
aeb335ebdc | ||
|
|
73ab408b3c | ||
|
|
f333a33f3d | ||
|
|
42b841735e | ||
|
|
e710bd2183 | ||
|
|
84556ba76a | ||
|
|
4eebea91d3 | ||
|
|
4ddadb8792 | ||
|
|
8e65d6288d | ||
|
|
8e18deb74f | ||
|
|
7ae1ad524b | ||
|
|
1ba1b3983a | ||
|
|
aabd6980ac | ||
|
|
3b19310252 | ||
|
|
8201805b28 | ||
|
|
7277c8478b | ||
|
|
963a0dd934 | ||
|
|
3108d58791 | ||
|
|
31b1a6a7e6 | ||
|
|
9ff65d0da4 | ||
|
|
c11abb42d1 | ||
|
|
7b6d81d812 | ||
|
|
ca0daad11f | ||
|
|
a0c4e685c5 | ||
|
|
b30f7a622c | ||
|
|
23f44f12bd | ||
|
|
6c17002e8a | ||
|
|
5dda088335 | ||
|
|
2427cce2c8 | ||
|
|
1c41dae51c | ||
|
|
1a6d72b14c | ||
|
|
3dc646e03e | ||
|
|
96328a8632 | ||
|
|
2cc4488d8e | ||
|
|
a6c2fe4761 | ||
|
|
ed905d3c3d | ||
|
|
81eadbd05c | ||
|
|
ef1e2f8595 | ||
|
|
fae7082049 | ||
|
|
a63de23156 | ||
|
|
8e0dda8480 | ||
|
|
ad7b9ff8b5 | ||
|
|
04f2d0787a | ||
|
|
2ad98a025e | ||
|
|
67516766a6 | ||
|
|
3b2ead3476 | ||
|
|
fc5be2b911 | ||
|
|
466e623dd6 | ||
|
|
a1b487c512 | ||
|
|
0902af8eb5 | ||
|
|
a8a4caf0e4 | ||
|
|
33478517a6 | ||
|
|
0d5a8ca300 | ||
|
|
da22f06d85 | ||
|
|
a918924923 | ||
|
|
5a9416fbcf | ||
|
|
582b5bb3ac | ||
|
|
abe4f1ba03 | ||
|
|
9dfbffa4b8 | ||
|
|
a25ba91876 | ||
|
|
334f109415 | ||
|
|
eb9eb3aa53 | ||
|
|
978c196c78 | ||
|
|
20e7cac743 | ||
|
|
b5d51214ff | ||
|
|
485d4b4897 | ||
|
|
fb6ecebbd1 | ||
|
|
0b69378a03 | ||
|
|
256c12f150 | ||
|
|
8d0349eee0 | ||
|
|
ab0548c9af | ||
|
|
4868bc4df7 | ||
|
|
0900dfe46f | ||
|
|
8dfe53ff7a | ||
|
|
1ae3328642 | ||
|
|
b9e0208aee | ||
|
|
497cc74adc | ||
|
|
eac3814fb5 | ||
|
|
bb331abeba | ||
|
|
6e20bd2dcd | ||
|
|
09961845b4 | ||
|
|
7eacd3bf57 | ||
|
|
72681fa7fb | ||
|
|
500bddebff | ||
|
|
4d3d46f41d | ||
|
|
82d8d9a092 | ||
|
|
30ff139a29 | ||
|
|
dc8420d32d | ||
|
|
bb29c8ba85 | ||
|
|
625780621b | ||
|
|
ea2589dd9c | ||
|
|
942336c454 | ||
|
|
90282707ab | ||
|
|
70f6c41ff7 | ||
|
|
184cf74daa | ||
|
|
a23fb06409 | ||
|
|
3638485977 | ||
|
|
75f3c52d53 | ||
|
|
364973a523 | ||
|
|
678c241962 | ||
|
|
a2aa938e10 | ||
|
|
48eb92e366 | ||
|
|
2894059b63 | ||
|
|
66a272debd | ||
|
|
7d089561c3 | ||
|
|
53f8e73b65 | ||
|
|
37bcf7899e | ||
|
|
86f662aa4a | ||
|
|
a1b958eaac | ||
|
|
06189b2584 | ||
|
|
0bf006cdae | ||
|
|
3f51eb7b63 | ||
|
|
b76443dbde | ||
|
|
5fc823ae08 | ||
|
|
68aec74b47 | ||
|
|
acd23682d1 | ||
|
|
b042397b9f | ||
|
|
951a8208b8 | ||
|
|
9b3c74a095 | ||
|
|
647c0e302a | ||
|
|
b3b22d7595 | ||
|
|
1ba0139683 | ||
|
|
15ef435054 | ||
|
|
1a95dfb300 |
13
.travis.yml
Normal file
13
.travis.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
language: cpp
|
||||
compiler:
|
||||
- gcc
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq libboost1.48-all-dev protobuf-compiler libprotobuf-dev libssl-dev exuberant-ctags
|
||||
script: scons && npm install && npm test
|
||||
notifications:
|
||||
email:
|
||||
false
|
||||
irc:
|
||||
channels:
|
||||
- "chat.freenode.net#ripple-dev"
|
||||
@@ -68,7 +68,9 @@ SOURCES += \
|
||||
../../src/ripple/http/ripple_http.cpp \
|
||||
../../src/ripple/json/ripple_json.cpp \
|
||||
../../src/ripple/peerfinder/ripple_peerfinder.cpp \
|
||||
../../src/ripple/resource/ripple_resource.cpp \
|
||||
../../src/ripple/rpc/ripple_rpc.cpp \
|
||||
../../src/ripple/sitefiles/ripple_sitefiles.cpp \
|
||||
../../src/ripple/sophia/ripple_sophia.c \
|
||||
../../src/ripple/sslutil/ripple_sslutil.cpp \
|
||||
../../src/ripple/testoverlay/ripple_testoverlay.cpp \
|
||||
|
||||
@@ -72,6 +72,12 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\json\ripple_json.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Checker.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Config.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -84,7 +90,7 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\EndpointCache.cpp">
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Cache.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
@@ -96,6 +102,12 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Resolver.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Slots.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -115,6 +127,476 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\ripple_peerfinder.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Charge.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Consumer.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Fees.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\LegacyFees.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Manager.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Tests.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\ripple_resource.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\ripple_rocksdb.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\builder.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\dbformat.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_bench.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_filesnapshot.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl_readonly.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_iter.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_stats_logger.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\filename.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\log_reader.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\log_writer.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\memtable.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\memtablelist.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_helper.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_operator.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\repair.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\table_cache.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\table_properties_collector.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\transaction_log_impl.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_edit.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set_reduce_num_levels.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\write_batch.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\helpers\memenv\memenv.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\port\port_posix.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\port\stack_trace.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_builder.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_factory.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_reader.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_builder.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_test.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block_test.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\flush_block_policy.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\format.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\iterator.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\merger.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\two_level_iterator.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\arena_impl.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\auto_roll_logger.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\blob_store.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\bloom.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\cache.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\coding.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\comparator.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\crc32c.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_hdfs.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_posix.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_test.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\filelock_test.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\filter_policy.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\hash.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\hash_skiplist_rep.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\histogram.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_tool.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\logging.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\murmurhash.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\options.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\perf_context.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\signal_test.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\skiplistrep.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\slice.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\statistics.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\status.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\string_util.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\testharness.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\testutil.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\transformrep.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\vectorrep.cc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rpc\impl\Handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -134,6 +616,25 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rpc\ripple_rpc.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\Manager.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\Section.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\SiteFile.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\ripple_sitefiles.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple\sophia\ripple_sophia.c" />
|
||||
<ClCompile Include="..\..\src\ripple\sslutil\impl\CBigNum.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
@@ -173,6 +674,12 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\types\impl\JsonPropertyStream.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\types\impl\RandomNumbers.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -325,6 +832,12 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_app\ledger\LedgerCleaner.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_app\ledger\LedgerMaster.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -872,12 +1385,6 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_basics\log\LogJournal.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_basics\log\LogPartition.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -1178,12 +1685,6 @@
|
||||
<ClCompile Include="..\..\src\ripple_hyperleveldb\ripple_hyperleveldb.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple_leveldb\ripple_leveldb.cpp" />
|
||||
<ClCompile Include="..\..\src\ripple_mdb\ripple_mdb.c" />
|
||||
<ClCompile Include="..\..\src\ripple_net\basics\AsyncService.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_net\basics\RippleSSLContext.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -1611,6 +2112,8 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\ripple\algorithm\api\CycledSet.h" />
|
||||
<ClInclude Include="..\..\src\ripple\algorithm\api\DiscreteClock.h" />
|
||||
<ClInclude Include="..\..\src\ripple\http\api\Handler.h" />
|
||||
<ClInclude Include="..\..\src\ripple\http\api\Server.h" />
|
||||
<ClInclude Include="..\..\src\ripple\http\api\Port.h" />
|
||||
@@ -1635,20 +2138,144 @@
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\api\Endpoint.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\api\Manager.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\api\Types.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\EndpointCache.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\CachedEndpoint.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Checker.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\CheckerAdapter.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Cache.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Giveaways.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\GiveawaysAtHop.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LegacyEndpoint.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LegacyEndpointCache.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Logic.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LogicType.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\PeerInfo.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Resolver.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Slots.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Source.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\SourceStrings.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Store.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\StoreSqdb.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Tuning.h" />
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\ripple_peerfinder.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Charge.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Consumer.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Disposition.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Gossip.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Fees.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\LegacyFees.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Manager.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Types.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\DecayingSample.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Entry.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Import.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Key.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Kind.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Logic.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\LogicType.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Tuning.h" />
|
||||
<ClInclude Include="..\..\src\ripple\resource\ripple_resource.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\ripple_rocksdb.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\builder.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\dbformat.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl_readonly.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_iter.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_statistics.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\filename.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_format.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_reader.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_writer.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\memtable.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\memtablelist.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_helper.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\prefix_filter_iterator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\skiplist.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\snapshot.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\table_cache.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\table_properties_collector.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\transaction_log_impl.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\version_edit.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\write_batch_internal.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\helpers\memenv\memenv.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\arena.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\c.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\cache.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\compaction_filter.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\comparator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\db.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\env.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\filter_policy.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\flush_block_policy.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\iterator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\ldb_tool.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\memtablerep.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\merge_operator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\options.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\perf_context.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\slice.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\slice_transform.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\statistics.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\status.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\table.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\table_properties.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\transaction_log.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\types.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\universal_compaction.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\write_batch.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\utilities\stackable_db.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\utilities\utility_db.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\atomic_pointer.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\port.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\port_posix.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\win\stdint.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_builder.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_factory.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_reader.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_builder.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\format.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\iterator_wrapper.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\iter_heap.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\merger.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\two_level_iterator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\arena_impl.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\auto_roll_logger.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\bit_set.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\blob_store.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\build_version.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\coding.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\crc32c.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\hash.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\histogram.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd_execute_result.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\logging.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\murmurhash.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\mutexlock.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\perf_context_imp.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\posix_logger.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\random.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stack_trace.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stats_logger.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stl_wrappers.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stop_watch.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\string_util.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\testharness.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\testutil.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rpc\api\Handler.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rpc\api\Manager.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rpc\api\Service.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rpc\impl\ManagerImpl.h" />
|
||||
<ClInclude Include="..\..\src\ripple\rpc\ripple_rpc.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Listener.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Manager.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Section.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\SiteFile.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\impl\Logic.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\impl\Site.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\ripple_sitefiles.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sophia\ripple_sophia.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sslutil\api\bignum_error.h" />
|
||||
<ClInclude Include="..\..\src\ripple\sslutil\api\CAutoBN_CTX.h" />
|
||||
@@ -1675,6 +2302,7 @@
|
||||
<ClInclude Include="..\..\src\ripple\types\api\IdentifierStorage.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\IdentifierType.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\HashMaps.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\JsonPropertyStream.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\RandomNumbers.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\RippleAccountID.h" />
|
||||
<ClInclude Include="..\..\src\ripple\types\api\RippleAccountPrivateKey.h" />
|
||||
@@ -1694,6 +2322,7 @@
|
||||
<ClInclude Include="..\..\src\ripple\validators\api\Types.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\api\Manager.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\ChosenList.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Count.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Logic.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\SourceDesc.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\SourceFile.h" />
|
||||
@@ -1701,7 +2330,10 @@
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\SourceURL.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Store.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\StoreSqdb.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Tuning.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Utilities.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Validation.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Validator.h" />
|
||||
<ClInclude Include="..\..\src\ripple\validators\ripple_validators.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\consensus\DisputedTx.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\consensus\LedgerConsensus.h" />
|
||||
@@ -1714,6 +2346,7 @@
|
||||
<ClInclude Include="..\..\src\ripple_app\data\DBInit.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\data\SqliteDatabase.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\Ledger.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\LedgerCleaner.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\LedgerMaster.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\LedgerProposal.h" />
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\LedgerTiming.h" />
|
||||
@@ -1802,7 +2435,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\Log.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogFile.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LoggedTimings.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogJournal.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogPartition.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogSeverity.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogSink.h" />
|
||||
@@ -1817,8 +2449,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_basics\utility\ThreadName.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\utility\Time.h" />
|
||||
<ClInclude Include="..\..\src\ripple_basics\utility\UptimeTimer.h" />
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadSource.h" />
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadType.h" />
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\Config.h" />
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\ConfigSections.h" />
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadFeeTrack.h" />
|
||||
@@ -1875,7 +2505,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_hyperleveldb\ripple_hyperleveldb.h" />
|
||||
<ClInclude Include="..\..\src\ripple_leveldb\ripple_leveldb.h" />
|
||||
<ClInclude Include="..\..\src\ripple_mdb\ripple_mdb.h" />
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\AsyncService.h" />
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\impl\MultiSocketType.h" />
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\impl\RPCServerImp.h" />
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\RippleSSLContext.h" />
|
||||
@@ -1956,6 +2585,7 @@
|
||||
<ClInclude Include="..\..\src\websocket\src\sha1\sha1.h" />
|
||||
<ClInclude Include="..\..\src\websocket\src\shared_const_buffer.hpp" />
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\autotls.hpp" />
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\multitls.hpp" />
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\plain.hpp" />
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\socket_base.hpp" />
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\tls.hpp" />
|
||||
@@ -1981,12 +2611,16 @@
|
||||
<None Include="..\..\doc\Doxyfile" />
|
||||
<None Include="..\..\doc\rippled-example.cfg" />
|
||||
<None Include="..\..\LICENSE" />
|
||||
<None Include="..\..\src\ripple\algorithm\README.md" />
|
||||
<None Include="..\..\src\ripple\algorithm\TODO.md" />
|
||||
<None Include="..\..\src\ripple\beast\ripple_beastobjc.mm">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\http\README.md" />
|
||||
<None Include="..\..\src\ripple\http\TODO.md" />
|
||||
<None Include="..\..\src\ripple\json\impl\json_internalarray.inl" />
|
||||
<None Include="..\..\src\ripple\json\impl\json_internalmap.inl" />
|
||||
<None Include="..\..\src\ripple\json\impl\json_valueiterator.inl" />
|
||||
@@ -1994,6 +2628,26 @@
|
||||
<None Include="..\..\src\ripple\json\impl\version" />
|
||||
<None Include="..\..\README.md" />
|
||||
<None Include="..\..\SConstruct" />
|
||||
<None Include="..\..\src\ripple\json\README.md" />
|
||||
<None Include="..\..\src\ripple\json\TODO.md" />
|
||||
<None Include="..\..\src\ripple\peerfinder\README.md" />
|
||||
<None Include="..\..\src\ripple\peerfinder\TODO.md" />
|
||||
<None Include="..\..\src\ripple\resource\README.md" />
|
||||
<None Include="..\..\src\ripple\resource\TODO.md" />
|
||||
<None Include="..\..\src\ripple\rpc\README.md" />
|
||||
<None Include="..\..\src\ripple\rpc\TODO.md" />
|
||||
<None Include="..\..\src\ripple\sitefiles\README.md" />
|
||||
<None Include="..\..\src\ripple\sitefiles\TODO.md" />
|
||||
<None Include="..\..\src\ripple\sslutil\README.md" />
|
||||
<None Include="..\..\src\ripple\sslutil\TODO.md" />
|
||||
<None Include="..\..\src\ripple\testoverlay\README.md" />
|
||||
<None Include="..\..\src\ripple\testoverlay\TODO.md" />
|
||||
<None Include="..\..\src\ripple\types\README.md" />
|
||||
<None Include="..\..\src\ripple\types\TODO.md" />
|
||||
<None Include="..\..\src\ripple\validators\TODO.md" />
|
||||
<None Include="..\..\src\ripple\validators\README.md" />
|
||||
<None Include="..\..\src\ripple_app\ledger\TODO.md" />
|
||||
<None Include="..\..\src\ripple_app\TODO.md" />
|
||||
<None Include="..\QtCreator\rippled.pro" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -238,6 +238,63 @@
|
||||
<Filter Include="[1] Ripple\peerfinder\impl">
|
||||
<UniqueIdentifier>{cd1585a6-bc32-477d-88cd-275159dafa83}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\resource">
|
||||
<UniqueIdentifier>{ec26c9d0-ff17-466b-bf23-a36b8aa60717}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\resource\api">
|
||||
<UniqueIdentifier>{555d2128-108e-4afa-abe5-48d1508edb1e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\resource\impl">
|
||||
<UniqueIdentifier>{28a8ede0-743b-4a9a-bae1-5b2bc03ee44e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\algorithm">
|
||||
<UniqueIdentifier>{d7d4123e-3fb2-4f85-9596-1ae26b6c14fd}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\algorithm\api">
|
||||
<UniqueIdentifier>{548e1020-e083-4e5f-b867-59f76ac02d5a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\sitefiles">
|
||||
<UniqueIdentifier>{c7fbf1f8-6a13-434a-b6b6-a621624092db}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\sitefiles\api">
|
||||
<UniqueIdentifier>{5d288f7c-6bce-450f-8f46-b2ab6bb898be}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\sitefiles\impl">
|
||||
<UniqueIdentifier>{5609ad93-0654-41db-8ecb-7dfcde58d2e6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb">
|
||||
<UniqueIdentifier>{b244f110-0549-40d2-963b-8c0af87de917}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb">
|
||||
<UniqueIdentifier>{514156a8-2473-4bf3-940f-bd7c166e726f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\db">
|
||||
<UniqueIdentifier>{9e7aee3c-76bf-408c-8577-b055919b9f8c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\memenv">
|
||||
<UniqueIdentifier>{7e693c99-fcae-4f60-a6d4-e4fe27119959}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\port">
|
||||
<UniqueIdentifier>{d2a35ae6-6911-4b77-966d-cac44fccb429}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\port\win">
|
||||
<UniqueIdentifier>{076ca841-0b06-400a-a87c-8d1df126f43f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\table">
|
||||
<UniqueIdentifier>{17b0a87f-5a62-48af-9cdd-cbe9af7736d2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\util">
|
||||
<UniqueIdentifier>{e4649e1a-07bc-4633-a01f-3615a7da53c7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\include">
|
||||
<UniqueIdentifier>{c02d2b7e-253d-49fb-b0db-b30c861bb2dc}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\include\rocksdb">
|
||||
<UniqueIdentifier>{424405b5-72c7-4d07-add8-3c81d3da6e5a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="[1] Ripple\rocksdb\rocksdb\include\utilities">
|
||||
<UniqueIdentifier>{013f0eb9-bf1d-4b11-8c2c-3fd99d4b8ef5}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\ripple_basics\containers\RangeSet.cpp">
|
||||
@@ -810,9 +867,6 @@
|
||||
<ClCompile Include="..\..\src\ripple_basics\log\LogFile.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_basics\log\LogJournal.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_basics\log\LogSink.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClCompile>
|
||||
@@ -909,9 +963,6 @@
|
||||
<ClCompile Include="..\..\src\ripple_app\main\IoServicePool.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_app\main</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_net\basics\AsyncService.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_net\basics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sophia\ripple_sophia.c">
|
||||
<Filter>[1] Ripple\sophia</Filter>
|
||||
</ClCompile>
|
||||
@@ -1080,15 +1131,279 @@
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Slots.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\EndpointCache.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\SourceStrings.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\json\impl\Tests.cpp">
|
||||
<Filter>[1] Ripple\json\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Checker.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Cache.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\types\impl\JsonPropertyStream.cpp">
|
||||
<Filter>[1] Ripple\types\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\ripple_resource.cpp">
|
||||
<Filter>[1] Ripple\resource</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Charge.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Consumer.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Manager.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Tests.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\Fees.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\resource\impl\LegacyFees.cpp">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\peerfinder\impl\Resolver.cpp">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\ripple_sitefiles.cpp">
|
||||
<Filter>[1] Ripple\sitefiles</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\Section.cpp">
|
||||
<Filter>[1] Ripple\sitefiles\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\SiteFile.cpp">
|
||||
<Filter>[1] Ripple\sitefiles\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\sitefiles\impl\Manager.cpp">
|
||||
<Filter>[1] Ripple\sitefiles\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\ripple_rocksdb.cpp">
|
||||
<Filter>[1] Ripple\rocksdb</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\builder.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_bench.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_filesnapshot.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl_readonly.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_iter.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\db_stats_logger.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\dbformat.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\filename.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\log_reader.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\log_writer.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\memtable.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\memtablelist.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_helper.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_operator.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\repair.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\table_cache.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\table_properties_collector.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\transaction_log_impl.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_edit.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set_reduce_num_levels.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\db\write_batch.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\helpers\memenv\memenv.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\memenv</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\port\port_posix.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\port\stack_trace.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_builder.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_factory.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_reader.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_builder.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\block_test.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block_test.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\flush_block_policy.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\format.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\iterator.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\merger.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\table\two_level_iterator.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\arena_impl.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\auto_roll_logger.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\blob_store.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\bloom.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\cache.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\coding.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\comparator.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\crc32c.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_hdfs.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_posix.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\env_test.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\filelock_test.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\filter_policy.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\hash.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\hash_skiplist_rep.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\histogram.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_tool.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\logging.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\murmurhash.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\options.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\perf_context.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\signal_test.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\skiplistrep.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\slice.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\statistics.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\status.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\string_util.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\testharness.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\testutil.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\transformrep.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple\rocksdb\rocksdb\util\vectorrep.cc">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\ripple_app\ledger\LedgerCleaner.cpp">
|
||||
<Filter>[2] Old Ripple\ripple_app\ledger</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\ripple_basics\containers\KeyCache.h">
|
||||
@@ -1643,12 +1958,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_app\peers\Peers.h">
|
||||
<Filter>[2] Old Ripple\ripple_app\peers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadSource.h">
|
||||
<Filter>[2] Old Ripple\ripple_core\functional</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadType.h">
|
||||
<Filter>[2] Old Ripple\ripple_core\functional</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_app\main\LoadManager.h">
|
||||
<Filter>[2] Old Ripple\ripple_app\main</Filter>
|
||||
</ClInclude>
|
||||
@@ -1679,12 +1988,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\RPCDoor.h">
|
||||
<Filter>[2] Old Ripple\ripple_net\basics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadSource.h">
|
||||
<Filter>[1] Ripple\ripple_core\functional</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_core\functional\LoadType.h">
|
||||
<Filter>[1] Ripple\ripple_core\functional</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_app\main\LoadManager.h">
|
||||
<Filter>[1] Ripple\ripple_app\main</Filter>
|
||||
</ClInclude>
|
||||
@@ -1803,9 +2106,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LoggedTimings.h">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogJournal.h">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_basics\log\LogSink.h">
|
||||
<Filter>[2] Old Ripple\ripple_basics\log</Filter>
|
||||
</ClInclude>
|
||||
@@ -1887,9 +2187,6 @@
|
||||
<ClInclude Include="..\..\src\ripple_app\main\IoServicePool.h">
|
||||
<Filter>[2] Old Ripple\ripple_app\main</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_net\basics\AsyncService.h">
|
||||
<Filter>[2] Old Ripple\ripple_net\basics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sophia\ripple_sophia.h">
|
||||
<Filter>[1] Ripple\sophia</Filter>
|
||||
</ClInclude>
|
||||
@@ -2172,9 +2469,6 @@
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\PeerInfo.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\EndpointCache.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Source.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
@@ -2184,6 +2478,408 @@
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\api\Manager.h">
|
||||
<Filter>[1] Ripple\peerfinder\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Validator.h">
|
||||
<Filter>[1] Ripple\validators\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Tuning.h">
|
||||
<Filter>[1] Ripple\validators\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Validation.h">
|
||||
<Filter>[1] Ripple\validators\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\validators\impl\Count.h">
|
||||
<Filter>[1] Ripple\validators\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Checker.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Tuning.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LegacyEndpoint.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LegacyEndpointCache.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\CheckerAdapter.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Cache.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\CachedEndpoint.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\types\api\JsonPropertyStream.h">
|
||||
<Filter>[1] Ripple\types\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\ripple_resource.h">
|
||||
<Filter>[1] Ripple\resource</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Disposition.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Types.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Charge.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Consumer.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Manager.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\DecayingSample.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Kind.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Key.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Entry.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Fees.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Tuning.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Logic.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\Gossip.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\Import.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\api\LegacyFees.h">
|
||||
<Filter>[1] Ripple\resource\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\resource\impl\LogicType.h">
|
||||
<Filter>[1] Ripple\resource\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\LogicType.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Resolver.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\Giveaways.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\peerfinder\impl\GiveawaysAtHop.h">
|
||||
<Filter>[1] Ripple\peerfinder\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\algorithm\api\CycledSet.h">
|
||||
<Filter>[1] Ripple\algorithm\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\algorithm\api\DiscreteClock.h">
|
||||
<Filter>[1] Ripple\algorithm\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\ripple_sitefiles.h">
|
||||
<Filter>[1] Ripple\sitefiles</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\impl\Logic.h">
|
||||
<Filter>[1] Ripple\sitefiles\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\impl\Site.h">
|
||||
<Filter>[1] Ripple\sitefiles\impl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Section.h">
|
||||
<Filter>[1] Ripple\sitefiles\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\SiteFile.h">
|
||||
<Filter>[1] Ripple\sitefiles\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Manager.h">
|
||||
<Filter>[1] Ripple\sitefiles\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\sitefiles\api\Listener.h">
|
||||
<Filter>[1] Ripple\sitefiles\api</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\websocket\src\sockets\multitls.hpp">
|
||||
<Filter>[0] Libraries\websocket</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\ripple_rocksdb.h">
|
||||
<Filter>[1] Ripple\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\builder.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_impl_readonly.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_iter.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\db_statistics.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\dbformat.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\filename.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_format.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_reader.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\log_writer.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\memtable.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\memtablelist.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\merge_helper.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\prefix_filter_iterator.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\skiplist.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\snapshot.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\table_cache.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\table_properties_collector.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\transaction_log_impl.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\version_edit.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\version_set.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\db\write_batch_internal.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\db</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\helpers\memenv\memenv.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\memenv</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\atomic_pointer.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\port.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\port_posix.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\port\win\stdint.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\port\win</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_builder.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_factory.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_based_table_reader.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\block_builder.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\filter_block.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\format.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\iter_heap.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\iterator_wrapper.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\merger.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\table\two_level_iterator.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\table</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\arena_impl.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\auto_roll_logger.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\bit_set.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\blob_store.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\build_version.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\coding.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\crc32c.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\hash.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\histogram.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\ldb_cmd_execute_result.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\logging.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\murmurhash.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\mutexlock.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\perf_context_imp.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\posix_logger.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\random.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stack_trace.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stats_logger.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stl_wrappers.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\stop_watch.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\string_util.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\testharness.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\util\testutil.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\arena.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\c.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\cache.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\compaction_filter.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\comparator.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\db.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\env.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\filter_policy.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\flush_block_policy.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\iterator.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\ldb_tool.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\memtablerep.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\merge_operator.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\options.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\perf_context.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\slice.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\slice_transform.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\statistics.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\status.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\table.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\table_properties.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\transaction_log.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\types.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\universal_compaction.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\rocksdb\write_batch.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\rocksdb</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\utilities\stackable_db.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple\rocksdb\rocksdb\include\utilities\utility_db.h">
|
||||
<Filter>[1] Ripple\rocksdb\rocksdb\include\utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ripple_app\ledger\LedgerCleaner.h">
|
||||
<Filter>[2] Old Ripple\ripple_app\ledger</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\src\ripple_data\protocol\ripple.proto">
|
||||
@@ -2227,6 +2923,78 @@
|
||||
<None Include="..\..\LICENSE">
|
||||
<Filter>%28Notes%29</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\peerfinder\README.md">
|
||||
<Filter>[1] Ripple\peerfinder</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\testoverlay\README.md">
|
||||
<Filter>[1] Ripple\testoverlay</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\peerfinder\TODO.md">
|
||||
<Filter>[1] Ripple\peerfinder</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\validators\TODO.md">
|
||||
<Filter>[1] Ripple\validators</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\resource\TODO.md">
|
||||
<Filter>[1] Ripple\resource</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\resource\README.md">
|
||||
<Filter>[1] Ripple\resource</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\types\README.md">
|
||||
<Filter>[1] Ripple\types</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\types\TODO.md">
|
||||
<Filter>[1] Ripple\types</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\testoverlay\TODO.md">
|
||||
<Filter>[1] Ripple\testoverlay</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\algorithm\README.md">
|
||||
<Filter>[1] Ripple\algorithm</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\algorithm\TODO.md">
|
||||
<Filter>[1] Ripple\algorithm</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\http\README.md">
|
||||
<Filter>[1] Ripple\http</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\http\TODO.md">
|
||||
<Filter>[1] Ripple\http</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\json\README.md">
|
||||
<Filter>[1] Ripple\json</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\json\TODO.md">
|
||||
<Filter>[1] Ripple\json</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\rpc\README.md">
|
||||
<Filter>[1] Ripple\rpc</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\rpc\TODO.md">
|
||||
<Filter>[1] Ripple\rpc</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\sitefiles\README.md">
|
||||
<Filter>[1] Ripple\sitefiles</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\sitefiles\TODO.md">
|
||||
<Filter>[1] Ripple\sitefiles</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\sslutil\README.md">
|
||||
<Filter>[1] Ripple\sslutil</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\sslutil\TODO.md">
|
||||
<Filter>[1] Ripple\sslutil</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple\validators\README.md">
|
||||
<Filter>[1] Ripple\validators</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple_app\TODO.md">
|
||||
<Filter>[2] Old Ripple\ripple_app</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\ripple_app\ledger\TODO.md">
|
||||
<Filter>[2] Old Ripple\ripple_app\ledger</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\doc\todo\NIKB_TODO.txt">
|
||||
|
||||
@@ -159,7 +159,10 @@ COMPILED_FILES.extend([
|
||||
'src/ripple/http/ripple_http.cpp',
|
||||
'src/ripple/json/ripple_json.cpp',
|
||||
'src/ripple/peerfinder/ripple_peerfinder.cpp',
|
||||
'src/ripple/resource/ripple_resource.cpp',
|
||||
'src/ripple/rocksdb/ripple_rocksdb.cpp',
|
||||
'src/ripple/rpc/ripple_rpc.cpp',
|
||||
'src/ripple/sitefiles/ripple_sitefiles.cpp',
|
||||
'src/ripple/sophia/ripple_sophia.c',
|
||||
'src/ripple/sslutil/ripple_sslutil.cpp',
|
||||
'src/ripple/testoverlay/ripple_testoverlay.cpp',
|
||||
|
||||
118
db/autocompact_test.cc
Normal file
118
db/autocompact_test.cc
Normal file
@@ -0,0 +1,118 @@
|
||||
// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||
|
||||
#include "leveldb/db.h"
|
||||
#include "db/db_impl.h"
|
||||
#include "leveldb/cache.h"
|
||||
#include "util/testharness.h"
|
||||
#include "util/testutil.h"
|
||||
|
||||
namespace leveldb {
|
||||
|
||||
class AutoCompactTest {
|
||||
public:
|
||||
std::string dbname_;
|
||||
Cache* tiny_cache_;
|
||||
Options options_;
|
||||
DB* db_;
|
||||
|
||||
AutoCompactTest() {
|
||||
dbname_ = test::TmpDir() + "/autocompact_test";
|
||||
tiny_cache_ = NewLRUCache(100);
|
||||
options_.block_cache = tiny_cache_;
|
||||
DestroyDB(dbname_, options_);
|
||||
options_.create_if_missing = true;
|
||||
options_.compression = kNoCompression;
|
||||
ASSERT_OK(DB::Open(options_, dbname_, &db_));
|
||||
}
|
||||
|
||||
~AutoCompactTest() {
|
||||
delete db_;
|
||||
DestroyDB(dbname_, Options());
|
||||
delete tiny_cache_;
|
||||
}
|
||||
|
||||
std::string Key(int i) {
|
||||
char buf[100];
|
||||
snprintf(buf, sizeof(buf), "key%06d", i);
|
||||
return std::string(buf);
|
||||
}
|
||||
|
||||
uint64_t Size(const Slice& start, const Slice& limit) {
|
||||
Range r(start, limit);
|
||||
uint64_t size;
|
||||
db_->GetApproximateSizes(&r, 1, &size);
|
||||
return size;
|
||||
}
|
||||
|
||||
void DoReads(int n);
|
||||
};
|
||||
|
||||
static const int kValueSize = 200 * 1024;
|
||||
static const int kTotalSize = 100 * 1024 * 1024;
|
||||
static const int kCount = kTotalSize / kValueSize;
|
||||
|
||||
// Read through the first n keys repeatedly and check that they get
|
||||
// compacted (verified by checking the size of the key space).
|
||||
void AutoCompactTest::DoReads(int n) {
|
||||
std::string value(kValueSize, 'x');
|
||||
DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
|
||||
|
||||
// Fill database
|
||||
for (int i = 0; i < kCount; i++) {
|
||||
ASSERT_OK(db_->Put(WriteOptions(), Key(i), value));
|
||||
}
|
||||
ASSERT_OK(dbi->TEST_CompactMemTable());
|
||||
|
||||
// Delete everything
|
||||
for (int i = 0; i < kCount; i++) {
|
||||
ASSERT_OK(db_->Delete(WriteOptions(), Key(i)));
|
||||
}
|
||||
ASSERT_OK(dbi->TEST_CompactMemTable());
|
||||
|
||||
// Get initial measurement of the space we will be reading.
|
||||
const int64_t initial_size = Size(Key(0), Key(n));
|
||||
const int64_t initial_other_size = Size(Key(n), Key(kCount));
|
||||
|
||||
// Read until size drops significantly.
|
||||
std::string limit_key = Key(n);
|
||||
for (int read = 0; true; read++) {
|
||||
ASSERT_LT(read, 100) << "Taking too long to compact";
|
||||
Iterator* iter = db_->NewIterator(ReadOptions());
|
||||
for (iter->SeekToFirst();
|
||||
iter->Valid() && iter->key().ToString() < limit_key;
|
||||
iter->Next()) {
|
||||
// Drop data
|
||||
}
|
||||
delete iter;
|
||||
// Wait a little bit to allow any triggered compactions to complete.
|
||||
Env::Default()->SleepForMicroseconds(1000000);
|
||||
uint64_t size = Size(Key(0), Key(n));
|
||||
fprintf(stderr, "iter %3d => %7.3f MB [other %7.3f MB]\n",
|
||||
read+1, size/1048576.0, Size(Key(n), Key(kCount))/1048576.0);
|
||||
if (size <= initial_size/10) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Verify that the size of the key space not touched by the reads
|
||||
// is pretty much unchanged.
|
||||
const int64_t final_other_size = Size(Key(n), Key(kCount));
|
||||
ASSERT_LE(final_other_size, initial_other_size + 1048576);
|
||||
ASSERT_GE(final_other_size, initial_other_size/5 - 1048576);
|
||||
}
|
||||
|
||||
TEST(AutoCompactTest, ReadAll) {
|
||||
DoReads(kCount);
|
||||
}
|
||||
|
||||
TEST(AutoCompactTest, ReadHalf) {
|
||||
DoReads(kCount/2);
|
||||
}
|
||||
|
||||
} // namespace leveldb
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
return leveldb::test::RunAllTests();
|
||||
}
|
||||
@@ -84,6 +84,16 @@
|
||||
#
|
||||
#
|
||||
#
|
||||
# [ips_fixed]
|
||||
#
|
||||
# List of IP addresses to which rippled should always maintain peer
|
||||
# connections with. This is useful for manually forming private networks,
|
||||
# for example to configure a validation server that connects to the
|
||||
# Ripple network through a public-facing server, or for building a set
|
||||
# of cluster peers.
|
||||
#
|
||||
#
|
||||
#
|
||||
# [peer_ip]
|
||||
#
|
||||
# IP address or domain to bind to allow external connections from peers.
|
||||
@@ -647,6 +657,7 @@
|
||||
# LevelDB Use Google's LevelDB database (deprecated)
|
||||
# MDB Use MDB
|
||||
# none Use no backend
|
||||
# RocksDB Use Facebook's RocksDB database
|
||||
# SQLite Use SQLite
|
||||
#
|
||||
# Required keys:
|
||||
|
||||
@@ -4,20 +4,12 @@ RIPPLE TODO
|
||||
|
||||
Vinnie's List: Changes day to day, descending priority
|
||||
- PeerFinder work
|
||||
- Fix and tidy up broken beast classes
|
||||
- Validators work
|
||||
* Parse Validator line using cribbed code
|
||||
- Parse ContentBodyBuffer from HTTPResponse
|
||||
- HTTPMessage improvements
|
||||
- HTTPClient improvements based on HTTPServer
|
||||
- HTTPMessage improvements
|
||||
- Ditch old HTTPClient so I can take the name
|
||||
- Finish RPCAsyncServer, RPCService and RPCService::Manager
|
||||
- Fix RPCDoor to respect config setting for [rpc_secure]
|
||||
- Validators should delay the application of newly downloaded lists from
|
||||
sources, to mitigate the effects of attacks. Unless there's no validators
|
||||
in the list.
|
||||
- Validators RPC options to immediately apply UNL,
|
||||
manually revisit sources, etc...
|
||||
- Clean up calculation of COnfig file location.
|
||||
- Remove TESTNET and all related code and settings.
|
||||
- Remove addRpcSub, findRpcSub, and notify the appropriate partner(s)
|
||||
@@ -28,9 +20,21 @@ David Features:
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- std::priority_queue for DeadlineTimer
|
||||
|
||||
- Change ProxyInfo to use IPAddress, get rid of IPv4Address from the parsing
|
||||
code
|
||||
|
||||
- Validators should delay the application of newly downloaded lists from
|
||||
sources, to mitigate the effects of attacks. Unless there's no validators
|
||||
in the list.
|
||||
|
||||
- Validators RPC options to immediately apply UNL,
|
||||
manually revisit sources, etc...
|
||||
|
||||
- Look into using CMake
|
||||
|
||||
- IPv6 support in IPEndpoint
|
||||
- IPv6 support in IPAddress
|
||||
|
||||
- Configuration list for Jenkins
|
||||
|
||||
@@ -87,8 +91,6 @@ David Features:
|
||||
- Add "skipped" field to beginTestCase() to disable a test but still record
|
||||
that it was skipped in the output. Like for mdb import.
|
||||
|
||||
- use beast DeadlineTimer for sweep in Application
|
||||
|
||||
- Get rid of 'ref' typedefs that really mean const&
|
||||
|
||||
- Use secp256k1 from beast
|
||||
@@ -122,10 +124,6 @@ David Features:
|
||||
|
||||
- Rename RPCHandler to CallHandler
|
||||
|
||||
- Profile/VTune the application to identify hot spots
|
||||
* Determine why rippled has a slow startup on Windows
|
||||
* Improve the performance when running all unit tests on Windows
|
||||
|
||||
- Rename "fullBelow" to something like haveAllDescendants or haveAllChildren.
|
||||
|
||||
- Rewrite Sustain to use Beast and work on Windows as well
|
||||
@@ -133,18 +131,10 @@ David Features:
|
||||
|
||||
- Make sure the leak detector output appears on Linux and FreeBSD debug builds.
|
||||
|
||||
- Create SharedData <LoadState>, move all load related state variables currently
|
||||
protected by separated mutexes in different classes into the LoadState, and
|
||||
use read/write locking semantics to update the values. Later, use Listeners
|
||||
to notify dependent code to resolve the dependency inversion.
|
||||
|
||||
- Rename LoadMonitor to LoadMeter, change LoadEvent to LoadMeter::ScopedSample
|
||||
|
||||
- Rename LedgerMaster to Ledgers, create ILedgers interface.
|
||||
|
||||
- Figure out where previous ledgers go after a call to LedgerMaster::pushLedger()
|
||||
and see if it is possible to clean up the leaks on exit.
|
||||
|
||||
- Replace all NULL with nullptr
|
||||
|
||||
- Make TxFormats a member of ICore instead of a singleton.
|
||||
@@ -152,8 +142,6 @@ David Features:
|
||||
singleton. It might have to remain a singleton. At the very least,
|
||||
it should be a SharedSingleton to resolve ordering issues.
|
||||
|
||||
- Rename include guards to boost style, e.g. RIPPLE_LOG_H_INCLUDED
|
||||
|
||||
- Replace C11X with BEAST_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
||||
|
||||
- Remove "ENABLE_INSECURE" when the time is right.
|
||||
@@ -161,8 +149,6 @@ David Features:
|
||||
- lift unique_ptr / auto_ptr into ripple namespace,
|
||||
or replace with ScopedPointer (preferred)
|
||||
|
||||
- Make LevelDB and Ripple code work with both Unicode and non-Unicode Windows APIs
|
||||
|
||||
- Go searching through VFALCO notes and fix everything
|
||||
|
||||
- Deal with function-level statics used for SqliteDatabase (like in
|
||||
@@ -173,30 +159,8 @@ David Features:
|
||||
STObject
|
||||
SerializedLedgerEntry
|
||||
|
||||
- Replace uint160, uint256 in argument lists, template parameter lists, and
|
||||
data members with tyepdefs from ripple_ProtocolTypes.h
|
||||
|
||||
- Consolidate SQLite database classes: DatabaseCon, Database, SqliteDatabase.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
HYPERLEVELDB TODO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Port to Windows
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
LEVELDB TODO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Add VisualStudio 2012 project file to our fork
|
||||
|
||||
- Add LevelDB unity .cpp and .h to our fork
|
||||
|
||||
- Replace Beast specific platform macros with universal macros so that the
|
||||
unity doesn't require Beast
|
||||
|
||||
- Submit LevelDB fork changes to Bitcoin upstream
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
WEBSOCKET TODO
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -213,65 +177,6 @@ PROTOCOL BUFFERS TODO
|
||||
|
||||
- Make a Visual Studio 2012 Project for source browsing
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
NOTES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
LoadEvent
|
||||
|
||||
Is referenced with both a shared pointer and an auto pointer.
|
||||
Should be named LoadMeter::ScopedSample. Or possibly ScopedLoadSample
|
||||
|
||||
JobQueue
|
||||
|
||||
getLoadEvent and getLoadEventAP differ only in the style of pointer
|
||||
container which is returned. Unnecessary complexity.
|
||||
|
||||
Naming: Some names don't make sense.
|
||||
|
||||
Index
|
||||
Stop using Index to refer to keys in tables. Replace with "Key" ?
|
||||
Index implies a small integer, or a data structure.
|
||||
|
||||
This is all over the place in the Ledger API, "Index" of this and
|
||||
"Index" of that, the terminology is imprecise and helps neither
|
||||
understanding nor recall.
|
||||
|
||||
Inconsistent names
|
||||
|
||||
We have full names like SerializedType and then acronyms like STObject
|
||||
Two names for some things, e.g. SerializedLedgerEntry and SLE
|
||||
|
||||
Shared/Smart pointer typedefs in classes have a variety of different names
|
||||
for the same thing. e.g. "pointer", "ptr", "ptr_t", "wptr"
|
||||
|
||||
Verbose names
|
||||
|
||||
The prefix "Flat" is more appealing than "Serialized" because its shorter and
|
||||
easier to pronounce.
|
||||
|
||||
Ledger "Skip List"
|
||||
|
||||
Is not really a skip list data structure. This is more appropriately
|
||||
called an "index" although that name is currently used to identify hashes
|
||||
used as keys.
|
||||
|
||||
Interfaces
|
||||
|
||||
Serializer
|
||||
|
||||
Upon analysis this class does two incompatible things. Flattening, and
|
||||
unflattening. The interface should be reimplemented as two distinct
|
||||
abstract classes, InputStream and OutputStream with suitable implementations
|
||||
such as to and from a block of memory or dynamically allocated buffer.
|
||||
|
||||
The name and conflation of dual roles serves to confuse code at the point
|
||||
of call. Does set(Serializer& s) flatten or unflatten the data? This
|
||||
would be more clear:
|
||||
bool write (OutputStream& stream);
|
||||
|
||||
We have beast for InputStream and OutputStream, we can use those now.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Davidisms
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -300,31 +205,3 @@ A node is "full below" if we believe we have (either in the database or
|
||||
|
||||
The fullBelowCache is a cache of hashes of nodes that are full below. Which means
|
||||
there are no missing children
|
||||
|
||||
|
||||
What we want from the unique node list:
|
||||
- Some number of trusted roots (known by domain)
|
||||
probably organizations whose job is to provide a list of validators
|
||||
- We imagine the IRGA for example would establish some group whose job is to
|
||||
maintain a list of validators. There would be a public list of criteria
|
||||
that they would use to vet the validator. Things like:
|
||||
* Not anonymous
|
||||
* registered business
|
||||
* Physical location
|
||||
* Agree not to cease operations without notice / arbitrarily
|
||||
* Responsive to complaints
|
||||
- Identifiable jurisdiction
|
||||
* Homogeneity in the jurisdiction is a business risk
|
||||
* If all validators are in the same jurisdiction this is a business risk
|
||||
- OpenCoin sets criteria for the organizations
|
||||
- Rippled will ship with a list of trusted root "certificates"
|
||||
In other words this is a list of trusted domains from which the software
|
||||
can contact each trusted root and retrieve a list of "good" validators
|
||||
and then do something with that information
|
||||
- All the validation information would be public, including the broadcast
|
||||
messages.
|
||||
- The goal is to easily identify bad actors and assess network health
|
||||
* Malicious intent
|
||||
* Or, just hardware problems (faulty drive or memory)
|
||||
|
||||
|
||||
|
||||
59
issues/issue200_test.cc
Normal file
59
issues/issue200_test.cc
Normal file
@@ -0,0 +1,59 @@
|
||||
// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||
|
||||
// Test for issue 200: when iterator switches direction from backward
|
||||
// to forward, the current key can be yielded unexpectedly if a new
|
||||
// mutation has been added just before the current key.
|
||||
|
||||
#include "leveldb/db.h"
|
||||
#include "util/testharness.h"
|
||||
|
||||
namespace leveldb {
|
||||
|
||||
class Issue200 { };
|
||||
|
||||
TEST(Issue200, Test) {
|
||||
// Get rid of any state from an old run.
|
||||
std::string dbpath = test::TmpDir() + "/leveldb_issue200_test";
|
||||
DestroyDB(dbpath, Options());
|
||||
|
||||
DB *db;
|
||||
Options options;
|
||||
options.create_if_missing = true;
|
||||
ASSERT_OK(DB::Open(options, dbpath, &db));
|
||||
|
||||
WriteOptions write_options;
|
||||
ASSERT_OK(db->Put(write_options, "1", "b"));
|
||||
ASSERT_OK(db->Put(write_options, "2", "c"));
|
||||
ASSERT_OK(db->Put(write_options, "3", "d"));
|
||||
ASSERT_OK(db->Put(write_options, "4", "e"));
|
||||
ASSERT_OK(db->Put(write_options, "5", "f"));
|
||||
|
||||
ReadOptions read_options;
|
||||
Iterator *iter = db->NewIterator(read_options);
|
||||
|
||||
// Add an element that should not be reflected in the iterator.
|
||||
ASSERT_OK(db->Put(write_options, "25", "cd"));
|
||||
|
||||
iter->Seek("5");
|
||||
ASSERT_EQ(iter->key().ToString(), "5");
|
||||
iter->Prev();
|
||||
ASSERT_EQ(iter->key().ToString(), "4");
|
||||
iter->Prev();
|
||||
ASSERT_EQ(iter->key().ToString(), "3");
|
||||
iter->Next();
|
||||
ASSERT_EQ(iter->key().ToString(), "4");
|
||||
iter->Next();
|
||||
ASSERT_EQ(iter->key().ToString(), "5");
|
||||
|
||||
delete iter;
|
||||
delete db;
|
||||
DestroyDB(dbpath, options);
|
||||
}
|
||||
|
||||
} // namespace leveldb
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
return leveldb::test::RunAllTests();
|
||||
}
|
||||
@@ -13,14 +13,16 @@
|
||||
"ripple-lib": "0.7.25",
|
||||
"async": "~0.2.9",
|
||||
"extend": "~1.2.0",
|
||||
"simple-jsonrpc": "~0.0.2"
|
||||
"simple-jsonrpc": "~0.0.2",
|
||||
"deep-equal": "0.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"coffee-script": "~1.6.3",
|
||||
"mocha": "~1.13.0"
|
||||
},
|
||||
|
||||
"scripts": {
|
||||
"test": "mocha --reporter spec --ui tdd --timeout 10000 --slow 600 test/*-test.js"
|
||||
"test": "mocha test/*-test.{js,coffee}"
|
||||
},
|
||||
|
||||
"repository": {
|
||||
|
||||
@@ -107,6 +107,13 @@
|
||||
#define BEAST_ZLIB_INCLUDE_PATH <zlib.h>
|
||||
#endif
|
||||
|
||||
/** Config: BEAST_SQLITE_FORCE_NDEBUG
|
||||
Setting this option forces sqlite into release mode even if NDEBUG is not set
|
||||
*/
|
||||
#ifndef BEAST_SQLITE_FORCE_NDEBUG
|
||||
#define BEAST_SQLITE_FORCE_NDEBUG 1
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Boost
|
||||
@@ -159,8 +166,8 @@
|
||||
// Here temporarily to turn off new Validations code while it
|
||||
// is being written.
|
||||
//
|
||||
#ifndef RIPPLE_USE_NEW_VALIDATORS
|
||||
#define RIPPLE_USE_NEW_VALIDATORS 0
|
||||
#ifndef RIPPLE_USE_VALIDATORS
|
||||
#define RIPPLE_USE_VALIDATORS 0
|
||||
#endif
|
||||
|
||||
// Turning this on will use the new PeerFinder logic to establish connections
|
||||
|
||||
@@ -21,6 +21,16 @@ About git-subtree:
|
||||
https://github.com/apenwarr/git-subtree <br>
|
||||
http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/ <br>
|
||||
|
||||
<table align=left><tr>
|
||||
<th>dir</th>
|
||||
<th>What</th>
|
||||
</tr><tr>
|
||||
<td>beast</td>
|
||||
<td>Beast, the amazing cross-platform library.<br>
|
||||
git@github.com:vinniefalco/Beast.git
|
||||
</td>
|
||||
</tr></table>
|
||||
|
||||
## ./beast
|
||||
|
||||
Beast, the amazing cross-platform library.
|
||||
|
||||
3
src/beast/.gitignore
vendored
3
src/beast/.gitignore
vendored
@@ -15,6 +15,7 @@ Docs
|
||||
*.manifest
|
||||
*.manifest.res
|
||||
*.o
|
||||
*.opensdf
|
||||
*.d
|
||||
*.sdf
|
||||
xcuserdata
|
||||
@@ -24,5 +25,5 @@ contents.xcworkspacedata
|
||||
profile
|
||||
Builds/VisualStudio2012/Debug
|
||||
Builds/VisualStudio2012/Release
|
||||
|
||||
project.xcworkspace
|
||||
modules/beast_cryptopp
|
||||
|
||||
@@ -82,9 +82,15 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\beast\Arithmetic.h" />
|
||||
<ClInclude Include="..\..\beast\Asio.h" />
|
||||
<ClInclude Include="..\..\beast\asio\IPAddressConversion.h" />
|
||||
<ClInclude Include="..\..\beast\Atomic.h" />
|
||||
<ClInclude Include="..\..\beast\Boost.h" />
|
||||
<ClInclude Include="..\..\beast\boost\ErrorCode.h" />
|
||||
<ClInclude Include="..\..\beast\ByteOrder.h" />
|
||||
<ClInclude Include="..\..\beast\chrono\CPUMeter.h" />
|
||||
<ClInclude Include="..\..\beast\chrono\RelativeTime.h" />
|
||||
<ClInclude Include="..\..\beast\chrono\ScopedTimeInterval.h" />
|
||||
<ClInclude Include="..\..\beast\Config.h" />
|
||||
<ClInclude Include="..\..\beast\config\CompilerConfig.h" />
|
||||
<ClInclude Include="..\..\beast\config\compiler\Clang.h" />
|
||||
@@ -105,6 +111,7 @@
|
||||
<ClInclude Include="..\..\beast\config\StandardConfig.h" />
|
||||
<ClInclude Include="..\..\beast\Crypto.h" />
|
||||
<ClInclude Include="..\..\beast\crypto\impl\sha2\sha2.h" />
|
||||
<ClInclude Include="..\..\beast\crypto\MurmurHash.h" />
|
||||
<ClInclude Include="..\..\beast\crypto\Sha256.h" />
|
||||
<ClInclude Include="..\..\beast\CStdInt.h" />
|
||||
<ClInclude Include="..\..\beast\FixedArray.h" />
|
||||
@@ -131,8 +138,15 @@
|
||||
<ClInclude Include="..\..\beast\mpl\RemoveReference.h" />
|
||||
<ClInclude Include="..\..\beast\mpl\RemoveVolatile.h" />
|
||||
<ClInclude Include="..\..\beast\Net.h" />
|
||||
<ClInclude Include="..\..\beast\net\IPEndpoint.h" />
|
||||
<ClInclude Include="..\..\beast\net\BufferType.h" />
|
||||
<ClInclude Include="..\..\beast\net\DynamicBuffer.h" />
|
||||
<ClInclude Include="..\..\beast\net\IPAddress.h" />
|
||||
<ClInclude Include="..\..\beast\SafeBool.h" />
|
||||
<ClInclude Include="..\..\beast\SmartPtr.h" />
|
||||
<ClInclude Include="..\..\beast\smart_ptr\ContainerDeletePolicy.h" />
|
||||
<ClInclude Include="..\..\beast\smart_ptr\ScopedPointer.h" />
|
||||
<ClInclude Include="..\..\beast\smart_ptr\SharedObject.h" />
|
||||
<ClInclude Include="..\..\beast\smart_ptr\SharedPtr.h" />
|
||||
<ClInclude Include="..\..\beast\StaticAssert.h" />
|
||||
<ClInclude Include="..\..\beast\Strings.h" />
|
||||
<ClInclude Include="..\..\beast\strings\CharacterFunctions.h" />
|
||||
@@ -144,12 +158,24 @@
|
||||
<ClInclude Include="..\..\beast\strings\String.h" />
|
||||
<ClInclude Include="..\..\beast\strings\StringCharPointerType.h" />
|
||||
<ClInclude Include="..\..\beast\strings\StringFromNumber.h" />
|
||||
<ClInclude Include="..\..\beast\Thread.h" />
|
||||
<ClInclude Include="..\..\beast\thread\LockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\thread\SharedData.h" />
|
||||
<ClInclude Include="..\..\beast\thread\SharedLockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\thread\SharedMutexAdapter.h" />
|
||||
<ClInclude Include="..\..\beast\Threads.h" />
|
||||
<ClInclude Include="..\..\beast\Chrono.h" />
|
||||
<ClInclude Include="..\..\beast\threads\detail\BindHandler.h" />
|
||||
<ClInclude Include="..\..\beast\threads\detail\DispatchedHandler.h" />
|
||||
<ClInclude Include="..\..\beast\threads\LockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\threads\RecursiveMutex.h" />
|
||||
<ClInclude Include="..\..\beast\threads\ServiceQueue.h" />
|
||||
<ClInclude Include="..\..\beast\threads\SharedData.h" />
|
||||
<ClInclude Include="..\..\beast\threads\SharedLockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\threads\SharedMutexAdapter.h" />
|
||||
<ClInclude Include="..\..\beast\threads\SpinLock.h" />
|
||||
<ClInclude Include="..\..\beast\threads\Stoppable.h" />
|
||||
<ClInclude Include="..\..\beast\threads\Thread.h" />
|
||||
<ClInclude Include="..\..\beast\threads\ThreadLocalValue.h" />
|
||||
<ClInclude Include="..\..\beast\threads\TryLockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\threads\UnlockGuard.h" />
|
||||
<ClInclude Include="..\..\beast\threads\WaitableEvent.h" />
|
||||
<ClInclude Include="..\..\beast\threads\ScopedWrapperContext.h" />
|
||||
<ClInclude Include="..\..\beast\TypeTraits.h" />
|
||||
<ClInclude Include="..\..\beast\type_traits\IntegralConstant.h" />
|
||||
<ClInclude Include="..\..\beast\type_traits\IsIntegral.h" />
|
||||
@@ -157,10 +183,14 @@
|
||||
<ClInclude Include="..\..\beast\type_traits\RemoveSigned.h" />
|
||||
<ClInclude Include="..\..\beast\Uncopyable.h" />
|
||||
<ClInclude Include="..\..\beast\Utility.h" />
|
||||
<ClInclude Include="..\..\beast\utility\BaseFromMember.h" />
|
||||
<ClInclude Include="..\..\beast\utility\Debug.h" />
|
||||
<ClInclude Include="..\..\beast\utility\EnableIf.h" />
|
||||
<ClInclude Include="..\..\beast\utility\Error.h" />
|
||||
<ClInclude Include="..\..\beast\utility\Journal.h" />
|
||||
<ClInclude Include="..\..\beast\utility\LeakChecked.h" />
|
||||
<ClInclude Include="..\..\beast\utility\PropertyStream.h" />
|
||||
<ClInclude Include="..\..\beast\utility\StaticObject.h" />
|
||||
<ClInclude Include="..\..\beast\Version.h" />
|
||||
<ClInclude Include="..\..\config\BeastConfig.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\AbstractHandler.h" />
|
||||
@@ -171,8 +201,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\SharedHandlerAllocator.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\SharedHandlerPtr.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\SharedHandlerType.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\BufferType.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\ContentBodyBuffer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\BuffersType.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\FixedInputBuffer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\PeerRole.h" />
|
||||
@@ -186,7 +214,9 @@
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPParserImpl.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPParser.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPRequest.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPRequestParser.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPResponse.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPResponseParser.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPVersion.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\protocol\HandshakeDetectLogic.h" />
|
||||
<ClInclude Include="..\..\modules\beast_asio\protocol\HandshakeDetectLogicPROXY.h" />
|
||||
@@ -219,8 +249,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\ArrayAllocationBase.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\DynamicObject.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\ElementComparator.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\DynamicArray.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\HashMap.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\LinkedListPointer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\LockFreeQueue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\NamedValueSet.h" />
|
||||
@@ -228,15 +256,11 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\PropertySet.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SharedObjectArray.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\ScopedValueSetter.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SharedTable.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SortedLookupTable.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SortedSet.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SparseSet.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\DynamicList.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\Variant.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\FatalError.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\FPUFlags.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\LeakChecked.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\SemanticVersion.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\Throw.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\UnitTest.h" />
|
||||
@@ -257,34 +281,21 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Expression.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Interval.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Math.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\MurmurHash.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Random.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Range.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\uint24.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AllocatedBy.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AtomicCounter.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AtomicFlag.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AtomicPointer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AtomicState.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\CacheLine.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\ContainerDeletePolicy.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStore.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStoreWithoutTLS.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStoreWithTLS.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\GlobalFifoFreeStore.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\GlobalPagedFreeStore.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\MemoryAlignment.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\MemoryBlock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\OptionalScopedPointer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\PagedFreeStore.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\RecycledObjectPool.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedFunction.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedObject.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\ScopedPointer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedSingleton.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\WeakReference.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedPtr.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\StaticObject.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\misc\Main.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\misc\Result.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\misc\Uuid.h" />
|
||||
@@ -294,7 +305,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\native\osx_ObjCHelpers.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\native\posix_SharedCode.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\native\win32_ComSmartPtr.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\network\IPAddress.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\network\MACAddress.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\network\NamedPipe.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\network\Socket.h" />
|
||||
@@ -327,26 +337,12 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\InterProcessLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\Process.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ReadWriteLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ReadWriteMutex.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ScopedLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ScopedReadLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ScopedWriteLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\SpinDelay.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\SpinLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\Thread.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ThreadLocalValue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ThreadPool.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\TimeSliceThread.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\WaitableEvent.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\CallQueue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\DeadlineTimer.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\InterruptibleThread.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Listeners.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ManualCallQueue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Semaphore.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ServiceQueue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Stoppable.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ThreadWithCallQueue.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Workers.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\detail\ScopedLock.h" />
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\detail\TrackedMutex.h" />
|
||||
@@ -407,7 +403,21 @@
|
||||
<ClInclude Include="..\..\modules\beast_sqlite\sqlite\sqlite3ext.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\beast\asio\Asio.cpp" />
|
||||
<ClCompile Include="..\..\beast\asio\impl\IPAddressConversion.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\boost\Boost.cpp" />
|
||||
<ClCompile Include="..\..\beast\chrono\Chrono.cpp" />
|
||||
<ClCompile Include="..\..\beast\chrono\impl\CPUMeter.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\chrono\impl\RelativeTime.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -415,6 +425,12 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\crypto\Crypto.cpp" />
|
||||
<ClCompile Include="..\..\beast\crypto\impl\MurmurHash.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\crypto\impl\Sha256.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -482,13 +498,20 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\impl\IPEndpoint.cpp">
|
||||
<ClCompile Include="..\..\beast\net\impl\DynamicBuffer.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\impl\IPAddress.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\Net.cpp" />
|
||||
<ClCompile Include="..\..\beast\smart_ptr\SmartPtr.cpp" />
|
||||
<ClCompile Include="..\..\beast\strings\impl\CharacterFunctions.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -502,6 +525,43 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\strings\Strings.cpp" />
|
||||
<ClCompile Include="..\..\beast\threads\impl\Atomic.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\RecursiveMutex.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\ServiceQueue.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\Stoppable.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\Thread.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\WaitableEvent.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\Threads.cpp" />
|
||||
<ClCompile Include="..\..\beast\utility\impl\Debug.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -520,14 +580,26 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\Utility.cpp" />
|
||||
<ClCompile Include="..\..\modules\beast_asio\async\SharedHandler.cpp">
|
||||
<ClCompile Include="..\..\beast\utility\impl\LeakChecked.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\basics\ContentBodyBuffer.cpp">
|
||||
<ClCompile Include="..\..\beast\utility\impl\PropertyStream.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\impl\StaticObject.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\Utility.cpp" />
|
||||
<ClCompile Include="..\..\modules\beast_asio\async\SharedHandler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
@@ -580,12 +652,24 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPRequestParser.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPResponse.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPResponseParser.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPVersion.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -701,30 +785,6 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\DynamicArray.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\DynamicList.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\HashMap.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\Assert.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\FatalError.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -735,12 +795,6 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\LeakChecked.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\SemanticVersion.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -831,54 +885,18 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\maths\MurmurHash.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\maths\Random.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\FifoFreeStoreWithoutTLS.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\FifoFreeStoreWithTLS.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\GlobalPagedFreeStore.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\MemoryBlock.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\PagedFreeStore.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\StaticObject.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\misc\Main.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@@ -1023,12 +1041,6 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\network\IPAddress.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\network\MACAddress.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
@@ -1161,90 +1173,24 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\ReadWriteMutex.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\SpinDelay.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\Thread.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\ThreadPool.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\TimeSliceThread.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\CallQueue.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\DeadlineTimer.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\InterruptibleThread.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Listeners.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ManualCallQueue.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Semaphore.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ServiceQueue.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Stoppable.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ThreadWithCallQueue.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Workers.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
|
||||
@@ -234,9 +234,6 @@
|
||||
<Filter Include="beast\utility\impl">
|
||||
<UniqueIdentifier>{775ab0d6-aa5f-43d7-ab3b-3c01652a9ef1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\thread">
|
||||
<UniqueIdentifier>{da8084c0-491b-4eb0-b750-97182a9deed4}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\http">
|
||||
<UniqueIdentifier>{56ef157f-ad92-4da7-8fbf-00723f769732}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -285,6 +282,27 @@
|
||||
<Filter Include="beast\config\stdlib">
|
||||
<UniqueIdentifier>{7243e5e5-ad7e-4d81-8444-d545919e850c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\smart_ptr">
|
||||
<UniqueIdentifier>{4e9c54da-1581-41d7-ac75-48140e4a13d4}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\threads">
|
||||
<UniqueIdentifier>{f864ff58-1055-4c56-805f-9f181c4f0aa1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\threads\impl">
|
||||
<UniqueIdentifier>{386a8cd8-6be3-4cac-9bca-7a01fdb5327a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\threads\detail">
|
||||
<UniqueIdentifier>{b116764e-1ad5-4854-a549-73c5beb5ae37}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\boost">
|
||||
<UniqueIdentifier>{d7ec873a-d1e7-4341-9d20-a1be8f8ddd88}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\asio">
|
||||
<UniqueIdentifier>{f73fedee-2efb-431b-9f4f-d2fd405454f6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="beast\asio\impl">
|
||||
<UniqueIdentifier>{30b0fdfb-02b6-47dd-bdd9-ffc1f57e1f2c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\modules\beast_core\beast_core.h">
|
||||
@@ -377,9 +395,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\OptionalScopedPointer.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\ScopedPointer.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\WeakReference.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
@@ -407,9 +422,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\native\win32_ComSmartPtr.h">
|
||||
<Filter>beast_core\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\network\IPAddress.h">
|
||||
<Filter>beast_core\network</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\network\MACAddress.h">
|
||||
<Filter>beast_core\network</Filter>
|
||||
</ClInclude>
|
||||
@@ -491,24 +503,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ScopedWriteLock.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\SpinLock.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\Thread.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ThreadLocalValue.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ThreadPool.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\TimeSliceThread.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\WaitableEvent.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\time\PerformanceCounter.h">
|
||||
<Filter>beast_core\time</Filter>
|
||||
</ClInclude>
|
||||
@@ -587,18 +581,9 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\SpinDelay.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SharedTable.h">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\SortedLookupTable.h">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\FPUFlags.h">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\LeakChecked.h">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\Throw.h">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClInclude>
|
||||
@@ -698,9 +683,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_sqdb\detail\use_type.h">
|
||||
<Filter>beast_sqdb\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\MurmurHash.h">
|
||||
<Filter>beast_core\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\text\LexicalCast.h">
|
||||
<Filter>beast_core\text</Filter>
|
||||
</ClInclude>
|
||||
@@ -710,15 +692,9 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\uint24.h">
|
||||
<Filter>beast_core\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\ContainerDeletePolicy.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\MeasureFunctionCallTime.h">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\threads\ReadWriteMutex.h">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\MutexTraits.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
@@ -743,51 +719,15 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\DeadlineTimer.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\CallQueue.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\InterruptibleThread.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Listeners.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ManualCallQueue.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Semaphore.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ThreadWithCallQueue.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Workers.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\maths\Math.h">
|
||||
<Filter>beast_core\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\AllocatedBy.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStore.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStoreWithoutTLS.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\FifoFreeStoreWithTLS.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\GlobalFifoFreeStore.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\GlobalPagedFreeStore.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\PagedFreeStore.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\sockets\SocketWrapperStrand.h">
|
||||
<Filter>beast_asio\sockets</Filter>
|
||||
</ClInclude>
|
||||
@@ -824,15 +764,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\system\SystemStats.h">
|
||||
<Filter>beast_core\system</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\DynamicList.h">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\DynamicArray.h">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\containers\HashMap.h">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\intrusive\ForwardList.h">
|
||||
<Filter>beast\intrusive</Filter>
|
||||
</ClInclude>
|
||||
@@ -857,12 +788,6 @@
|
||||
<ClInclude Include="..\..\beast\mpl\PointerToOther.h">
|
||||
<Filter>beast\mpl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedPtr.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedObject.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\ComposedAsyncOperation.h">
|
||||
<Filter>beast_asio\async</Filter>
|
||||
</ClInclude>
|
||||
@@ -953,9 +878,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_asio\protocol\PrefilledReadStream.h">
|
||||
<Filter>beast_asio\protocol</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\ContentBodyBuffer.h">
|
||||
<Filter>beast_asio\basics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPResponse.h">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClInclude>
|
||||
@@ -986,9 +908,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\BuffersType.h">
|
||||
<Filter>beast_asio\basics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\basics\BufferType.h">
|
||||
<Filter>beast_asio\basics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedSingleton.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
@@ -1001,9 +920,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\diagnostic\FatalError.h">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\StaticObject.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_crypto\math\UnsignedInteger.h">
|
||||
<Filter>beast_crypto\math</Filter>
|
||||
</ClInclude>
|
||||
@@ -1016,9 +932,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_core\memory\SharedFunction.h">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\net\IPEndpoint.h">
|
||||
<Filter>beast\net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Config.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
@@ -1058,21 +971,6 @@
|
||||
<ClInclude Include="..\..\beast\mpl\IsCallPossible.h">
|
||||
<Filter>beast\mpl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Thread.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\thread\LockGuard.h">
|
||||
<Filter>beast\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\thread\SharedLockGuard.h">
|
||||
<Filter>beast\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\thread\SharedData.h">
|
||||
<Filter>beast\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\thread\SharedMutexAdapter.h">
|
||||
<Filter>beast\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Uncopyable.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
@@ -1100,9 +998,6 @@
|
||||
<ClInclude Include="..\..\beast\mpl\CopyConst.h">
|
||||
<Filter>beast\mpl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\Stoppable.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\http\impl\http-parser\http_parser.h">
|
||||
<Filter>beast\http\impl\http-parser</Filter>
|
||||
</ClInclude>
|
||||
@@ -1202,9 +1097,6 @@
|
||||
<ClInclude Include="..\..\modules\beast_asio\async\AbstractHandler.h">
|
||||
<Filter>beast_asio\async</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_core\thread\ServiceQueue.h">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Chrono.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
@@ -1257,6 +1149,120 @@
|
||||
<ClInclude Include="..\..\beast\config\SelectStdlibConfig.h">
|
||||
<Filter>beast\config</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\smart_ptr\ContainerDeletePolicy.h">
|
||||
<Filter>beast\smart_ptr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\smart_ptr\ScopedPointer.h">
|
||||
<Filter>beast\smart_ptr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\SmartPtr.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\net\DynamicBuffer.h">
|
||||
<Filter>beast\net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\net\BufferType.h">
|
||||
<Filter>beast\net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPRequestParser.h">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\modules\beast_asio\http\HTTPResponseParser.h">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\chrono\ScopedTimeInterval.h">
|
||||
<Filter>beast\chrono</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\chrono\CPUMeter.h">
|
||||
<Filter>beast\chrono</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\smart_ptr\SharedObject.h">
|
||||
<Filter>beast\smart_ptr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\smart_ptr\SharedPtr.h">
|
||||
<Filter>beast\smart_ptr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Threads.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\LockGuard.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\RecursiveMutex.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\ServiceQueue.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\SharedData.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\SharedLockGuard.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\SharedMutexAdapter.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\SpinLock.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\Thread.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\ThreadLocalValue.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\TryLockGuard.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\UnlockGuard.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\WaitableEvent.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\utility\LeakChecked.h">
|
||||
<Filter>beast\utility</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\utility\StaticObject.h">
|
||||
<Filter>beast\utility</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\Stoppable.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\detail\DispatchedHandler.h">
|
||||
<Filter>beast\threads\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\detail\BindHandler.h">
|
||||
<Filter>beast\threads\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\boost\ErrorCode.h">
|
||||
<Filter>beast\boost</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Boost.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\utility\PropertyStream.h">
|
||||
<Filter>beast\utility</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\threads\ScopedWrapperContext.h">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\utility\BaseFromMember.h">
|
||||
<Filter>beast\utility</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\net\IPAddress.h">
|
||||
<Filter>beast\net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\Asio.h">
|
||||
<Filter>beast</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\asio\IPAddressConversion.h">
|
||||
<Filter>beast\asio</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\beast\crypto\MurmurHash.h">
|
||||
<Filter>beast\crypto</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\AbstractFifo.cpp">
|
||||
@@ -1364,9 +1370,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_core\native\win32_Threads.cpp">
|
||||
<Filter>beast_core\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\network\IPAddress.cpp">
|
||||
<Filter>beast_core\network</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\network\MACAddress.cpp">
|
||||
<Filter>beast_core\network</Filter>
|
||||
</ClCompile>
|
||||
@@ -1424,15 +1427,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\ReadWriteLock.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\Thread.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\ThreadPool.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\TimeSliceThread.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\time\PerformanceCounter.cpp">
|
||||
<Filter>beast_core\time</Filter>
|
||||
</ClCompile>
|
||||
@@ -1502,9 +1496,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\FPUFlags.cpp">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\LeakChecked.cpp">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\SpinDelay.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
@@ -1574,57 +1565,24 @@
|
||||
<ClCompile Include="..\..\modules\beast_sqdb\source\use_type.cpp">
|
||||
<Filter>beast_sqdb\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\maths\MurmurHash.cpp">
|
||||
<Filter>beast_core\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\text\LexicalCast.cpp">
|
||||
<Filter>beast_core\text</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\SemanticVersion.cpp">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\threads\ReadWriteMutex.cpp">
|
||||
<Filter>beast_core\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\impl\TrackedMutex.cpp">
|
||||
<Filter>beast_core\thread\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\DeadlineTimer.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\CallQueue.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\InterruptibleThread.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Listeners.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ManualCallQueue.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Semaphore.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ThreadWithCallQueue.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Workers.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\FifoFreeStoreWithoutTLS.cpp">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\FifoFreeStoreWithTLS.cpp">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\GlobalPagedFreeStore.cpp">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\PagedFreeStore.cpp">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\basics\SSLContext.cpp">
|
||||
<Filter>beast_asio\basics</Filter>
|
||||
</ClCompile>
|
||||
@@ -1634,15 +1592,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_core\system\SystemStats.cpp">
|
||||
<Filter>beast_core\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\DynamicArray.cpp">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\DynamicList.cpp">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\containers\HashMap.cpp">
|
||||
<Filter>beast_core\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\async\SharedHandler.cpp">
|
||||
<Filter>beast_asio\async</Filter>
|
||||
</ClCompile>
|
||||
@@ -1688,9 +1637,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_asio\protocol\HandshakeDetectLogicPROXY.cpp">
|
||||
<Filter>beast_asio\protocol</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\basics\ContentBodyBuffer.cpp">
|
||||
<Filter>beast_asio\basics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPResponse.cpp">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClCompile>
|
||||
@@ -1730,12 +1676,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\FatalError.cpp">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\memory\StaticObject.cpp">
|
||||
<Filter>beast_core\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\diagnostic\Assert.cpp">
|
||||
<Filter>beast_core\diagnostic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_crypto\math\UnsignedInteger.cpp">
|
||||
<Filter>beast_crypto\math</Filter>
|
||||
</ClCompile>
|
||||
@@ -1745,9 +1685,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_extras\beast_extras.cpp">
|
||||
<Filter>beast_extras</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\impl\IPEndpoint.cpp">
|
||||
<Filter>beast\net\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\Net.cpp">
|
||||
<Filter>beast\net</Filter>
|
||||
</ClCompile>
|
||||
@@ -1760,9 +1697,6 @@
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPRequest.cpp">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\Stoppable.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\http\impl\http-parser\http_parser.c">
|
||||
<Filter>beast\http\impl\http-parser</Filter>
|
||||
</ClCompile>
|
||||
@@ -1811,9 +1745,6 @@
|
||||
<ClCompile Include="..\..\beast\crypto\impl\Sha256.cpp">
|
||||
<Filter>beast\crypto\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_core\thread\ServiceQueue.cpp">
|
||||
<Filter>beast_core\thread</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\chrono\impl\RelativeTime.cpp">
|
||||
<Filter>beast\chrono\impl</Filter>
|
||||
</ClCompile>
|
||||
@@ -1826,6 +1757,66 @@
|
||||
<ClCompile Include="..\..\beast\utility\impl\Error.cpp">
|
||||
<Filter>beast\utility\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\impl\DynamicBuffer.cpp">
|
||||
<Filter>beast\net\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPRequestParser.cpp">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\modules\beast_asio\http\HTTPResponseParser.cpp">
|
||||
<Filter>beast_asio\http</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\chrono\impl\CPUMeter.cpp">
|
||||
<Filter>beast\chrono\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\smart_ptr\SmartPtr.cpp">
|
||||
<Filter>beast\smart_ptr</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\Atomic.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\RecursiveMutex.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\ServiceQueue.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\WaitableEvent.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\Threads.cpp">
|
||||
<Filter>beast\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\Thread.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\impl\LeakChecked.cpp">
|
||||
<Filter>beast\utility\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\impl\StaticObject.cpp">
|
||||
<Filter>beast\utility\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\threads\impl\Stoppable.cpp">
|
||||
<Filter>beast\threads\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\boost\Boost.cpp">
|
||||
<Filter>beast\boost</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\utility\impl\PropertyStream.cpp">
|
||||
<Filter>beast\utility\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\net\impl\IPAddress.cpp">
|
||||
<Filter>beast\net\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\asio\Asio.cpp">
|
||||
<Filter>beast\asio</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\asio\impl\IPAddressConversion.cpp">
|
||||
<Filter>beast\asio\impl</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\beast\crypto\impl\MurmurHash.cpp">
|
||||
<Filter>beast\crypto\impl</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\TODO.txt">
|
||||
|
||||
@@ -2,13 +2,6 @@
|
||||
BEAST TODO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Remove ReadWriteMutex and replace it with a CriticalSection
|
||||
since the implementation is broken.
|
||||
|
||||
- Rewrite SharedData to work with a CriticalSection
|
||||
|
||||
- Use new file naming convention
|
||||
|
||||
- Use SemanticVersion for beast version numbers to replace BEAST_VERSION
|
||||
|
||||
- add support for a __PRETTY_FUNCTION__ equivalent for all environments
|
||||
@@ -17,13 +10,6 @@ BEAST TODO
|
||||
|
||||
- Import secp256k1 from sipa
|
||||
|
||||
- HashMap work:
|
||||
- Add unit test
|
||||
- Return size_t from hash function, take out upperLimit, move mod % to caller
|
||||
- Make hash function a functor using operator()
|
||||
- Implement HardenedHashFunctions
|
||||
- Fix problem with assigning to the result of operator[] maybe use a proxy?
|
||||
|
||||
- Set sqlite thread safety model to '2' in beast_sqlite
|
||||
|
||||
- Document and rename all the sqdb files and classes
|
||||
@@ -60,8 +46,6 @@ BEAST TODO
|
||||
|
||||
- Rename malloc/calloc JUCE members that conflict with the debug CRT from MSVC
|
||||
|
||||
- Make beast::HashMap support assignment via operator[]
|
||||
|
||||
- Reformat every Doxygen comment
|
||||
- Fix Doxygen metatags
|
||||
- update Beast Doxyfile
|
||||
|
||||
@@ -17,12 +17,9 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREAD_H_INCLUDED
|
||||
#define BEAST_THREAD_H_INCLUDED
|
||||
#ifndef BEAST_ASIO_H_INCLUDED
|
||||
#define BEAST_ASIO_H_INCLUDED
|
||||
|
||||
#include "thread/LockGuard.h"
|
||||
#include "thread/SharedLockGuard.h"
|
||||
#include "thread/SharedMutexAdapter.h"
|
||||
#include "thread/SharedData.h"
|
||||
#include "asio/IPAddressConversion.h"
|
||||
|
||||
#endif
|
||||
31
src/beast/beast/Boost.h
Normal file
31
src/beast/beast/Boost.h
Normal file
@@ -0,0 +1,31 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_BOOST_H_INCLUDED
|
||||
#define BEAST_BOOST_H_INCLUDED
|
||||
|
||||
// These classes require boost in order to be used.
|
||||
|
||||
#include "boost/ErrorCode.h"
|
||||
|
||||
#endif
|
||||
@@ -20,6 +20,8 @@
|
||||
#ifndef BEAST_CHRONO_H_INCLUDED
|
||||
#define BEAST_CHRONO_H_INCLUDED
|
||||
|
||||
#include "chrono/CPUMeter.h"
|
||||
#include "chrono/RelativeTime.h"
|
||||
#include "chrono/ScopedTimeInterval.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#ifndef BEAST_CRYPTO_H_INCLUDED
|
||||
#define BEAST_CRYPTO_H_INCLUDED
|
||||
|
||||
#include "crypto/MurmurHash.h"
|
||||
#include "crypto/Sha256.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
#ifndef BEAST_NET_H_INCLUDED
|
||||
#define BEAST_NET_H_INCLUDED
|
||||
|
||||
#include "net/IPEndpoint.h"
|
||||
#include "net/BufferType.h"
|
||||
#include "net/DynamicBuffer.h"
|
||||
|
||||
#include "net/IPAddress.h"
|
||||
|
||||
#endif
|
||||
|
||||
30
src/beast/beast/SmartPtr.h
Normal file
30
src/beast/beast/SmartPtr.h
Normal file
@@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_SMARTPTR_H_INCLUDED
|
||||
#define BEAST_SMARTPTR_H_INCLUDED
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
#include "smart_ptr/ContainerDeletePolicy.h"
|
||||
#include "smart_ptr/SharedObject.h"
|
||||
#include "smart_ptr/SharedPtr.h"
|
||||
#include "smart_ptr/ScopedPointer.h"
|
||||
|
||||
#endif
|
||||
37
src/beast/beast/Threads.h
Normal file
37
src/beast/beast/Threads.h
Normal file
@@ -0,0 +1,37 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_H_INCLUDED
|
||||
#define BEAST_THREADS_H_INCLUDED
|
||||
|
||||
#include "threads/LockGuard.h"
|
||||
#include "threads/UnlockGuard.h"
|
||||
#include "threads/TryLockGuard.h"
|
||||
#include "threads/SharedLockGuard.h"
|
||||
#include "threads/SharedMutexAdapter.h"
|
||||
#include "threads/SharedData.h"
|
||||
#include "threads/ServiceQueue.h"
|
||||
#include "threads/SpinLock.h"
|
||||
#include "threads/Stoppable.h"
|
||||
#include "threads/Thread.h"
|
||||
#include "threads/ThreadLocalValue.h"
|
||||
#include "threads/WaitableEvent.h"
|
||||
#include "threads/ScopedWrapperContext.h"
|
||||
|
||||
#endif
|
||||
@@ -20,10 +20,14 @@
|
||||
#ifndef BEAST_UTILITY_H_INCLUDED
|
||||
#define BEAST_UTILITY_H_INCLUDED
|
||||
|
||||
#include "utility/BaseFromMember.h"
|
||||
#include "utility/Debug.h"
|
||||
#include "utility/EnableIf.h"
|
||||
#include "utility/Error.h"
|
||||
#include "utility/Journal.h"
|
||||
#include "utility/LeakChecked.h"
|
||||
#include "utility/PropertyStream.h"
|
||||
#include "utility/StaticObject.h"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
22
src/beast/beast/asio/Asio.cpp
Normal file
22
src/beast/beast/asio/Asio.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "impl/IPAddressConversion.cpp"
|
||||
62
src/beast/beast/asio/IPAddressConversion.h
Normal file
62
src/beast/beast/asio/IPAddressConversion.h
Normal file
@@ -0,0 +1,62 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_ASIO_IPADDRESSCONVERSION_H_INCLUDED
|
||||
#define BEAST_ASIO_IPADDRESSCONVERSION_H_INCLUDED
|
||||
|
||||
#include "../net/IPAddress.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
|
||||
namespace beast {
|
||||
|
||||
struct IPAddressConversion
|
||||
{
|
||||
/** Convert to IPAddress.
|
||||
The port is set to zero.
|
||||
*/
|
||||
static IPAddress from_asio (boost::asio::ip::address const& address);
|
||||
|
||||
/** Convert to IPAddress, including port. */
|
||||
static IPAddress from_asio (boost::asio::ip::tcp::endpoint const& endpoint);
|
||||
|
||||
/** Convert to asio::ip::address.
|
||||
The port is ignored.
|
||||
*/
|
||||
static boost::asio::ip::address to_asio_address (IPAddress const& address);
|
||||
|
||||
/** Convert to asio::ip::tcp::endpoint. */
|
||||
static boost::asio::ip::tcp::endpoint to_asio_endpoint (IPAddress const& address);
|
||||
|
||||
/** Conversions to string. */
|
||||
/** @{ */
|
||||
static std::string to_string (boost::asio::ip::tcp::endpoint const& endpoint)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << endpoint;
|
||||
return ss.str();
|
||||
}
|
||||
/** @} */
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
65
src/beast/beast/asio/impl/IPAddressConversion.cpp
Normal file
65
src/beast/beast/asio/impl/IPAddressConversion.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../IPAddressConversion.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
IPAddress IPAddressConversion::from_asio (boost::asio::ip::address const& address)
|
||||
{
|
||||
if (address.is_v4 ())
|
||||
{
|
||||
boost::asio::ip::address_v4::bytes_type const bytes (
|
||||
address.to_v4().to_bytes());
|
||||
return IPAddress (IPAddress::V4 (
|
||||
bytes [0], bytes [1], bytes [2], bytes [3]));
|
||||
}
|
||||
|
||||
// VFALCO TODO IPv6 support
|
||||
bassertfalse;
|
||||
return IPAddress();
|
||||
}
|
||||
|
||||
IPAddress IPAddressConversion::from_asio (boost::asio::ip::tcp::endpoint const& endpoint)
|
||||
{
|
||||
return from_asio (endpoint.address()).withPort (endpoint.port());
|
||||
}
|
||||
|
||||
boost::asio::ip::address IPAddressConversion::to_asio_address (IPAddress const& address)
|
||||
{
|
||||
if (address.isV4 ())
|
||||
{
|
||||
return boost::asio::ip::address (
|
||||
boost::asio::ip::address_v4 (
|
||||
address.v4().value));
|
||||
}
|
||||
|
||||
// VFALCO TODO IPv6 support
|
||||
bassertfalse;
|
||||
return boost::asio::ip::address (
|
||||
boost::asio::ip::address_v6 ());
|
||||
}
|
||||
|
||||
boost::asio::ip::tcp::endpoint IPAddressConversion::to_asio_endpoint (IPAddress const& address)
|
||||
{
|
||||
return boost::asio::ip::tcp::endpoint (
|
||||
to_asio_address (address), address.port());
|
||||
}
|
||||
|
||||
}
|
||||
30
src/beast/beast/boost/Boost.cpp
Normal file
30
src/beast/beast/boost/Boost.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "ErrorCode.h"
|
||||
|
||||
namespace detail {
|
||||
|
||||
// to squelch linker warnings
|
||||
int boostUnusedVariable = 0;
|
||||
|
||||
}
|
||||
|
||||
@@ -17,22 +17,19 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_FIFOFREESTORE_H_INCLUDED
|
||||
#define BEAST_FIFOFREESTORE_H_INCLUDED
|
||||
#ifndef BEAST_BOOST_ERRORCODE_H_INCLUDED
|
||||
#define BEAST_BOOST_ERRORCODE_H_INCLUDED
|
||||
|
||||
/** Selected free store based on compilation settings.
|
||||
#include <boost/system/error_code.hpp>
|
||||
|
||||
@ingroup beast_concurrent
|
||||
*/
|
||||
// VFALCO NOTE Disabled this because it seems that the TLS
|
||||
// implementation has a leak. Although the other
|
||||
// one also seems to have a leak.
|
||||
namespace beast {
|
||||
|
||||
// Lift this into our namespace. For now we will
|
||||
// use boost, and then switch to std::error_code when
|
||||
// it is available on all our supported platforms.
|
||||
//
|
||||
//#if BEAST_USE_BOOST_FEATURES
|
||||
#if 0
|
||||
typedef FifoFreeStoreWithTLS FifoFreeStoreType;
|
||||
#else
|
||||
typedef FifoFreeStoreWithoutTLS FifoFreeStoreType;
|
||||
#endif
|
||||
typedef boost::system::error_code ErrorCode;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
159
src/beast/beast/chrono/CPUMeter.h
Normal file
159
src/beast/beast/chrono/CPUMeter.h
Normal file
@@ -0,0 +1,159 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_CHRONO_CPUMETER_H_INCLUDED
|
||||
#define BEAST_CHRONO_CPUMETER_H_INCLUDED
|
||||
|
||||
#include "RelativeTime.h"
|
||||
#include "ScopedTimeInterval.h"
|
||||
#include "../threads/SharedData.h"
|
||||
#include "../Atomic.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** Measurements of CPU utilization. */
|
||||
class CPUMeter
|
||||
{
|
||||
private:
|
||||
struct MeasureIdle
|
||||
{
|
||||
explicit MeasureIdle (CPUMeter& meter)
|
||||
: m_meter (&meter)
|
||||
{ }
|
||||
void operator() (RelativeTime const& interval) const
|
||||
{ m_meter->addIdleTime (interval); }
|
||||
CPUMeter* m_meter;
|
||||
};
|
||||
|
||||
struct MeasureActive
|
||||
{
|
||||
explicit MeasureActive (CPUMeter& meter)
|
||||
: m_meter (&meter)
|
||||
{ }
|
||||
void operator() (RelativeTime const& interval) const
|
||||
{ m_meter->addActiveTime (interval); }
|
||||
CPUMeter* m_meter;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
// The amount of time an aggregate must accrue before a swap
|
||||
secondsPerAggregate = 3
|
||||
|
||||
// The number of aggregates in the rolling history buffer
|
||||
,numberOfAggregates = 20
|
||||
};
|
||||
|
||||
// Aggregated sample data
|
||||
struct Aggregate
|
||||
{
|
||||
RelativeTime idle;
|
||||
RelativeTime active;
|
||||
|
||||
// Returns the total number of seconds in the aggregate
|
||||
double seconds () const
|
||||
{ return idle.inSeconds() + active.inSeconds(); }
|
||||
|
||||
// Reset the accumulated times
|
||||
void clear ()
|
||||
{ idle = RelativeTime (0); active = RelativeTime (0); }
|
||||
|
||||
Aggregate& operator+= (Aggregate const& other)
|
||||
{ idle += other.idle; active += other.active; return *this; }
|
||||
|
||||
Aggregate& operator-= (Aggregate const& other)
|
||||
{ idle -= other.idle; active -= other.active; return *this; }
|
||||
};
|
||||
|
||||
struct State
|
||||
{
|
||||
State () : index (0)
|
||||
{
|
||||
}
|
||||
|
||||
// Returns a reference to the current aggregate
|
||||
Aggregate& front ()
|
||||
{
|
||||
return history [index];
|
||||
}
|
||||
|
||||
// Checks the current aggregate to see if we should advance
|
||||
void update()
|
||||
{
|
||||
if (front().seconds() >= secondsPerAggregate)
|
||||
advance();
|
||||
}
|
||||
|
||||
// Advance the index in the rolling history
|
||||
void advance ()
|
||||
{
|
||||
usage += history [index];
|
||||
index = (index+1) % numberOfAggregates;
|
||||
usage -= history [index];
|
||||
history [index].clear ();
|
||||
}
|
||||
|
||||
// Index of the current aggregate we are accumulating
|
||||
int index;
|
||||
|
||||
// Delta summed usage over the entire history buffer
|
||||
Aggregate usage;
|
||||
|
||||
// The rolling history buffer
|
||||
Aggregate history [numberOfAggregates];
|
||||
};
|
||||
|
||||
typedef SharedData <State> SharedState;
|
||||
|
||||
SharedState m_state;
|
||||
|
||||
void addIdleTime (RelativeTime const& interval)
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
state->front().idle += interval;
|
||||
state->update();
|
||||
}
|
||||
|
||||
void addActiveTime (RelativeTime const& interval)
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
state->front().active += interval;
|
||||
state->update();
|
||||
}
|
||||
|
||||
public:
|
||||
/** The type of container that measures idle time. */
|
||||
typedef ScopedTimeInterval <MeasureIdle> ScopedIdleTime;
|
||||
typedef ScopedTimeInterval <MeasureActive> ScopedActiveTime;
|
||||
|
||||
/** Returns the fraction of time that the CPU is being used. */
|
||||
double getUtilization () const
|
||||
{
|
||||
SharedState::ConstAccess state (m_state);
|
||||
|
||||
double const seconds (state->usage.seconds());
|
||||
if (seconds > 0)
|
||||
return (state->usage.active.inSeconds() / seconds);
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -19,4 +19,5 @@
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "impl/CPUMeter.cpp"
|
||||
#include "impl/RelativeTime.cpp"
|
||||
|
||||
@@ -43,13 +43,22 @@ namespace beast {
|
||||
class BEAST_API RelativeTime
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
/** The underlying data type used by RelativeTime.
|
||||
|
||||
If you need to get to the underlying time and manipulate it
|
||||
you can use this to declare a type that is guaranteed to
|
||||
work cleanly.
|
||||
*/
|
||||
typedef double value_type;
|
||||
|
||||
//==============================================================================
|
||||
/** Creates a RelativeTime.
|
||||
|
||||
@param seconds the number of seconds, which may be +ve or -ve.
|
||||
@see milliseconds, minutes, hours, days, weeks
|
||||
*/
|
||||
explicit RelativeTime (double seconds = 0.0) noexcept;
|
||||
explicit RelativeTime (value_type seconds = 0.0) noexcept;
|
||||
|
||||
/** Copies another relative time. */
|
||||
RelativeTime (const RelativeTime& other) noexcept;
|
||||
@@ -60,6 +69,12 @@ public:
|
||||
/** Destructor. */
|
||||
~RelativeTime() noexcept;
|
||||
|
||||
bool isZero() const
|
||||
{ return numSeconds == 0; }
|
||||
|
||||
bool isNotZero() const
|
||||
{ return numSeconds != 0; }
|
||||
|
||||
/** Returns the amount of time since the process was started. */
|
||||
static RelativeTime fromStartup ();
|
||||
|
||||
@@ -77,27 +92,27 @@ public:
|
||||
/** Creates a new RelativeTime object representing a number of seconds.
|
||||
@see milliseconds, minutes, hours, days, weeks
|
||||
*/
|
||||
static RelativeTime seconds (double seconds) noexcept;
|
||||
static RelativeTime seconds (value_type seconds) noexcept;
|
||||
|
||||
/** Creates a new RelativeTime object representing a number of minutes.
|
||||
@see milliseconds, hours, days, weeks
|
||||
*/
|
||||
static RelativeTime minutes (double numberOfMinutes) noexcept;
|
||||
static RelativeTime minutes (value_type numberOfMinutes) noexcept;
|
||||
|
||||
/** Creates a new RelativeTime object representing a number of hours.
|
||||
@see milliseconds, minutes, days, weeks
|
||||
*/
|
||||
static RelativeTime hours (double numberOfHours) noexcept;
|
||||
static RelativeTime hours (value_type numberOfHours) noexcept;
|
||||
|
||||
/** Creates a new RelativeTime object representing a number of days.
|
||||
@see milliseconds, minutes, hours, weeks
|
||||
*/
|
||||
static RelativeTime days (double numberOfDays) noexcept;
|
||||
static RelativeTime days (value_type numberOfDays) noexcept;
|
||||
|
||||
/** Creates a new RelativeTime object representing a number of weeks.
|
||||
@see milliseconds, minutes, hours, days
|
||||
*/
|
||||
static RelativeTime weeks (double numberOfWeeks) noexcept;
|
||||
static RelativeTime weeks (value_type numberOfWeeks) noexcept;
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the number of milliseconds this time represents.
|
||||
@@ -108,27 +123,27 @@ public:
|
||||
/** Returns the number of seconds this time represents.
|
||||
@see inMilliseconds, inMinutes, inHours, inDays, inWeeks
|
||||
*/
|
||||
double inSeconds() const noexcept { return numSeconds; }
|
||||
value_type inSeconds() const noexcept { return numSeconds; }
|
||||
|
||||
/** Returns the number of minutes this time represents.
|
||||
@see inMilliseconds, inSeconds, inHours, inDays, inWeeks
|
||||
*/
|
||||
double inMinutes() const noexcept;
|
||||
value_type inMinutes() const noexcept;
|
||||
|
||||
/** Returns the number of hours this time represents.
|
||||
@see inMilliseconds, inSeconds, inMinutes, inDays, inWeeks
|
||||
*/
|
||||
double inHours() const noexcept;
|
||||
value_type inHours() const noexcept;
|
||||
|
||||
/** Returns the number of days this time represents.
|
||||
@see inMilliseconds, inSeconds, inMinutes, inHours, inWeeks
|
||||
*/
|
||||
double inDays() const noexcept;
|
||||
value_type inDays() const noexcept;
|
||||
|
||||
/** Returns the number of weeks this time represents.
|
||||
@see inMilliseconds, inSeconds, inMinutes, inHours, inDays
|
||||
*/
|
||||
double inWeeks() const noexcept;
|
||||
value_type inWeeks() const noexcept;
|
||||
|
||||
/** Returns a readable textual description of the time.
|
||||
|
||||
@@ -148,10 +163,12 @@ public:
|
||||
String getDescription (const String& returnValueForZeroTime = "0") const;
|
||||
std::string to_string () const;
|
||||
|
||||
RelativeTime operator+ (double seconds) const noexcept
|
||||
template <typename Number>
|
||||
RelativeTime operator+ (Number seconds) const noexcept
|
||||
{ return RelativeTime (numSeconds + seconds); }
|
||||
|
||||
RelativeTime operator- (double seconds) const noexcept
|
||||
template <typename Number>
|
||||
RelativeTime operator- (Number seconds) const noexcept
|
||||
{ return RelativeTime (numSeconds - seconds); }
|
||||
|
||||
/** Adds another RelativeTime to this one. */
|
||||
@@ -161,13 +178,13 @@ public:
|
||||
RelativeTime operator-= (RelativeTime timeToSubtract) noexcept;
|
||||
|
||||
/** Adds a number of seconds to this time. */
|
||||
RelativeTime operator+= (double secondsToAdd) noexcept;
|
||||
RelativeTime operator+= (value_type secondsToAdd) noexcept;
|
||||
|
||||
/** Subtracts a number of seconds from this time. */
|
||||
RelativeTime operator-= (double secondsToSubtract) noexcept;
|
||||
RelativeTime operator-= (value_type secondsToSubtract) noexcept;
|
||||
|
||||
private:
|
||||
double numSeconds;
|
||||
value_type numSeconds;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -17,43 +17,46 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_GLOBALPAGEDFREESTORE_H_INCLUDED
|
||||
#define BEAST_GLOBALPAGEDFREESTORE_H_INCLUDED
|
||||
#ifndef BEAST_CHRONO_SCOPEDTIMEINTERVAL_H_INCLUDED
|
||||
#define BEAST_CHRONO_SCOPEDTIMEINTERVAL_H_INCLUDED
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
A PagedFreeStore singleton.
|
||||
#include "../Uncopyable.h"
|
||||
#include "RelativeTime.h"
|
||||
|
||||
@ingroup beast_concurrent
|
||||
namespace beast {
|
||||
|
||||
/** Time measurement using scoped RAII container.
|
||||
UnaryFunction will be called with this signature:
|
||||
void (RelativeTime const& interval);
|
||||
*/
|
||||
class BEAST_API GlobalPagedFreeStore : public LeakChecked <GlobalPagedFreeStore>
|
||||
template <class UnaryFunction>
|
||||
class ScopedTimeInterval : public Uncopyable
|
||||
{
|
||||
public:
|
||||
GlobalPagedFreeStore ();
|
||||
~GlobalPagedFreeStore ();
|
||||
|
||||
public:
|
||||
inline size_t getPageBytes ()
|
||||
/** Create the measurement with a default-constructed UnaryFunction. */
|
||||
ScopedTimeInterval ()
|
||||
: m_start (RelativeTime::fromStartup())
|
||||
{
|
||||
return m_allocator.getPageBytes ();
|
||||
}
|
||||
|
||||
inline void* allocate ()
|
||||
/** Create the measurement with UnaryFunction constructed from one argument. */
|
||||
template <typename Arg>
|
||||
explicit ScopedTimeInterval (Arg& arg)
|
||||
: m_func (arg)
|
||||
, m_start (RelativeTime::fromStartup ())
|
||||
{
|
||||
return m_allocator.allocate ();
|
||||
}
|
||||
|
||||
static inline void deallocate (void* const p)
|
||||
~ScopedTimeInterval ()
|
||||
{
|
||||
PagedFreeStore::deallocate (p);
|
||||
m_func (RelativeTime::fromStartup() - m_start);
|
||||
}
|
||||
|
||||
typedef SharedPtr <SharedSingleton <GlobalPagedFreeStore> > Ptr;
|
||||
|
||||
static Ptr getInstance ();
|
||||
|
||||
private:
|
||||
PagedFreeStore m_allocator;
|
||||
UnaryFunction m_func;
|
||||
RelativeTime m_start;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
21
src/beast/beast/chrono/impl/CPUMeter.cpp
Normal file
21
src/beast/beast/chrono/impl/CPUMeter.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../CPUMeter.h"
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
namespace beast {
|
||||
|
||||
RelativeTime::RelativeTime (const double secs) noexcept
|
||||
RelativeTime::RelativeTime (const RelativeTime::value_type secs) noexcept
|
||||
: numSeconds (secs)
|
||||
{
|
||||
}
|
||||
@@ -59,27 +59,27 @@ RelativeTime RelativeTime::milliseconds (const int64 milliseconds) noexcept
|
||||
return RelativeTime (milliseconds * 0.001);
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::seconds (double s) noexcept
|
||||
RelativeTime RelativeTime::seconds (RelativeTime::value_type s) noexcept
|
||||
{
|
||||
return RelativeTime (s);
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::minutes (const double numberOfMinutes) noexcept
|
||||
RelativeTime RelativeTime::minutes (const RelativeTime::value_type numberOfMinutes) noexcept
|
||||
{
|
||||
return RelativeTime (numberOfMinutes * 60.0);
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::hours (const double numberOfHours) noexcept
|
||||
RelativeTime RelativeTime::hours (const RelativeTime::value_type numberOfHours) noexcept
|
||||
{
|
||||
return RelativeTime (numberOfHours * (60.0 * 60.0));
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::days (const double numberOfDays) noexcept
|
||||
RelativeTime RelativeTime::days (const RelativeTime::value_type numberOfDays) noexcept
|
||||
{
|
||||
return RelativeTime (numberOfDays * (60.0 * 60.0 * 24.0));
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::weeks (const double numberOfWeeks) noexcept
|
||||
RelativeTime RelativeTime::weeks (const RelativeTime::value_type numberOfWeeks) noexcept
|
||||
{
|
||||
return RelativeTime (numberOfWeeks * (60.0 * 60.0 * 24.0 * 7.0));
|
||||
}
|
||||
@@ -91,22 +91,22 @@ int64 RelativeTime::inMilliseconds() const noexcept
|
||||
return (int64) (numSeconds * 1000.0);
|
||||
}
|
||||
|
||||
double RelativeTime::inMinutes() const noexcept
|
||||
RelativeTime::value_type RelativeTime::inMinutes() const noexcept
|
||||
{
|
||||
return numSeconds / 60.0;
|
||||
}
|
||||
|
||||
double RelativeTime::inHours() const noexcept
|
||||
RelativeTime::value_type RelativeTime::inHours() const noexcept
|
||||
{
|
||||
return numSeconds / (60.0 * 60.0);
|
||||
}
|
||||
|
||||
double RelativeTime::inDays() const noexcept
|
||||
RelativeTime::value_type RelativeTime::inDays() const noexcept
|
||||
{
|
||||
return numSeconds / (60.0 * 60.0 * 24.0);
|
||||
}
|
||||
|
||||
double RelativeTime::inWeeks() const noexcept
|
||||
RelativeTime::value_type RelativeTime::inWeeks() const noexcept
|
||||
{
|
||||
return numSeconds / (60.0 * 60.0 * 24.0 * 7.0);
|
||||
}
|
||||
@@ -125,12 +125,12 @@ RelativeTime RelativeTime::operator-= (RelativeTime t) noexcept
|
||||
numSeconds -= t.numSeconds; return *this;
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::operator+= (const double secs) noexcept
|
||||
RelativeTime RelativeTime::operator+= (const RelativeTime::value_type secs) noexcept
|
||||
{
|
||||
numSeconds += secs; return *this;
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::operator-= (const double secs) noexcept
|
||||
RelativeTime RelativeTime::operator-= (const RelativeTime::value_type secs) noexcept
|
||||
{
|
||||
numSeconds -= secs; return *this;
|
||||
}
|
||||
@@ -257,70 +257,108 @@ std::string RelativeTime::to_string () const
|
||||
|
||||
}
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail {
|
||||
|
||||
#if BEAST_WINDOWS
|
||||
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
namespace beast {
|
||||
|
||||
RelativeTime RelativeTime::fromStartup ()
|
||||
static double monotonicCurrentTimeInSeconds()
|
||||
{
|
||||
ULONGLONG ticks (GetTickCount64());
|
||||
|
||||
return RelativeTime (ticks / 1000.0);
|
||||
return GetTickCount64() / 1000.0;
|
||||
}
|
||||
|
||||
#elif BEAST_MAC || BEAST_IOS
|
||||
|
||||
#include <time.h>
|
||||
|
||||
static double monotonicCurrentTimeInSeconds()
|
||||
{
|
||||
struct StaticInitializer
|
||||
{
|
||||
StaticInitializer ()
|
||||
{
|
||||
double numerator;
|
||||
double denominator;
|
||||
|
||||
mach_timebase_info_data_t timebase;
|
||||
(void) mach_timebase_info (&timebase);
|
||||
|
||||
if (timebase.numer % 1000000 == 0)
|
||||
{
|
||||
numerator = timebase.numer / 1000000.0;
|
||||
denominator = timebase.denom * 1000.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
numerator = timebase.numer;
|
||||
// VFALCO NOTE I don't understand this code
|
||||
//denominator = timebase.denom * (uint64) 1000000 * 1000.0;
|
||||
denominator = timebase.denom * 1000000000.0;
|
||||
}
|
||||
|
||||
ratio = numerator / denominator;
|
||||
}
|
||||
|
||||
double ratio;
|
||||
};
|
||||
|
||||
static StaticInitializer const data;
|
||||
|
||||
return mach_absolute_time() * data.ratio;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
|
||||
#include <time.h>
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail {
|
||||
|
||||
// Converts a timespec to a RelativeTme
|
||||
static RelativeTime toRelativeTime (timespec const& ts)
|
||||
static double monotonicCurrentTimeInSeconds()
|
||||
{
|
||||
return RelativeTime (ts.tv_sec +
|
||||
ts.tv_nsec / 1000000000.0);
|
||||
timespec t;
|
||||
clock_gettime (CLOCK_MONOTONIC, &t);
|
||||
return t.tv_sec + t.tv_nsec / 1000000000.0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// Records and returns the time from process startup
|
||||
static RelativeTime getStartupTime()
|
||||
static double getStartupTime()
|
||||
{
|
||||
struct StartupTime
|
||||
{
|
||||
StartupTime ()
|
||||
{ clock_gettime (CLOCK_MONOTONIC, &ts); }
|
||||
timespec ts;
|
||||
};
|
||||
struct StaticInitializer
|
||||
{
|
||||
StaticInitializer ()
|
||||
{
|
||||
when = detail::monotonicCurrentTimeInSeconds();
|
||||
}
|
||||
|
||||
double when;
|
||||
};
|
||||
|
||||
static StartupTime startupTime;
|
||||
static StaticInitializer const data;
|
||||
|
||||
return toRelativeTime (startupTime.ts);
|
||||
return data.when;
|
||||
}
|
||||
|
||||
// Used to call getStartupTime as early as possible
|
||||
struct StartupTimeStaticInitializer
|
||||
{
|
||||
StartupTimeStaticInitializer ()
|
||||
{ getStartupTime(); }
|
||||
StartupTimeStaticInitializer ()
|
||||
{
|
||||
getStartupTime();
|
||||
}
|
||||
};
|
||||
|
||||
static StartupTimeStaticInitializer startupTimeStaticInitializer;
|
||||
|
||||
|
||||
}
|
||||
|
||||
RelativeTime RelativeTime::fromStartup ()
|
||||
{
|
||||
timespec ts;
|
||||
clock_gettime (CLOCK_MONOTONIC, &ts);
|
||||
|
||||
return detail::toRelativeTime (ts) - detail::getStartupTime();
|
||||
return RelativeTime (
|
||||
detail::monotonicCurrentTimeInSeconds() - detail::getStartupTime());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -107,7 +107,7 @@ extern void beast_reportFatalError (char const* message, char const* fileName, i
|
||||
This is only compiled in a debug build.
|
||||
@see Logger::outputDebugString
|
||||
*/
|
||||
#define DBG(dbgtext) { beast::String tempDbgBuf; tempDbgBuf << dbgtext; beast::Logger::outputDebugString (tempDbgBuf); }
|
||||
#define BDBG(dbgtext) { beast::String tempDbgBuf; tempDbgBuf << dbgtext; beast::Logger::outputDebugString (tempDbgBuf); }
|
||||
|
||||
/** This will always cause an assertion failure.
|
||||
It is only compiled in a debug build, (unless BEAST_LOG_ASSERTIONS is enabled for your build).
|
||||
@@ -127,7 +127,7 @@ extern void beast_reportFatalError (char const* message, char const* fileName, i
|
||||
|
||||
// If debugging is disabled, these dummy debug and assertion macros are used..
|
||||
|
||||
#define DBG(dbgtext)
|
||||
#define BDBG(dbgtext)
|
||||
#define bassertfalse { beast_LogCurrentAssertion }
|
||||
|
||||
# if BEAST_LOG_ASSERTIONS
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
#define BEAST_ZLIB_INCLUDE_PATH <zlib.h>
|
||||
#endif
|
||||
|
||||
#ifndef BEAST_SQLITE_FORCE_NDEBUG
|
||||
#define BEAST_SQLITE_FORCE_NDEBUG 0
|
||||
#endif
|
||||
|
||||
#ifndef BEAST_STRING_UTF_TYPE
|
||||
#define BEAST_STRING_UTF_TYPE 8
|
||||
#endif
|
||||
|
||||
@@ -19,4 +19,5 @@
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "impl/MurmurHash.cpp"
|
||||
#include "impl/Sha256.cpp"
|
||||
|
||||
@@ -17,15 +17,15 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_MURMURHASH_H_INCLUDED
|
||||
#define BEAST_MURMURHASH_H_INCLUDED
|
||||
#ifndef BEAST_CRYPTO_MURMURHASH_H_INCLUDED
|
||||
#define BEAST_CRYPTO_MURMURHASH_H_INCLUDED
|
||||
|
||||
#include "../CStdInt.h"
|
||||
|
||||
// Original source code links in .cpp file
|
||||
|
||||
// This file depends on some Beast declarations and defines
|
||||
|
||||
namespace Murmur
|
||||
{
|
||||
namespace beast {
|
||||
namespace Murmur {
|
||||
|
||||
extern void MurmurHash3_x86_32 (const void* key, int len, uint32 seed, void* out);
|
||||
extern void MurmurHash3_x86_128 (const void* key, int len, uint32 seed, void* out);
|
||||
@@ -77,6 +77,7 @@ inline void Hash (const void* key, int len, uint32 seed, HashType* out)
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -19,8 +19,12 @@
|
||||
|
||||
// http://code.google.com/p/smhasher/
|
||||
|
||||
namespace Murmur
|
||||
{
|
||||
#include "../MurmurHash.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace beast {
|
||||
namespace Murmur {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Platform-specific functions and macros
|
||||
@@ -485,3 +489,4 @@ void MurmurHash3_x64_128 ( const void* key, const int len,
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#include "../strings/String.h"
|
||||
|
||||
#include <ios>
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** A URL.
|
||||
@@ -90,7 +92,10 @@ public:
|
||||
String userinfo () const;
|
||||
|
||||
/** Retrieve the full URL as a single string. */
|
||||
String full () const;
|
||||
/** @{ */
|
||||
String toString () const;
|
||||
std::string to_string() const;
|
||||
/** @} */
|
||||
|
||||
private:
|
||||
String m_scheme;
|
||||
@@ -103,6 +108,40 @@ private:
|
||||
String m_userinfo;
|
||||
};
|
||||
|
||||
/** URL comparisons. */
|
||||
/** @{ */
|
||||
inline bool operator== (URL const& lhs, URL const& rhs) { return lhs.toString() == rhs.toString(); }
|
||||
inline bool operator!= (URL const& lhs, URL const& rhs) { return ! (lhs.toString() == rhs.toString()); }
|
||||
inline bool operator< (URL const& lhs, URL const& rhs) { return lhs.toString() < rhs.toString(); }
|
||||
inline bool operator> (URL const& lhs, URL const& rhs) { return rhs.toString() < lhs.toString(); }
|
||||
inline bool operator<= (URL const& lhs, URL const& rhs) { return ! (rhs.toString() < lhs.toString()); }
|
||||
inline bool operator>= (URL const& lhs, URL const& rhs) { return ! (lhs.toString() < rhs.toString()); }
|
||||
/** @} */
|
||||
|
||||
/** Output stream conversion. */
|
||||
std::ostream& operator<< (std::ostream& os, URL const& url);
|
||||
|
||||
/** boost::hash support */
|
||||
extern std::size_t hash_value (beast::URL const& url);
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace std {
|
||||
|
||||
template <typename T>
|
||||
struct hash;
|
||||
|
||||
template <>
|
||||
struct hash <beast::URL>
|
||||
{
|
||||
std::size_t operator() (beast::URL const& v) const
|
||||
{ return beast::hash_value (v); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
{
|
||||
ParsedURL result (url);
|
||||
expect (result.error () == 0);
|
||||
expect (result.url ().full () == url);
|
||||
expect (result.url ().toString () == url);
|
||||
}
|
||||
|
||||
void testURL ()
|
||||
|
||||
@@ -25,7 +25,6 @@ URL::URL ()
|
||||
: m_port (0)
|
||||
{
|
||||
}
|
||||
|
||||
URL::URL (
|
||||
String scheme_,
|
||||
String host_,
|
||||
@@ -129,7 +128,7 @@ String URL::userinfo () const
|
||||
|
||||
foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose
|
||||
*/
|
||||
String URL::full () const
|
||||
String URL::toString () const
|
||||
{
|
||||
String s;
|
||||
|
||||
@@ -154,5 +153,25 @@ String URL::full () const
|
||||
return s;
|
||||
}
|
||||
|
||||
std::string URL::to_string() const
|
||||
{
|
||||
return toString().toStdString();
|
||||
}
|
||||
|
||||
std::ostream& operator<< (std::ostream &os, URL const& url)
|
||||
{
|
||||
os << url.to_string();
|
||||
return os;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
std::size_t hash_value (URL const& v)
|
||||
{
|
||||
return std::size_t (v.toString().hash());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// boost::hash support
|
||||
@@ -41,13 +41,12 @@ namespace detail
|
||||
// concurrently is required.
|
||||
//
|
||||
template <typename T, typename Tag>
|
||||
class ListNode : public Uncopyable
|
||||
class ListNode
|
||||
{
|
||||
private:
|
||||
typedef T value_type;
|
||||
|
||||
template <typename, typename>
|
||||
friend class List;
|
||||
friend class List<T, Tag>;
|
||||
|
||||
template <typename>
|
||||
friend class ListIterator;
|
||||
|
||||
@@ -17,8 +17,12 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_ASIO_BASICS_BUFFERTYPE_H_INCLUDED
|
||||
#define BEAST_ASIO_BASICS_BUFFERTYPE_H_INCLUDED
|
||||
#ifndef BEAST_NET_BASICS_BUFFERTYPE_H_INCLUDED
|
||||
#define BEAST_NET_BASICS_BUFFERTYPE_H_INCLUDED
|
||||
|
||||
#include "../mpl/IfCond.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** General linear memory buffer.
|
||||
This wraps the underlying buffer type and provides additional methods
|
||||
@@ -49,7 +53,7 @@ public:
|
||||
|
||||
template <bool OtherIsConst>
|
||||
BufferType (BufferType <OtherIsConst> const& other)
|
||||
: m_data (other.cast <pointer_type> ())
|
||||
: m_data (other.template cast <pointer_type> ())
|
||||
, m_size (other.size ())
|
||||
{
|
||||
}
|
||||
@@ -71,7 +75,7 @@ public:
|
||||
BufferType& operator= (
|
||||
BufferType <OtherIsConst> const& other) noexcept
|
||||
{
|
||||
m_data = other.cast <pointer_type> ();
|
||||
m_data = other.template cast <pointer_type> ();
|
||||
m_size = other.size ();
|
||||
return *this;
|
||||
}
|
||||
@@ -99,4 +103,6 @@ private:
|
||||
};
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
125
src/beast/beast/net/DynamicBuffer.h
Normal file
125
src/beast/beast/net/DynamicBuffer.h
Normal file
@@ -0,0 +1,125 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_NET_DYNAMICBUFFER_H_INCLUDED
|
||||
#define BEAST_NET_DYNAMICBUFFER_H_INCLUDED
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** Disjoint, but efficient buffer storage for network operations.
|
||||
This is designed to not require asio in order to compile.
|
||||
*/
|
||||
class DynamicBuffer
|
||||
{
|
||||
public:
|
||||
enum
|
||||
{
|
||||
defaultBlocksize = 32 * 1024
|
||||
};
|
||||
|
||||
typedef std::size_t size_type;
|
||||
|
||||
/** Create the dynamic buffer with the specified block size. */
|
||||
explicit DynamicBuffer (size_type blocksize = defaultBlocksize);
|
||||
|
||||
DynamicBuffer (DynamicBuffer const& other);
|
||||
|
||||
~DynamicBuffer ();
|
||||
|
||||
DynamicBuffer& operator= (DynamicBuffer const& other);
|
||||
|
||||
/** Swap the contents of this buffer with another.
|
||||
This is the preferred way to transfer ownership.
|
||||
*/
|
||||
void swapWith (DynamicBuffer& other);
|
||||
|
||||
/** Returns the size of the input sequence. */
|
||||
size_type size () const;
|
||||
|
||||
/** Returns a buffer to the input sequence.
|
||||
ConstBufferType must be constructible with this signature:
|
||||
ConstBufferType (void const* buffer, size_type bytes);
|
||||
*/
|
||||
template <typename ConstBufferType>
|
||||
std::vector <ConstBufferType> data () const
|
||||
{
|
||||
std::vector <ConstBufferType> buffers;
|
||||
buffers.reserve (m_buffers.size());
|
||||
size_type amount (m_size);
|
||||
for (typename Buffers::const_iterator iter (m_buffers.begin());
|
||||
amount > 0 && iter != m_buffers.end(); ++iter)
|
||||
{
|
||||
size_type const n (std::min (amount, m_blocksize));
|
||||
buffers.push_back (ConstBufferType (*iter, n));
|
||||
amount -= n;
|
||||
}
|
||||
return buffers;
|
||||
}
|
||||
|
||||
/** Reserve space in the output sequence.
|
||||
This also returns a buffer suitable for writing.
|
||||
MutableBufferType must be constructible with this signature:
|
||||
MutableBufferType (void* buffer, size_type bytes);
|
||||
*/
|
||||
template <typename MutableBufferType>
|
||||
std::vector <MutableBufferType> prepare (size_type amount)
|
||||
{
|
||||
std::vector <MutableBufferType> buffers;
|
||||
buffers.reserve (m_buffers.size());
|
||||
reserve (amount);
|
||||
size_type offset (m_size % m_blocksize);
|
||||
for (Buffers::iterator iter = m_buffers.begin () + (m_size / m_blocksize);
|
||||
amount > 0 && iter != m_buffers.end (); ++iter)
|
||||
{
|
||||
size_type const n (std::min (amount, m_blocksize - offset));
|
||||
buffers.push_back (MutableBufferType (
|
||||
((static_cast <char*> (*iter)) + offset), n));
|
||||
amount -= n;
|
||||
offset = 0;
|
||||
}
|
||||
return buffers;
|
||||
}
|
||||
|
||||
/** Reserve space in the output sequence. */
|
||||
void reserve (size_type n);
|
||||
|
||||
/** Move bytes from the output to the input sequence. */
|
||||
void commit (size_type n);
|
||||
|
||||
/** Release memory while preserving the input sequence. */
|
||||
void shrink_to_fit ();
|
||||
|
||||
/** Convert the entire buffer into a single string.
|
||||
This is mostly for diagnostics, it defeats the purpose of the class!
|
||||
*/
|
||||
std::string to_string () const;
|
||||
|
||||
private:
|
||||
typedef std::vector <void*> Buffers;
|
||||
|
||||
size_type m_blocksize;
|
||||
size_type m_size;
|
||||
Buffers m_buffers;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -17,8 +17,8 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_NET_IPENDPOINT_H_INCLUDED
|
||||
#define BEAST_NET_IPENDPOINT_H_INCLUDED
|
||||
#ifndef BEAST_NET_IPADDRESS_H_INCLUDED
|
||||
#define BEAST_NET_IPADDRESS_H_INCLUDED
|
||||
|
||||
#include <string>
|
||||
#include <ios>
|
||||
@@ -27,11 +27,22 @@
|
||||
#include "../CStdInt.h"
|
||||
#include "../mpl/IfCond.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace std {
|
||||
|
||||
template <typename T>
|
||||
struct hash;
|
||||
|
||||
//template <>
|
||||
//struct hash <beast::IPAddress>;
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** Represents an IP address (v4 or v6) and port combination. */
|
||||
class IPEndpoint
|
||||
class IPAddress
|
||||
{
|
||||
public:
|
||||
enum Type
|
||||
@@ -114,15 +125,15 @@ public:
|
||||
|
||||
operator uint8() const
|
||||
{
|
||||
return ((*m_value)>>m_shift)&0xff;
|
||||
return ((*m_value)>>m_shift) & 0xff;
|
||||
}
|
||||
|
||||
template <typename IntegralType>
|
||||
Proxy& operator= (IntegralType v)
|
||||
{
|
||||
(*m_value)=
|
||||
(*m_value)&(!((0xff)<<m_shift)) |
|
||||
((v&0xff)<<m_shift);
|
||||
(*m_value) =
|
||||
( (*m_value) & (~((0xff)<<m_shift)) )
|
||||
| ((v&0xff) << m_shift);
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -216,62 +227,62 @@ public:
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/** Create an empty address. */
|
||||
IPEndpoint ();
|
||||
IPAddress ();
|
||||
|
||||
/** Create an IPv4 address with optional port. */
|
||||
IPEndpoint (V4 const& v4, uint16 port = 0);
|
||||
IPAddress (V4 const& v4, uint16 port = 0);
|
||||
|
||||
/** Create an IPv6 address with optional port. */
|
||||
IPEndpoint (V6 const& v6, uint16 port = 0);
|
||||
IPAddress (V6 const& v6, uint16 port = 0);
|
||||
|
||||
/** Create a copy of another IPEndpoint. */
|
||||
IPEndpoint (IPEndpoint const& other);
|
||||
/** Create a copy of another IPAddress. */
|
||||
IPAddress (IPAddress const& other);
|
||||
|
||||
/** Copy assign another IPEndpoint. */
|
||||
IPEndpoint& operator= (IPEndpoint const& other);
|
||||
/** Copy assign another IPAddress. */
|
||||
IPAddress& operator= (IPAddress const& other);
|
||||
|
||||
/** Create an IPEndpoint from a string.
|
||||
/** Create an IPAddress from a string.
|
||||
If a parsing error occurs, the endpoint will be empty.
|
||||
*/
|
||||
static IPEndpoint from_string (std::string const& s);
|
||||
static IPAddress from_string (std::string const& s);
|
||||
|
||||
/** Create an IPEndpoint from a string.
|
||||
/** Create an IPAddress from a string.
|
||||
If a parsing error occurs, the endpoint will be empty.
|
||||
This recognizes an alternate form of the text. Instead of a colon
|
||||
separating the optional port specification, any amount of whitespace
|
||||
is allowed.
|
||||
*/
|
||||
static IPEndpoint from_string_altform (std::string const& s);
|
||||
static IPAddress from_string_altform (std::string const& s);
|
||||
|
||||
/** Copy assign an IPv4 address.
|
||||
The port is set to zero.
|
||||
*/
|
||||
IPEndpoint& operator= (V4 const& address);
|
||||
IPAddress& operator= (V4 const& address);
|
||||
|
||||
/** Copy assign an IPv6 address.
|
||||
The port is set to zero.
|
||||
*/
|
||||
IPEndpoint& operator= (V6 const& address);
|
||||
IPAddress& operator= (V6 const& address);
|
||||
|
||||
/** Returns a new IPEndpoint with this address, and the given port. */
|
||||
IPEndpoint withPort (uint16 port) const;
|
||||
/** Returns a new IPAddress with this address, and the given port. */
|
||||
IPAddress withPort (uint16 port) const;
|
||||
|
||||
/** Returns `true` if this IPEndpoint refers to nothing. */
|
||||
/** Returns `true` if this IPAddress refers to nothing. */
|
||||
bool empty () const;
|
||||
|
||||
/** Returns `true` if this IPEndpoint refers to nothing. */
|
||||
/** Returns `true` if this IPAddress refers to nothing. */
|
||||
bool isNull () const;
|
||||
|
||||
/** Returns `true` if this IPEndpoint refers to something. */
|
||||
/** Returns `true` if this IPAddress refers to something. */
|
||||
bool isNotNull () const;
|
||||
|
||||
/** Returns the type of this IPEndpoint. */
|
||||
/** Returns the type of this IPAddress. */
|
||||
Type type () const;
|
||||
|
||||
/** Returns `true` if this IPEndpoint represents an IPv4 address. */
|
||||
/** Returns `true` if this IPAddress represents an IPv4 address. */
|
||||
bool isV4 () const;
|
||||
|
||||
/** Returns `true` if this IPEndpoint represents an IPv6 address. */
|
||||
/** Returns `true` if this IPAddress represents an IPv6 address. */
|
||||
bool isV6 () const;
|
||||
|
||||
/** Returns the IPv4 address.
|
||||
@@ -310,19 +321,9 @@ public:
|
||||
operator std::string () const;
|
||||
/** @} */
|
||||
|
||||
struct hasher
|
||||
{
|
||||
std::size_t operator() (IPEndpoint const& value) const
|
||||
{
|
||||
std::size_t hash (0);
|
||||
if (value.isV4())
|
||||
hash = V4::hasher() (value.v4());
|
||||
else if (value.isV6())
|
||||
hash = V6::hasher() (value.v6());
|
||||
hash += value.port();
|
||||
return hash;
|
||||
}
|
||||
};
|
||||
typedef std::hash <IPAddress> hasher;
|
||||
|
||||
struct key_equal;
|
||||
|
||||
private:
|
||||
Type m_type;
|
||||
@@ -333,36 +334,68 @@ private:
|
||||
|
||||
/** Comparison. */
|
||||
/** @{ */
|
||||
int compare (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator== (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator!= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator< (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator<= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator> (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
bool operator>= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs);
|
||||
int compare (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator== (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator!= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator< (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator<= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator> (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
bool operator>= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs);
|
||||
|
||||
int compare (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator== (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator!= (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator< (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator<= (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator> (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
bool operator>= (IPEndpoint const& lhs, IPEndpoint const& rhs);
|
||||
int compare (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator== (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator!= (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator< (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator<= (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator> (IPAddress const& lhs, IPAddress const& rhs);
|
||||
bool operator>= (IPAddress const& lhs, IPAddress const& rhs);
|
||||
|
||||
/** Output stream conversions. */
|
||||
/** @{ */
|
||||
std::ostream& operator<< (std::ostream& os, IPEndpoint::V4 const& addr);
|
||||
std::ostream& operator<< (std::ostream& os, IPEndpoint::V6 const& addr);
|
||||
std::ostream& operator<< (std::ostream& os, IPEndpoint const& ep);
|
||||
std::ostream& operator<< (std::ostream& os, IPAddress::V4 const& addr);
|
||||
std::ostream& operator<< (std::ostream& os, IPAddress::V6 const& addr);
|
||||
std::ostream& operator<< (std::ostream& os, IPAddress const& ep);
|
||||
/** @} */
|
||||
|
||||
/** Input stream conversions. */
|
||||
/** @{ */
|
||||
std::istream& operator>> (std::istream& is, IPEndpoint::V4& addr);
|
||||
std::istream& operator>> (std::istream& is, IPEndpoint& ep);
|
||||
//std::istream& operator>> (std::istream &is, IPEndpoint::V6&);
|
||||
std::istream& operator>> (std::istream& is, IPAddress::V4& addr);
|
||||
std::istream& operator>> (std::istream& is, IPAddress& ep);
|
||||
//std::istream& operator>> (std::istream &is, IPAddress::V6&);
|
||||
/** @} */
|
||||
|
||||
struct IPAddress::key_equal
|
||||
{
|
||||
bool operator() (IPAddress const& lhs, IPAddress const& rhs) const
|
||||
{
|
||||
return lhs == rhs;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace std {
|
||||
|
||||
template <typename T>
|
||||
struct hash;
|
||||
|
||||
template <>
|
||||
struct hash <beast::IPAddress>
|
||||
{
|
||||
std::size_t operator() (beast::IPAddress const& value) const
|
||||
{
|
||||
std::size_t hash (0);
|
||||
if (value.isV4())
|
||||
hash = beast::IPAddress::V4::hasher() (value.v4());
|
||||
else if (value.isV6())
|
||||
hash = beast::IPAddress::V6::hasher() (value.v6());
|
||||
hash += value.port();
|
||||
return hash;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -23,4 +23,5 @@
|
||||
|
||||
#include "../../modules/beast_core/beast_core.h" // for UnitTest
|
||||
|
||||
#include "impl/IPEndpoint.cpp"
|
||||
#include "impl/DynamicBuffer.cpp"
|
||||
#include "impl/IPAddress.cpp"
|
||||
|
||||
91
src/beast/beast/net/impl/DynamicBuffer.cpp
Normal file
91
src/beast/beast/net/impl/DynamicBuffer.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "../DynamicBuffer.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
DynamicBuffer::DynamicBuffer (size_type blocksize)
|
||||
: m_blocksize (blocksize)
|
||||
, m_size (0)
|
||||
{
|
||||
}
|
||||
|
||||
DynamicBuffer::~DynamicBuffer ()
|
||||
{
|
||||
for (Buffers::iterator iter (m_buffers.begin());
|
||||
iter != m_buffers.end(); ++iter)
|
||||
free (*iter);
|
||||
}
|
||||
|
||||
void DynamicBuffer::swapWith (DynamicBuffer& other)
|
||||
{
|
||||
std::swap (m_blocksize, other.m_blocksize);
|
||||
std::swap (m_size, other.m_size);
|
||||
m_buffers.swap (other.m_buffers);
|
||||
}
|
||||
|
||||
void DynamicBuffer::commit (size_type n)
|
||||
{
|
||||
m_size += n;
|
||||
bassert (m_size <= m_buffers.size () * m_blocksize);
|
||||
}
|
||||
|
||||
DynamicBuffer::size_type DynamicBuffer::size () const
|
||||
{
|
||||
return m_size;
|
||||
}
|
||||
|
||||
void DynamicBuffer::reserve (size_type n)
|
||||
{
|
||||
size_type count ((m_size + n + m_blocksize - 1) / m_blocksize);
|
||||
if (count > m_buffers.size ())
|
||||
for (count -= m_buffers.size (); count-- > 0;)
|
||||
m_buffers.push_back (malloc (m_blocksize));
|
||||
}
|
||||
|
||||
void DynamicBuffer::shrink_to_fit ()
|
||||
{
|
||||
size_type const count ((m_size + m_blocksize - 1) / m_blocksize);
|
||||
while (m_buffers.size () > count)
|
||||
{
|
||||
free (m_buffers.back ());
|
||||
m_buffers.erase (m_buffers.end () - 1);
|
||||
}
|
||||
}
|
||||
|
||||
std::string DynamicBuffer::to_string () const
|
||||
{
|
||||
std::string (s);
|
||||
s.reserve (m_size);
|
||||
std::size_t amount (m_size);
|
||||
for (Buffers::const_iterator iter (m_buffers.begin());
|
||||
amount > 0 && iter != m_buffers.end(); ++iter)
|
||||
{
|
||||
char const* p (static_cast <char const*> (*iter));
|
||||
size_type const n (std::min (amount, m_blocksize));
|
||||
s.append (p, p + n);
|
||||
amount -= n;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,43 +17,42 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../IPEndpoint.h"
|
||||
#include "../IPAddress.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace beast {
|
||||
|
||||
IPEndpoint::V4::V4 ()
|
||||
IPAddress::V4::V4 ()
|
||||
: value (0)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::V4::V4 (uint32 value_)
|
||||
IPAddress::V4::V4 (uint32 value_)
|
||||
: value (value_)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::V4::V4 (uint8 a, uint8 b, uint8 c, uint8 d)
|
||||
IPAddress::V4::V4 (uint8 a, uint8 b, uint8 c, uint8 d)
|
||||
: value ((a<<24)|(b<<16)|(c<<8)|d)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::V4::V4 (V4 const& other)
|
||||
IPAddress::V4::V4 (V4 const& other)
|
||||
: value (other.value)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::V4& IPEndpoint::V4::operator= (V4 const& other)
|
||||
IPAddress::V4& IPAddress::V4::operator= (V4 const& other)
|
||||
{
|
||||
value = other.value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
IPEndpoint::V4 IPEndpoint::V4::localBroadcastAddress ()
|
||||
IPAddress::V4 IPAddress::V4::localBroadcastAddress ()
|
||||
{
|
||||
return V4 (0xffffffff);
|
||||
}
|
||||
|
||||
IPEndpoint::V4 IPEndpoint::V4::broadcastAddress () const
|
||||
IPAddress::V4 IPAddress::V4::broadcastAddress () const
|
||||
{
|
||||
switch (getClass())
|
||||
{
|
||||
@@ -68,18 +67,18 @@ IPEndpoint::V4 IPEndpoint::V4::broadcastAddress () const
|
||||
return V4();
|
||||
}
|
||||
|
||||
char IPEndpoint::V4::getClass () const
|
||||
char IPAddress::V4::getClass () const
|
||||
{
|
||||
static char const* table = "AAAABBCD";
|
||||
return table[(value&0xE0000000)>>29];
|
||||
}
|
||||
|
||||
bool IPEndpoint::V4::isPublic () const
|
||||
bool IPAddress::V4::isPublic () const
|
||||
{
|
||||
return !isPrivate() && !isBroadcast() && !isMulticast();
|
||||
}
|
||||
|
||||
bool IPEndpoint::V4::isPrivate () const
|
||||
bool IPAddress::V4::isPrivate () const
|
||||
{
|
||||
return
|
||||
((value&0xff000000)==0x0a000000) || // Prefix /8, 10.##.#.#
|
||||
@@ -88,22 +87,22 @@ bool IPEndpoint::V4::isPrivate () const
|
||||
isLoopback();
|
||||
}
|
||||
|
||||
bool IPEndpoint::V4::isBroadcast () const
|
||||
bool IPAddress::V4::isBroadcast () const
|
||||
{
|
||||
return (value == broadcastAddress().value);
|
||||
}
|
||||
|
||||
bool IPEndpoint::V4::isMulticast () const
|
||||
bool IPAddress::V4::isMulticast () const
|
||||
{
|
||||
return getClass() == 'D';
|
||||
}
|
||||
|
||||
bool IPEndpoint::V4::isLoopback () const
|
||||
bool IPAddress::V4::isLoopback () const
|
||||
{
|
||||
return (value&0xff000000)==0x7f000000;
|
||||
}
|
||||
|
||||
IPEndpoint::V4::Proxy <true> IPEndpoint::V4::operator[] (std::size_t index) const
|
||||
IPAddress::V4::Proxy <true> IPAddress::V4::operator[] (std::size_t index) const
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
@@ -116,7 +115,7 @@ IPEndpoint::V4::Proxy <true> IPEndpoint::V4::operator[] (std::size_t index) cons
|
||||
};
|
||||
};
|
||||
|
||||
IPEndpoint::V4::Proxy <false> IPEndpoint::V4::operator[] (std::size_t index)
|
||||
IPAddress::V4::Proxy <false> IPAddress::V4::operator[] (std::size_t index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
@@ -129,7 +128,7 @@ IPEndpoint::V4::Proxy <false> IPEndpoint::V4::operator[] (std::size_t index)
|
||||
};
|
||||
};
|
||||
|
||||
std::string IPEndpoint::V4::to_string () const
|
||||
std::string IPAddress::V4::to_string () const
|
||||
{
|
||||
std::string s;
|
||||
s.reserve (15);
|
||||
@@ -140,33 +139,33 @@ std::string IPEndpoint::V4::to_string () const
|
||||
return s;
|
||||
}
|
||||
|
||||
IPEndpoint::V4::operator std::string () const
|
||||
IPAddress::V4::operator std::string () const
|
||||
{
|
||||
return to_string();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
IPEndpoint::IPEndpoint ()
|
||||
IPAddress::IPAddress ()
|
||||
: m_type (none)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::IPEndpoint (V4 const& v4, uint16 port)
|
||||
IPAddress::IPAddress (V4 const& v4, uint16 port)
|
||||
: m_type (ipv4)
|
||||
, m_port (port)
|
||||
, m_v4 (v4)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::IPEndpoint (V6 const& v6, uint16 port)
|
||||
IPAddress::IPAddress (V6 const& v6, uint16 port)
|
||||
: m_type (ipv6)
|
||||
, m_port (port)
|
||||
, m_v6 (v6)
|
||||
{
|
||||
}
|
||||
|
||||
IPEndpoint::IPEndpoint (IPEndpoint const& other)
|
||||
IPAddress::IPAddress (IPAddress const& other)
|
||||
: m_type (other.m_type)
|
||||
, m_port (other.m_port)
|
||||
{
|
||||
@@ -180,7 +179,7 @@ IPEndpoint::IPEndpoint (IPEndpoint const& other)
|
||||
};
|
||||
}
|
||||
|
||||
IPEndpoint& IPEndpoint::operator= (IPEndpoint const& other)
|
||||
IPAddress& IPAddress::operator= (IPAddress const& other)
|
||||
{
|
||||
m_type = other.m_type;
|
||||
m_port = other.m_port;
|
||||
@@ -195,17 +194,17 @@ IPEndpoint& IPEndpoint::operator= (IPEndpoint const& other)
|
||||
return *this;
|
||||
}
|
||||
|
||||
IPEndpoint IPEndpoint::from_string (std::string const& s)
|
||||
IPAddress IPAddress::from_string (std::string const& s)
|
||||
{
|
||||
std::stringstream is (s);
|
||||
IPEndpoint ep;
|
||||
IPAddress ep;
|
||||
is >> ep;
|
||||
if (! is.fail() && is.rdbuf()->in_avail() == 0)
|
||||
return ep;
|
||||
return IPEndpoint();
|
||||
return IPAddress();
|
||||
}
|
||||
|
||||
IPEndpoint& IPEndpoint::operator= (V4 const& address)
|
||||
IPAddress& IPAddress::operator= (V4 const& address)
|
||||
{
|
||||
m_type = ipv4;
|
||||
m_port = 0;
|
||||
@@ -213,7 +212,7 @@ IPEndpoint& IPEndpoint::operator= (V4 const& address)
|
||||
return *this;
|
||||
}
|
||||
|
||||
IPEndpoint& IPEndpoint::operator= (V6 const& address)
|
||||
IPAddress& IPAddress::operator= (V6 const& address)
|
||||
{
|
||||
m_type = ipv6;
|
||||
m_port = 0;
|
||||
@@ -221,66 +220,66 @@ IPEndpoint& IPEndpoint::operator= (V6 const& address)
|
||||
return *this;
|
||||
}
|
||||
|
||||
IPEndpoint IPEndpoint::withPort (uint16 port) const
|
||||
IPAddress IPAddress::withPort (uint16 port) const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
case ipv4: return IPEndpoint (m_v4, port);
|
||||
case ipv6: return IPEndpoint (m_v6, port);
|
||||
case ipv4: return IPAddress (m_v4, port);
|
||||
case ipv6: return IPAddress (m_v6, port);
|
||||
default:
|
||||
case none:
|
||||
bassertfalse;
|
||||
break;
|
||||
};
|
||||
return IPEndpoint();
|
||||
return IPAddress();
|
||||
}
|
||||
|
||||
bool IPEndpoint::empty () const
|
||||
bool IPAddress::empty () const
|
||||
{
|
||||
return m_type == none;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isNull () const
|
||||
bool IPAddress::isNull () const
|
||||
{
|
||||
return empty ();
|
||||
}
|
||||
|
||||
bool IPEndpoint::isNotNull () const
|
||||
bool IPAddress::isNotNull () const
|
||||
{
|
||||
return ! empty ();
|
||||
}
|
||||
|
||||
IPEndpoint::Type IPEndpoint::type () const
|
||||
IPAddress::Type IPAddress::type () const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isV4 () const
|
||||
bool IPAddress::isV4 () const
|
||||
{
|
||||
return m_type == ipv4;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isV6 () const
|
||||
bool IPAddress::isV6 () const
|
||||
{
|
||||
return m_type == ipv6;
|
||||
}
|
||||
|
||||
IPEndpoint::V4 const& IPEndpoint::v4 () const
|
||||
IPAddress::V4 const& IPAddress::v4 () const
|
||||
{
|
||||
return m_v4;
|
||||
}
|
||||
|
||||
IPEndpoint::V6 const& IPEndpoint::v6 () const
|
||||
IPAddress::V6 const& IPAddress::v6 () const
|
||||
{
|
||||
return m_v6;
|
||||
}
|
||||
|
||||
uint16 IPEndpoint::port () const
|
||||
uint16 IPAddress::port () const
|
||||
{
|
||||
return m_port;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isPublic () const
|
||||
bool IPAddress::isPublic () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -294,7 +293,7 @@ bool IPEndpoint::isPublic () const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isPrivate () const
|
||||
bool IPAddress::isPrivate () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -308,7 +307,7 @@ bool IPEndpoint::isPrivate () const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isBroadcast () const
|
||||
bool IPAddress::isBroadcast () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -322,7 +321,7 @@ bool IPEndpoint::isBroadcast () const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isMulticast () const
|
||||
bool IPAddress::isMulticast () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -336,7 +335,7 @@ bool IPEndpoint::isMulticast () const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IPEndpoint::isLoopback () const
|
||||
bool IPAddress::isLoopback () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -350,7 +349,7 @@ bool IPEndpoint::isLoopback () const
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string IPEndpoint::to_string () const
|
||||
std::string IPAddress::to_string () const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
@@ -376,7 +375,7 @@ std::string IPEndpoint::to_string () const
|
||||
return std::string();
|
||||
}
|
||||
|
||||
IPEndpoint::operator std::string () const
|
||||
IPAddress::operator std::string () const
|
||||
{
|
||||
return to_string();
|
||||
}
|
||||
@@ -446,7 +445,7 @@ detail::integer_holder <IntType> integer (IntType& i)
|
||||
}
|
||||
|
||||
/** Parse IPv4 address. */
|
||||
std::istream& operator>> (std::istream &is, IPEndpoint::V4& addr)
|
||||
std::istream& operator>> (std::istream &is, IPAddress::V4& addr)
|
||||
{
|
||||
uint8 octets [4];
|
||||
is >> parse::integer (octets [0]);
|
||||
@@ -458,16 +457,16 @@ std::istream& operator>> (std::istream &is, IPEndpoint::V4& addr)
|
||||
if (!is)
|
||||
return is;
|
||||
}
|
||||
addr = IPEndpoint::V4 (octets[0], octets[1], octets[2], octets[3]);
|
||||
addr = IPAddress::V4 (octets[0], octets[1], octets[2], octets[3]);
|
||||
return is;
|
||||
}
|
||||
|
||||
/** Parse an IPEndpoint.
|
||||
/** Parse an IPAddress.
|
||||
@note Currently only IPv4 addresses are supported.
|
||||
*/
|
||||
std::istream& operator>> (std::istream &is, IPEndpoint& ep)
|
||||
std::istream& operator>> (std::istream &is, IPAddress& ep)
|
||||
{
|
||||
IPEndpoint::V4 v4;
|
||||
IPAddress::V4 v4;
|
||||
is >> v4;
|
||||
if (is.fail())
|
||||
return is;
|
||||
@@ -479,7 +478,7 @@ std::istream& operator>> (std::istream &is, IPEndpoint& ep)
|
||||
if (c != ':')
|
||||
{
|
||||
is.unget();
|
||||
ep = IPEndpoint (v4);
|
||||
ep = IPAddress (v4);
|
||||
return is;
|
||||
}
|
||||
|
||||
@@ -488,23 +487,23 @@ std::istream& operator>> (std::istream &is, IPEndpoint& ep)
|
||||
if (is.fail())
|
||||
return is;
|
||||
|
||||
ep = IPEndpoint (v4, port);
|
||||
ep = IPAddress (v4, port);
|
||||
}
|
||||
else
|
||||
{
|
||||
ep = IPEndpoint (v4);
|
||||
ep = IPAddress (v4);
|
||||
}
|
||||
|
||||
|
||||
return is;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
IPEndpoint IPEndpoint::from_string_altform (std::string const& s)
|
||||
IPAddress IPAddress::from_string_altform (std::string const& s)
|
||||
{
|
||||
// Accept the regular form if it parses
|
||||
{
|
||||
IPEndpoint ep (IPEndpoint::from_string (s));
|
||||
IPAddress ep (IPAddress::from_string (s));
|
||||
if (! ep.empty())
|
||||
return ep;
|
||||
}
|
||||
@@ -512,16 +511,16 @@ IPEndpoint IPEndpoint::from_string_altform (std::string const& s)
|
||||
// Now try the alt form
|
||||
std::stringstream is (s);
|
||||
|
||||
IPEndpoint::V4 v4;
|
||||
IPAddress::V4 v4;
|
||||
is >> v4;
|
||||
if (! is.fail())
|
||||
{
|
||||
IPEndpoint ep (v4);
|
||||
IPAddress ep (v4);
|
||||
|
||||
if (is.rdbuf()->in_avail()>0)
|
||||
{
|
||||
if (! parse::expect (is, ' '))
|
||||
return IPEndpoint();
|
||||
return IPAddress();
|
||||
|
||||
while (is.rdbuf()->in_avail()>0)
|
||||
{
|
||||
@@ -537,7 +536,7 @@ IPEndpoint IPEndpoint::from_string_altform (std::string const& s)
|
||||
uint16 port;
|
||||
is >> port;
|
||||
if (is.fail())
|
||||
return IPEndpoint();
|
||||
return IPAddress();
|
||||
|
||||
return ep.withPort (port);
|
||||
}
|
||||
@@ -550,12 +549,12 @@ IPEndpoint IPEndpoint::from_string_altform (std::string const& s)
|
||||
|
||||
// Could be V6 here...
|
||||
|
||||
return IPEndpoint();
|
||||
return IPAddress();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
int compare (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs)
|
||||
int compare (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs)
|
||||
{
|
||||
if (lhs.value < rhs.value)
|
||||
return -1;
|
||||
@@ -564,14 +563,14 @@ int compare (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator== (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) == 0; }
|
||||
bool operator!= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) != 0; }
|
||||
bool operator< (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) < 0; }
|
||||
bool operator<= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) <= 0; }
|
||||
bool operator> (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) > 0; }
|
||||
bool operator>= (IPEndpoint::V4 const& lhs, IPEndpoint::V4 const& rhs) { return compare (lhs, rhs) >= 0; }
|
||||
bool operator== (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) == 0; }
|
||||
bool operator!= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) != 0; }
|
||||
bool operator< (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) < 0; }
|
||||
bool operator<= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) <= 0; }
|
||||
bool operator> (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) > 0; }
|
||||
bool operator>= (IPAddress::V4 const& lhs, IPAddress::V4 const& rhs) { return compare (lhs, rhs) >= 0; }
|
||||
|
||||
static int type_compare (IPEndpoint const& lhs, IPEndpoint const& rhs)
|
||||
static int type_compare (IPAddress const& lhs, IPAddress const& rhs)
|
||||
{
|
||||
if (lhs.type() < rhs.type())
|
||||
return -1;
|
||||
@@ -580,7 +579,7 @@ static int type_compare (IPEndpoint const& lhs, IPEndpoint const& rhs)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int compare (IPEndpoint const& lhs, IPEndpoint const& rhs)
|
||||
int compare (IPAddress const& lhs, IPAddress const& rhs)
|
||||
{
|
||||
int const tc (type_compare (lhs, rhs));
|
||||
|
||||
@@ -591,36 +590,36 @@ int compare (IPEndpoint const& lhs, IPEndpoint const& rhs)
|
||||
|
||||
switch (lhs.type())
|
||||
{
|
||||
case IPEndpoint::none: return 0;
|
||||
case IPEndpoint::ipv4: return compare (lhs.v4(), rhs.v4());
|
||||
case IPAddress::none: return 0;
|
||||
case IPAddress::ipv4: return compare (lhs.v4(), rhs.v4());
|
||||
default:
|
||||
case IPEndpoint::ipv6:
|
||||
case IPAddress::ipv6:
|
||||
break;
|
||||
};
|
||||
bassertfalse;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator== (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) == 0; }
|
||||
bool operator!= (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) != 0; }
|
||||
bool operator< (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) < 0; }
|
||||
bool operator<= (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) <= 0; }
|
||||
bool operator> (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) > 0; }
|
||||
bool operator>= (IPEndpoint const& lhs, IPEndpoint const& rhs) { return compare (lhs, rhs) >= 0; }
|
||||
bool operator== (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) == 0; }
|
||||
bool operator!= (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) != 0; }
|
||||
bool operator< (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) < 0; }
|
||||
bool operator<= (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) <= 0; }
|
||||
bool operator> (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) > 0; }
|
||||
bool operator>= (IPAddress const& lhs, IPAddress const& rhs) { return compare (lhs, rhs) >= 0; }
|
||||
|
||||
std::ostream& operator<< (std::ostream &os, IPEndpoint::V4 const& addr)
|
||||
std::ostream& operator<< (std::ostream &os, IPAddress::V4 const& addr)
|
||||
{
|
||||
os << addr.to_string();
|
||||
return os;
|
||||
}
|
||||
|
||||
std::ostream& operator<< (std::ostream &os, IPEndpoint::V6 const& addr)
|
||||
std::ostream& operator<< (std::ostream &os, IPAddress::V6 const& addr)
|
||||
{
|
||||
os << addr.to_string();
|
||||
return os;
|
||||
}
|
||||
|
||||
std::ostream& operator<< (std::ostream &os, IPEndpoint const& ep)
|
||||
std::ostream& operator<< (std::ostream &os, IPAddress const& ep)
|
||||
{
|
||||
os << ep.to_string();
|
||||
return os;
|
||||
@@ -628,10 +627,10 @@ std::ostream& operator<< (std::ostream &os, IPEndpoint const& ep)
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class IPEndpointTests : public UnitTest
|
||||
class IPAddressTests : public UnitTest
|
||||
{
|
||||
public:
|
||||
bool parse (char const* text, IPEndpoint& ep)
|
||||
bool parse (char const* text, IPAddress& ep)
|
||||
{
|
||||
std::string input (text);
|
||||
std::istringstream stream (input);
|
||||
@@ -641,14 +640,14 @@ public:
|
||||
|
||||
void shouldPass (char const* text)
|
||||
{
|
||||
IPEndpoint ep;
|
||||
IPAddress ep;
|
||||
expect (parse (text, ep));
|
||||
expect (ep.to_string() == std::string(text));
|
||||
}
|
||||
|
||||
void shouldFail (char const* text)
|
||||
{
|
||||
IPEndpoint ep;
|
||||
IPAddress ep;
|
||||
unexpected (parse (text, ep));
|
||||
}
|
||||
|
||||
@@ -669,13 +668,33 @@ public:
|
||||
shouldFail ("1.2.3:80");
|
||||
}
|
||||
|
||||
void testV4Proxy ()
|
||||
{
|
||||
beginTestCase("v4 proxy");
|
||||
|
||||
IPAddress::V4 v4 (10, 0, 0, 1);
|
||||
expect (v4[0]==10);
|
||||
expect (v4[1]==0);
|
||||
expect (v4[2]==0);
|
||||
expect (v4[3]==1);
|
||||
|
||||
expect((!((0xff)<<16)) == 0x00000000);
|
||||
expect((~((0xff)<<16)) == 0xff00ffff);
|
||||
|
||||
v4[1] = 10;
|
||||
expect (v4[0]==10);
|
||||
expect (v4[1]==10);
|
||||
expect (v4[2]==0);
|
||||
expect (v4[3]==1);
|
||||
}
|
||||
|
||||
void testPrint ()
|
||||
{
|
||||
beginTestCase ("addresses");
|
||||
|
||||
IPEndpoint ep;
|
||||
IPAddress ep;
|
||||
|
||||
ep = IPEndpoint(IPEndpoint::V4(127,0,0,1)).withPort (80);
|
||||
ep = IPAddress(IPAddress::V4(127,0,0,1)).withPort (80);
|
||||
expect (!ep.isPublic());
|
||||
expect ( ep.isPrivate());
|
||||
expect (!ep.isBroadcast());
|
||||
@@ -683,7 +702,7 @@ public:
|
||||
expect ( ep.isLoopback());
|
||||
expect (ep.to_string() == "127.0.0.1:80");
|
||||
|
||||
ep = IPEndpoint::V4(10,0,0,1);
|
||||
ep = IPAddress::V4(10,0,0,1);
|
||||
expect ( ep.v4().getClass() == 'A');
|
||||
expect (!ep.isPublic());
|
||||
expect ( ep.isPrivate());
|
||||
@@ -692,7 +711,7 @@ public:
|
||||
expect (!ep.isLoopback());
|
||||
expect (ep.to_string() == "10.0.0.1");
|
||||
|
||||
ep = IPEndpoint::V4(166,78,151,147);
|
||||
ep = IPAddress::V4(166,78,151,147);
|
||||
expect ( ep.isPublic());
|
||||
expect (!ep.isPrivate());
|
||||
expect (!ep.isBroadcast());
|
||||
@@ -705,13 +724,14 @@ public:
|
||||
{
|
||||
testPrint();
|
||||
testParse();
|
||||
testV4Proxy();
|
||||
}
|
||||
|
||||
IPEndpointTests () : UnitTest ("IPEndpoint", "beast")
|
||||
IPAddressTests () : UnitTest ("IPAddress", "beast")
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
static IPEndpointTests ipEndpointTests;
|
||||
static IPAddressTests ipEndpointTests;
|
||||
|
||||
}
|
||||
@@ -17,8 +17,10 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_CONTAINERDELETEPOLICY_H_INCLUDED
|
||||
#define BEAST_CONTAINERDELETEPOLICY_H_INCLUDED
|
||||
#ifndef BEAST_SMARTPTR_CONTAINERDELETEPOLICY_H_INCLUDED
|
||||
#define BEAST_SMARTPTR_CONTAINERDELETEPOLICY_H_INCLUDED
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** The DeletePolicy provides a way to destroy objects stored in containers.
|
||||
|
||||
@@ -45,4 +47,6 @@ struct ContainerDeletePolicy
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -21,8 +21,16 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_SCOPEDPOINTER_H_INCLUDED
|
||||
#define BEAST_SCOPEDPOINTER_H_INCLUDED
|
||||
#ifndef BEAST_SMARTPTR_SCOPEDPOINTER_H_INCLUDED
|
||||
#define BEAST_SMARTPTR_SCOPEDPOINTER_H_INCLUDED
|
||||
|
||||
#include "../Config.h"
|
||||
#include "../Uncopyable.h"
|
||||
#include "../StaticAssert.h"
|
||||
|
||||
#include "ContainerDeletePolicy.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
@@ -67,13 +75,13 @@ class ScopedPointer : public Uncopyable
|
||||
public:
|
||||
//==============================================================================
|
||||
/** Creates a ScopedPointer containing a null pointer. */
|
||||
inline ScopedPointer() noexcept
|
||||
inline ScopedPointer()
|
||||
: object (nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
/** Creates a ScopedPointer that owns the specified object. */
|
||||
inline ScopedPointer (ObjectType* const objectToTakePossessionOf) noexcept
|
||||
inline ScopedPointer (ObjectType* const objectToTakePossessionOf)
|
||||
: object (objectToTakePossessionOf)
|
||||
{
|
||||
}
|
||||
@@ -84,7 +92,7 @@ public:
|
||||
the pointer from the other object to this one, and the other object is reset to
|
||||
be a null pointer.
|
||||
*/
|
||||
ScopedPointer (ScopedPointer& objectToTransferFrom) noexcept
|
||||
ScopedPointer (ScopedPointer& objectToTransferFrom)
|
||||
: object (objectToTransferFrom.object)
|
||||
{
|
||||
objectToTransferFrom.object = nullptr;
|
||||
@@ -144,13 +152,13 @@ public:
|
||||
}
|
||||
|
||||
#if BEAST_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
||||
ScopedPointer (ScopedPointer&& other) noexcept
|
||||
ScopedPointer (ScopedPointer&& other)
|
||||
: object (other.object)
|
||||
{
|
||||
other.object = nullptr;
|
||||
}
|
||||
|
||||
ScopedPointer& operator= (ScopedPointer&& other) noexcept
|
||||
ScopedPointer& operator= (ScopedPointer&& other)
|
||||
{
|
||||
object = other.object;
|
||||
other.object = nullptr;
|
||||
@@ -160,28 +168,28 @@ public:
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the object that this ScopedPointer refers to. */
|
||||
inline operator ObjectType*() const noexcept { return object; }
|
||||
inline operator ObjectType*() const { return object; }
|
||||
|
||||
/** Returns the object that this ScopedPointer refers to. */
|
||||
inline ObjectType* get() const noexcept { return object; }
|
||||
inline ObjectType* get() const { return object; }
|
||||
|
||||
/** Returns the object that this ScopedPointer refers to. */
|
||||
inline ObjectType& operator*() const noexcept { return *object; }
|
||||
inline ObjectType& operator*() const { return *object; }
|
||||
|
||||
/** Lets you access methods and properties of the object that this ScopedPointer refers to. */
|
||||
inline ObjectType* operator->() const noexcept { return object; }
|
||||
inline ObjectType* operator->() const { return object; }
|
||||
|
||||
//==============================================================================
|
||||
/** Removes the current object from this ScopedPointer without deleting it.
|
||||
This will return the current object, and set the ScopedPointer to a null pointer.
|
||||
*/
|
||||
ObjectType* release() noexcept { ObjectType* const o = object; object = nullptr; return o; }
|
||||
ObjectType* release() { ObjectType* const o = object; object = nullptr; return o; }
|
||||
|
||||
//==============================================================================
|
||||
/** Swaps this object with that of another ScopedPointer.
|
||||
The two objects simply exchange their pointers.
|
||||
*/
|
||||
void swapWith (ScopedPointer <ObjectType>& other) noexcept
|
||||
void swapWith (ScopedPointer <ObjectType>& other)
|
||||
{
|
||||
// Two ScopedPointers should never be able to refer to the same object - if
|
||||
// this happens, you must have done something dodgy!
|
||||
@@ -200,7 +208,7 @@ private:
|
||||
ObjectType* object;
|
||||
|
||||
// (Required as an alternative to the overloaded & operator).
|
||||
const ScopedPointer* getAddress() const noexcept { return this; }
|
||||
const ScopedPointer* getAddress() const { return this; }
|
||||
|
||||
#if ! BEAST_MSVC // (MSVC can't deal with multiple copy constructors)
|
||||
/* The copy constructors are private to stop people accidentally copying a const ScopedPointer
|
||||
@@ -227,7 +235,7 @@ private:
|
||||
This can be handy for checking whether this is a null pointer.
|
||||
*/
|
||||
template <class ObjectType>
|
||||
bool operator== (const ScopedPointer<ObjectType>& pointer1, ObjectType* const pointer2) noexcept
|
||||
bool operator== (const ScopedPointer<ObjectType>& pointer1, ObjectType* const pointer2)
|
||||
{
|
||||
return static_cast <ObjectType*> (pointer1) == pointer2;
|
||||
}
|
||||
@@ -236,7 +244,7 @@ bool operator== (const ScopedPointer<ObjectType>& pointer1, ObjectType* const po
|
||||
This can be handy for checking whether this is a null pointer.
|
||||
*/
|
||||
template <class ObjectType>
|
||||
bool operator!= (const ScopedPointer<ObjectType>& pointer1, ObjectType* const pointer2) noexcept
|
||||
bool operator!= (const ScopedPointer<ObjectType>& pointer1, ObjectType* const pointer2)
|
||||
{
|
||||
return static_cast <ObjectType*> (pointer1) != pointer2;
|
||||
}
|
||||
@@ -248,4 +256,7 @@ template <typename Type>
|
||||
void deleteAndZero (ScopedPointer<Type>&) { static_bassert (sizeof (Type) == 12345); }
|
||||
#endif
|
||||
|
||||
#endif // BEAST_SCOPEDPOINTER_H_INCLUDED
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
#ifndef BEAST_SHAREDOBJECT_H_INCLUDED
|
||||
#define BEAST_SHAREDOBJECT_H_INCLUDED
|
||||
|
||||
#include "../Config.h"
|
||||
#include "../Atomic.h"
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
Adds reference-counting to an object.
|
||||
@@ -194,4 +200,6 @@ private:
|
||||
int refCount;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -21,8 +21,13 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_CORE_SHAREDPTR_H_INCLUDED
|
||||
#define BEAST_CORE_SHAREDPTR_H_INCLUDED
|
||||
#ifndef BEAST_SMARTPTR_SHAREDPTR_H_INCLUDED
|
||||
#define BEAST_SMARTPTR_SHAREDPTR_H_INCLUDED
|
||||
|
||||
#include "../Config.h"
|
||||
#include "SharedObject.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
// Visual Studio doesn't seem to do very well when it comes
|
||||
// to templated constructors and assignments so we provide
|
||||
@@ -159,7 +164,7 @@ public:
|
||||
|
||||
template <class U>
|
||||
SharedPtr (SharedPtr <U>&& sp) noexcept
|
||||
: m_p (sp.swap <U> (nullptr))
|
||||
: m_p (sp.template swap <U> (nullptr))
|
||||
{
|
||||
}
|
||||
/** @} */
|
||||
@@ -180,7 +185,7 @@ public:
|
||||
template <class U>
|
||||
SharedPtr& operator= (SharedPtr <U>&& sp)
|
||||
{
|
||||
return assign (sp.swap <U> (nullptr));
|
||||
return assign (sp.template swap <U> (nullptr));
|
||||
}
|
||||
/** @} */
|
||||
#endif
|
||||
@@ -317,4 +322,6 @@ bool operator!= (T const* lhs, SharedPtr <U> const& rhs) noexcept
|
||||
}
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
25
src/beast/beast/smart_ptr/SmartPtr.cpp
Normal file
25
src/beast/beast/smart_ptr/SmartPtr.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "ContainerDeletePolicy.h"
|
||||
#include "ScopedPointer.h"
|
||||
#include "SharedObject.h"
|
||||
#include "SharedPtr.h"
|
||||
@@ -195,6 +195,9 @@ public:
|
||||
/** Generates a probably-unique 64-bit hashcode from this string. */
|
||||
int64 hashCode64() const noexcept;
|
||||
|
||||
/** Returns a hash value suitable for use with std::hash. */
|
||||
std::size_t hash() const noexcept;
|
||||
|
||||
/** Returns the number of characters in the string. */
|
||||
int length() const noexcept;
|
||||
|
||||
|
||||
@@ -404,26 +404,42 @@ beast_wchar String::operator[] (int index) const noexcept
|
||||
return text [index];
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace detail {
|
||||
|
||||
template <typename Type>
|
||||
struct HashGenerator
|
||||
{
|
||||
template <typename CharPointer>
|
||||
static Type calculate (CharPointer t) noexcept
|
||||
{
|
||||
Type result = Type();
|
||||
|
||||
while (! t.isEmpty())
|
||||
result = multiplier * result + t.getAndAdvance();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
enum { multiplier = sizeof (Type) > 4 ? 101 : 31 };
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
int String::hashCode() const noexcept
|
||||
{
|
||||
CharPointerType t (text);
|
||||
int result = 0;
|
||||
|
||||
while (! t.isEmpty())
|
||||
result = 31 * result + (int) t.getAndAdvance();
|
||||
|
||||
return result;
|
||||
return detail::HashGenerator<int> ::calculate (text);
|
||||
}
|
||||
|
||||
int64 String::hashCode64() const noexcept
|
||||
{
|
||||
CharPointerType t (text);
|
||||
int64 result = 0;
|
||||
return detail::HashGenerator<int64> ::calculate (text);
|
||||
}
|
||||
|
||||
while (! t.isEmpty())
|
||||
result = 101 * result + t.getAndAdvance();
|
||||
|
||||
return result;
|
||||
std::size_t String::hash() const noexcept
|
||||
{
|
||||
return detail::HashGenerator<std::size_t>::calculate (text);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
||||
@@ -17,13 +17,12 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREAD_LOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREAD_LOCKGUARD_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_LOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREADS_LOCKGUARD_H_INCLUDED
|
||||
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace beast {
|
||||
|
||||
template <typename Mutex>
|
||||
class LockGuard : public Uncopyable
|
||||
84
src/beast/beast/threads/RecursiveMutex.h
Normal file
84
src/beast/beast/threads/RecursiveMutex.h
Normal file
@@ -0,0 +1,84 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_RECURSIVEMUTEX_H_INCLUDED
|
||||
#define BEAST_THREADS_RECURSIVEMUTEX_H_INCLUDED
|
||||
|
||||
#include "../Config.h"
|
||||
#include "LockGuard.h"
|
||||
#include "UnlockGuard.h"
|
||||
#include "TryLockGuard.h"
|
||||
|
||||
#if ! BEAST_WINDOWS
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
namespace beast {
|
||||
|
||||
class RecursiveMutex
|
||||
{
|
||||
public:
|
||||
typedef LockGuard <RecursiveMutex> ScopedLockType;
|
||||
typedef UnlockGuard <RecursiveMutex> ScopedUnlockType;
|
||||
typedef TryLockGuard <RecursiveMutex> ScopedTryLockType;
|
||||
|
||||
/** Create the mutex.
|
||||
The mutux is initially unowned.
|
||||
*/
|
||||
RecursiveMutex ();
|
||||
|
||||
/** Destroy the mutex.
|
||||
If the lock is owned, the result is undefined.
|
||||
*/
|
||||
~RecursiveMutex ();
|
||||
|
||||
// Boost concept compatibility:
|
||||
// http://www.boost.org/doc/libs/1_54_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_concepts
|
||||
|
||||
/** BasicLockable */
|
||||
/** @{ */
|
||||
void lock () const;
|
||||
void unlock () const;
|
||||
/** @} */
|
||||
|
||||
/** Lockable */
|
||||
bool try_lock () const;
|
||||
|
||||
private:
|
||||
// To avoid including windows.h in the public Beast headers, we'll just
|
||||
// reserve storage here that's big enough to be used internally as a windows
|
||||
// CRITICAL_SECTION structure.
|
||||
#if BEAST_WINDOWS
|
||||
# if BEAST_64BIT
|
||||
char section[44];
|
||||
# else
|
||||
char section[24];
|
||||
# endif
|
||||
#else
|
||||
mutable pthread_mutex_t mutex;
|
||||
#endif
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
93
src/beast/beast/threads/ScopedWrapperContext.h
Normal file
93
src/beast/beast/threads/ScopedWrapperContext.h
Normal file
@@ -0,0 +1,93 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_WRAPSCOPED_H_INCLUDED
|
||||
#define BEAST_THREADS_WRAPSCOPED_H_INCLUDED
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** Wraps a function object so invocation happens during a scoped container lifetime. */
|
||||
/** @{ */
|
||||
namespace detail {
|
||||
|
||||
template <typename ScopedType, typename Context, typename Handler>
|
||||
class ScopedWrapper
|
||||
{
|
||||
public:
|
||||
ScopedWrapper (Context const& context, Handler const& handler)
|
||||
: m_context (context)
|
||||
, m_handler (handler)
|
||||
{ }
|
||||
|
||||
void operator() ()
|
||||
{
|
||||
ScopedType const scope (m_context);
|
||||
m_handler();
|
||||
}
|
||||
|
||||
private:
|
||||
Context const& m_context;
|
||||
Handler m_handler;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** Helper to eliminate the template argument at call sites. */
|
||||
template <typename Context, typename ScopedType>
|
||||
class ScopedWrapperContext
|
||||
{
|
||||
public:
|
||||
typedef Context context_type;
|
||||
typedef ScopedType scoped_type;
|
||||
|
||||
class Scope
|
||||
{
|
||||
public:
|
||||
explicit Scope (ScopedWrapperContext const& owner)
|
||||
: m_scope (owner.m_context)
|
||||
{ }
|
||||
private:
|
||||
scoped_type m_scope;
|
||||
};
|
||||
|
||||
ScopedWrapperContext ()
|
||||
{ }
|
||||
|
||||
template <typename Arg>
|
||||
explicit ScopedWrapperContext (Arg& arg)
|
||||
: m_context (arg)
|
||||
{ }
|
||||
|
||||
template <typename Handler>
|
||||
detail::ScopedWrapper <ScopedType, Context, Handler> wrap (
|
||||
Handler const& handler)
|
||||
{
|
||||
return detail::ScopedWrapper <ScopedType, Context, Handler> (
|
||||
m_context, handler);
|
||||
}
|
||||
|
||||
private:
|
||||
Context m_context;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -17,8 +17,17 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_SERVICEQUEUE_H_INCLUDED
|
||||
#define BEAST_SERVICEQUEUE_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_SERVICEQUEUE_H_INCLUDED
|
||||
#define BEAST_THREADS_SERVICEQUEUE_H_INCLUDED
|
||||
|
||||
#include "../chrono/CPUMeter.h"
|
||||
#include "../intrusive/List.h"
|
||||
#include "../intrusive/LockFreeStack.h"
|
||||
#include "SharedData.h"
|
||||
#include "ThreadLocalValue.h"
|
||||
#include "WaitableEvent.h"
|
||||
|
||||
#include "detail/DispatchedHandler.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
@@ -319,6 +328,8 @@ private:
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class ServiceQueueBase
|
||||
@@ -342,7 +353,8 @@ protected:
|
||||
class ScopedServiceThread;
|
||||
|
||||
void wait();
|
||||
void enqueue (Item* item);
|
||||
virtual void enqueue (Item* item);
|
||||
bool empty();
|
||||
|
||||
virtual std::size_t dequeue() = 0;
|
||||
virtual Waiter* new_waiter() = 0;
|
||||
@@ -384,13 +396,12 @@ protected:
|
||||
|
||||
typedef SharedData <State> SharedState;
|
||||
SharedState m_state;
|
||||
CPUMeter m_cpuMeter;
|
||||
Atomic <int> m_stopped;
|
||||
|
||||
static ThreadLocalValue <ServiceQueueBase*> s_service;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** A queue for disatching function calls on other threads.
|
||||
@@ -398,7 +409,7 @@ protected:
|
||||
calling run, run_one, poll, or poll_one.
|
||||
*/
|
||||
template <class Allocator = std::allocator <char> >
|
||||
class ServiceQueueType : public detail::ServiceQueueBase
|
||||
class ServiceQueueType : public ServiceQueueBase
|
||||
{
|
||||
private:
|
||||
using ServiceQueueBase::Item;
|
||||
@@ -439,7 +450,9 @@ public:
|
||||
SharedState::Access state (m_state);
|
||||
|
||||
// Must be empty
|
||||
bassert (state->handlers.empty());
|
||||
//bassert (state->handlers.empty());
|
||||
|
||||
// Cannot destroy while threads are waiting
|
||||
bassert (state->waiting.empty());
|
||||
|
||||
typename Allocator::template rebind <Waiter>::other a (m_alloc);
|
||||
@@ -453,6 +466,10 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns the percentage of time the queue is using the CPU. */
|
||||
double getUtilization () const
|
||||
{ return m_cpuMeter.getUtilization(); }
|
||||
|
||||
/** Returns the allocator associated with the container. */
|
||||
allocator_type get_allocator() const
|
||||
{
|
||||
@@ -506,6 +523,15 @@ public:
|
||||
ItemType <Handler> (BEAST_MOVE_CAST(Handler)(handler)));
|
||||
}
|
||||
|
||||
/** Return a new handler that dispatches the wrapped handler on the queue. */
|
||||
template <typename Handler>
|
||||
detail::DispatchedHandler <ServiceQueueType&, Handler> wrap (
|
||||
BEAST_MOVE_ARG(Handler) handler)
|
||||
{
|
||||
return detail::DispatchedHandler <ServiceQueueType&, Handler> (
|
||||
*this, BEAST_MOVE_CAST(Handler)(handler));
|
||||
}
|
||||
|
||||
/** Run the event loop to execute ready handlers.
|
||||
This runs handlers that are ready to run, without blocking, until
|
||||
there are no more handlers ready or the service queue has been stopped.
|
||||
@@ -17,15 +17,13 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREAD_SHAREDDATA_H_INCLUDED
|
||||
#define BEAST_THREAD_SHAREDDATA_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_SHAREDDATA_H_INCLUDED
|
||||
#define BEAST_THREADS_SHAREDDATA_H_INCLUDED
|
||||
|
||||
#include "RecursiveMutex.h"
|
||||
#include "SharedMutexAdapter.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
|
||||
class CriticalSection;
|
||||
namespace beast {
|
||||
|
||||
/** Structured, multi-threaded access to a shared state.
|
||||
|
||||
@@ -111,7 +109,7 @@ class CriticalSection;
|
||||
@tparam SharedMutexType The type of shared mutex to use.
|
||||
*/
|
||||
template <typename Value, class SharedMutexType =
|
||||
SharedMutexAdapter <CriticalSection> >
|
||||
SharedMutexAdapter <RecursiveMutex> >
|
||||
class SharedData : public Uncopyable
|
||||
{
|
||||
private:
|
||||
@@ -17,8 +17,8 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREAD_SHAREDLOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREAD_SHAREDLOCKGUARD_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_SHAREDLOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREADS_SHAREDLOCKGUARD_H_INCLUDED
|
||||
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
@@ -17,14 +17,13 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREAD_SHAREDMUTEXADAPTER_H_INCLUDED
|
||||
#define BEAST_THREAD_SHAREDMUTEXADAPTER_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_SHAREDMUTEXADAPTER_H_INCLUDED
|
||||
#define BEAST_THREADS_SHAREDMUTEXADAPTER_H_INCLUDED
|
||||
|
||||
#include "LockGuard.h"
|
||||
#include "SharedLockGuard.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace beast {
|
||||
|
||||
/** Adapts a regular Lockable to conform to the SharedMutex concept.
|
||||
Shared locks become unique locks with this interface. Two threads may not
|
||||
@@ -21,8 +21,14 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_SPINLOCK_H_INCLUDED
|
||||
#define BEAST_SPINLOCK_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_SPINLOCK_H_INCLUDED
|
||||
#define BEAST_THREADS_SPINLOCK_H_INCLUDED
|
||||
|
||||
#include "../Atomic.h"
|
||||
#include "LockGuard.h"
|
||||
#include "UnlockGuard.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
@@ -40,6 +46,12 @@
|
||||
class BEAST_API SpinLock : public Uncopyable
|
||||
{
|
||||
public:
|
||||
/** Provides the type of scoped lock to use for locking a SpinLock. */
|
||||
typedef LockGuard <SpinLock> ScopedLockType;
|
||||
|
||||
/** Provides the type of scoped unlocker to use with a SpinLock. */
|
||||
typedef UnlockGuard <SpinLock> ScopedUnlockType;
|
||||
|
||||
inline SpinLock() noexcept {}
|
||||
inline ~SpinLock() noexcept {}
|
||||
|
||||
@@ -57,27 +69,29 @@ public:
|
||||
/** Attempts to acquire the lock, returning true if this was successful. */
|
||||
inline bool tryEnter() const noexcept
|
||||
{
|
||||
return lock.compareAndSetBool (1, 0);
|
||||
return m_lock.compareAndSetBool (1, 0);
|
||||
}
|
||||
|
||||
/** Releases the lock. */
|
||||
inline void exit() const noexcept
|
||||
{
|
||||
bassert (lock.value == 1); // Agh! Releasing a lock that isn't currently held!
|
||||
lock = 0;
|
||||
bassert (m_lock.value == 1); // Agh! Releasing a lock that isn't currently held!
|
||||
m_lock = 0;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
/** Provides the type of scoped lock to use for locking a SpinLock. */
|
||||
typedef GenericScopedLock <SpinLock> ScopedLockType;
|
||||
|
||||
/** Provides the type of scoped unlocker to use with a SpinLock. */
|
||||
typedef GenericScopedUnlock <SpinLock> ScopedUnlockType;
|
||||
void lock () const
|
||||
{ enter(); }
|
||||
void unlock () const
|
||||
{ exit(); }
|
||||
bool try_lock () const
|
||||
{ return tryEnter(); }
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
mutable Atomic<int> lock;
|
||||
mutable Atomic<int> m_lock;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif // BEAST_SPINLOCK_H_INCLUDED
|
||||
@@ -17,8 +17,16 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_CORE_STOPPABLE_H_INCLUDED
|
||||
#define BEAST_CORE_STOPPABLE_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_STOPPABLE_H_INCLUDED
|
||||
#define BEAST_THREADS_STOPPABLE_H_INCLUDED
|
||||
|
||||
#include "../Atomic.h"
|
||||
#include "../intrusive/LockFreeStack.h"
|
||||
#include "../utility/Journal.h"
|
||||
|
||||
#include "WaitableEvent.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
class RootStoppable;
|
||||
|
||||
@@ -185,10 +193,10 @@ public:
|
||||
The default implementation does nothing.
|
||||
Guaranteed to only be called once.
|
||||
*/
|
||||
virtual void onPrepare (Journal journal);
|
||||
virtual void onPrepare ();
|
||||
|
||||
/** Override called during start. */
|
||||
virtual void onStart (Journal journal);
|
||||
virtual void onStart ();
|
||||
|
||||
/** Override called when the stop notification is issued.
|
||||
|
||||
@@ -211,7 +219,7 @@ public:
|
||||
Guaranteed only to be called once.
|
||||
Must be safe to call from any thread at any time.
|
||||
*/
|
||||
virtual void onStop (Journal journal);
|
||||
virtual void onStop ();
|
||||
|
||||
/** Override called when all children have stopped.
|
||||
|
||||
@@ -231,7 +239,7 @@ public:
|
||||
Guaranteed only to be called once.
|
||||
Must be safe to call from any thread at any time.
|
||||
*/
|
||||
virtual void onChildrenStopped (Journal journal);
|
||||
virtual void onChildrenStopped ();
|
||||
|
||||
private:
|
||||
friend class RootStoppable;
|
||||
@@ -248,15 +256,16 @@ private:
|
||||
Stoppable* stoppable;
|
||||
};
|
||||
|
||||
void prepareRecursive (Journal journal);
|
||||
void startRecursive (Journal journal);
|
||||
void stopAsyncRecursive (Journal journal);
|
||||
void prepareRecursive ();
|
||||
void startRecursive ();
|
||||
void stopAsyncRecursive ();
|
||||
void stopRecursive (Journal journal);
|
||||
|
||||
protected:
|
||||
char const* m_name;
|
||||
RootStoppable& m_root;
|
||||
Child m_child;
|
||||
Atomic <int> m_started;
|
||||
bool volatile m_stopped;
|
||||
bool volatile m_childrenStopped;
|
||||
Children m_children;
|
||||
@@ -280,7 +289,7 @@ public:
|
||||
Thread safety:
|
||||
May be called from any thread.
|
||||
*/
|
||||
void prepare (Journal journal = Journal());
|
||||
void prepare ();
|
||||
|
||||
/** Start all contained Stoppable objects.
|
||||
The default implementation does nothing.
|
||||
@@ -288,11 +297,13 @@ public:
|
||||
Thread safety:
|
||||
May be called from any thread.
|
||||
*/
|
||||
void start (Journal journal = Journal());
|
||||
void start ();
|
||||
|
||||
/** Notify a root stoppable and children to stop, and block until stopped.
|
||||
Has no effect if the stoppable was already notified.
|
||||
This blocks until the stoppable and all of its children have stopped.
|
||||
Undefined behavior results if stop() is called without a previous call
|
||||
to start().
|
||||
Thread safety:
|
||||
Safe to call from any thread not associated with a Stoppable.
|
||||
*/
|
||||
@@ -304,14 +315,15 @@ public:
|
||||
Thread safety:
|
||||
Safe to call from any thread at any time.
|
||||
*/
|
||||
void stopAsync (Journal journal = Journal());
|
||||
void stopAsync ();
|
||||
|
||||
private:
|
||||
Atomic <int> m_prepared;
|
||||
Atomic <int> m_started;
|
||||
Atomic <int> m_calledStop;
|
||||
Atomic <int> m_calledStopAsync;
|
||||
};
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -21,8 +21,14 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_JUCE_THREAD_H_INCLUDED
|
||||
#define BEAST_JUCE_THREAD_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_THREAD_H_INCLUDED
|
||||
#define BEAST_THREADS_THREAD_H_INCLUDED
|
||||
|
||||
#include "../utility/LeakChecked.h"
|
||||
#include "RecursiveMutex.h"
|
||||
#include "WaitableEvent.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
@@ -265,7 +271,7 @@ private:
|
||||
const String threadName;
|
||||
void* volatile threadHandle;
|
||||
ThreadID threadId;
|
||||
CriticalSection startStopLock;
|
||||
RecursiveMutex startStopLock;
|
||||
WaitableEvent startSuspensionEvent, defaultEvent;
|
||||
int threadPriority;
|
||||
uint32 affinityMask;
|
||||
@@ -282,4 +288,7 @@ private:
|
||||
static bool setThreadPriority (void*, int);
|
||||
};
|
||||
|
||||
#endif // BEAST_THREAD_H_INCLUDED
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,8 +21,14 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADLOCALVALUE_H_INCLUDED
|
||||
#define BEAST_THREADLOCALVALUE_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_THREADLOCALVALUE_H_INCLUDED
|
||||
#define BEAST_THREADS_THREADLOCALVALUE_H_INCLUDED
|
||||
|
||||
#include "../Config.h"
|
||||
#include "SpinLock.h"
|
||||
#include "Thread.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
// (NB: on win32, native thread-locals aren't possible in a dynamically loaded DLL in XP).
|
||||
#if ! ((BEAST_MSVC && (BEAST_64BIT || ! defined (BeastPlugin_PluginCode))) \
|
||||
@@ -186,5 +192,6 @@ private:
|
||||
#endif
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // BEAST_THREADLOCALVALUE_H_INCLUDED
|
||||
#endif
|
||||
27
src/beast/beast/threads/Threads.cpp
Normal file
27
src/beast/beast/threads/Threads.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "impl/Atomic.cpp"
|
||||
#include "impl/RecursiveMutex.cpp"
|
||||
#include "impl/ServiceQueue.cpp"
|
||||
#include "impl/Stoppable.cpp"
|
||||
#include "impl/Thread.cpp"
|
||||
#include "impl/WaitableEvent.cpp"
|
||||
@@ -17,47 +17,39 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_GLOBALFIFOFREESTORE_H_INCLUDED
|
||||
#define BEAST_GLOBALFIFOFREESTORE_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_TRYLOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREADS_TRYLOCKGUARD_H_INCLUDED
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
A @ref FifoFreeStoreType singleton.
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
@ingroup beast_concurrent
|
||||
*/
|
||||
template <class Tag>
|
||||
class GlobalFifoFreeStore
|
||||
namespace beast {
|
||||
|
||||
template <typename Mutex>
|
||||
class TryLockGuard : public Uncopyable
|
||||
{
|
||||
public:
|
||||
inline void* allocate (size_t bytes)
|
||||
{
|
||||
return m_allocator.allocate (bytes);
|
||||
}
|
||||
typedef Mutex MutexType;
|
||||
|
||||
static inline void deallocate (void* const p)
|
||||
{
|
||||
FifoFreeStoreType::deallocate (p);
|
||||
}
|
||||
|
||||
typedef SharedPtr <SharedSingleton <GlobalFifoFreeStore> > Ptr;
|
||||
|
||||
static Ptr getInstance ()
|
||||
{
|
||||
return SharedSingleton <GlobalFifoFreeStore>::getInstance();
|
||||
}
|
||||
|
||||
public:
|
||||
GlobalFifoFreeStore ()
|
||||
explicit TryLockGuard (Mutex const& mutex)
|
||||
: m_mutex (mutex)
|
||||
, m_owns_lock (m_mutex.try_lock())
|
||||
{
|
||||
}
|
||||
|
||||
~GlobalFifoFreeStore ()
|
||||
~TryLockGuard ()
|
||||
{
|
||||
if (m_owns_lock)
|
||||
m_mutex.unlock();
|
||||
}
|
||||
|
||||
bool owns_lock() const
|
||||
{ return m_owns_lock; }
|
||||
|
||||
private:
|
||||
FifoFreeStoreType m_allocator;
|
||||
Mutex const& m_mutex;
|
||||
bool m_owns_lock;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
50
src/beast/beast/threads/UnlockGuard.h
Normal file
50
src/beast/beast/threads/UnlockGuard.h
Normal file
@@ -0,0 +1,50 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_UNLOCKGUARD_H_INCLUDED
|
||||
#define BEAST_THREADS_UNLOCKGUARD_H_INCLUDED
|
||||
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
template <typename Mutex>
|
||||
class UnlockGuard : public Uncopyable
|
||||
{
|
||||
public:
|
||||
typedef Mutex MutexType;
|
||||
|
||||
explicit UnlockGuard (Mutex const& mutex)
|
||||
: m_mutex (mutex)
|
||||
{
|
||||
m_mutex.unlock();
|
||||
}
|
||||
|
||||
~UnlockGuard ()
|
||||
{
|
||||
m_mutex.lock();
|
||||
}
|
||||
|
||||
private:
|
||||
Mutex const& m_mutex;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -21,18 +21,26 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_WAITABLEEVENT_H_INCLUDED
|
||||
#define BEAST_WAITABLEEVENT_H_INCLUDED
|
||||
#ifndef BEAST_THREADS_WAITABLEEVENT_H_INCLUDED
|
||||
#define BEAST_THREADS_WAITABLEEVENT_H_INCLUDED
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
Allows threads to wait for events triggered by other threads.
|
||||
#include "../Config.h"
|
||||
#include "../Uncopyable.h"
|
||||
|
||||
A thread can call wait() on a WaitableObject, and this will suspend the
|
||||
#if ! BEAST_WINDOWS
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
namespace beast {
|
||||
|
||||
/** Allows threads to wait for events triggered by other threads.
|
||||
A thread can call wait() on a WaitableEvent, and this will suspend the
|
||||
calling thread until another thread wakes it up by calling the signal()
|
||||
method.
|
||||
*/
|
||||
class BEAST_API WaitableEvent : LeakChecked <WaitableEvent>, public Uncopyable
|
||||
class WaitableEvent
|
||||
: public Uncopyable
|
||||
//, LeakChecked <WaitableEvent> // VFALCO TODO Move LeakChecked to beast/
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
@@ -45,14 +53,14 @@ public:
|
||||
@param initiallySignaled If this is true then the event will be signaled when
|
||||
the constructor returns.
|
||||
*/
|
||||
explicit WaitableEvent (bool manualReset = false, bool initiallySignaled = false) noexcept;
|
||||
explicit WaitableEvent (bool manualReset = false, bool initiallySignaled = false);
|
||||
|
||||
/** Destructor.
|
||||
|
||||
If other threads are waiting on this object when it gets deleted, this
|
||||
can cause nasty errors, so be careful!
|
||||
*/
|
||||
~WaitableEvent() noexcept;
|
||||
~WaitableEvent();
|
||||
|
||||
//==============================================================================
|
||||
/** Suspends the calling thread until the event has been signalled.
|
||||
@@ -69,7 +77,11 @@ public:
|
||||
@returns true if the object has been signalled, false if the timeout expires first.
|
||||
@see signal, reset
|
||||
*/
|
||||
bool wait (int timeOutMilliseconds = -1) const noexcept;
|
||||
/** @{ */
|
||||
bool wait () const; // wait forever
|
||||
// VFALCO TODO Change wait() to seconds instead of millis
|
||||
bool wait (int timeOutMilliseconds) const; // DEPRECATED
|
||||
/** @} */
|
||||
|
||||
//==============================================================================
|
||||
/** Wakes up any threads that are currently waiting on this object.
|
||||
@@ -87,26 +99,26 @@ public:
|
||||
|
||||
@see wait, reset
|
||||
*/
|
||||
void signal() const noexcept;
|
||||
void signal() const;
|
||||
|
||||
//==============================================================================
|
||||
/** Resets the event to an unsignalled state.
|
||||
|
||||
If it's not already signalled, this does nothing.
|
||||
*/
|
||||
void reset() const noexcept;
|
||||
|
||||
void reset() const;
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
#if BEAST_WINDOWS
|
||||
#if BEAST_WINDOWS
|
||||
void* handle;
|
||||
#else
|
||||
#else
|
||||
mutable pthread_cond_t condition;
|
||||
mutable pthread_mutex_t mutex;
|
||||
mutable bool triggered, manualReset;
|
||||
#endif
|
||||
mutable bool triggered;
|
||||
mutable bool manualReset;
|
||||
#endif
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // BEAST_WAITABLEEVENT_H_INCLUDED
|
||||
#endif
|
||||
276
src/beast/beast/threads/detail/BindHandler.h
Normal file
276
src/beast/beast/threads/detail/BindHandler.h
Normal file
@@ -0,0 +1,276 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_BINDHANDLER_H_INCLUDED
|
||||
#define BEAST_THREADS_BINDHANDLER_H_INCLUDED
|
||||
|
||||
namespace beast {
|
||||
namespace detail {
|
||||
|
||||
/** Overloaded function that re-binds arguments to a handler. */
|
||||
/** @{ */
|
||||
template <class Handler, class P1>
|
||||
class BindHandler1
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1;
|
||||
|
||||
public:
|
||||
BindHandler1 (Handler const& handler_, P1 const& p1_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_)
|
||||
{ }
|
||||
|
||||
BindHandler1 (Handler& handler_, P1 const& p1_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1)
|
||||
);
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{
|
||||
handler (p1);
|
||||
}
|
||||
};
|
||||
|
||||
template <class Handler, class P1>
|
||||
BindHandler1 <Handler, P1> bindHandler (Handler handler, P1 const& p1)
|
||||
{
|
||||
return BindHandler1 <Handler, P1> (handler, p1);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template <class Handler, class P1, class P2>
|
||||
class BindHandler2
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1; P2 p2;
|
||||
|
||||
public:
|
||||
BindHandler2 (Handler const& handler_,
|
||||
P1 const& p1_, P2 const& p2_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_), p2 (p2_)
|
||||
{ }
|
||||
|
||||
BindHandler2 (Handler& handler_,
|
||||
P1 const& p1_, P2 const& p2_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_), p2 (p2_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1), static_cast <P2 const&> (p2));
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{ handler (p1, p2); }
|
||||
};
|
||||
|
||||
template <class Handler, class P1, class P2>
|
||||
BindHandler2 <Handler, P1, P2> bindHandler (Handler handler,
|
||||
P1 const& p1, P2 const& p2)
|
||||
{
|
||||
return BindHandler2 <Handler, P1, P2> (
|
||||
handler, p1, p2);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template <class Handler, class P1, class P2, class P3>
|
||||
class BindHandler3
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1; P2 p2; P3 p3;
|
||||
|
||||
public:
|
||||
BindHandler3 (Handler const& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_)
|
||||
{ }
|
||||
|
||||
BindHandler3 (Handler& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1), static_cast <P2 const&> (p2), static_cast <P3 const&> (p3));
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{ handler (p1, p2, p3); }
|
||||
};
|
||||
|
||||
template <class Handler, class P1, class P2, class P3>
|
||||
BindHandler3 <Handler, P1, P2, P3> bindHandler (Handler handler,
|
||||
P1 const& p1, P2 const& p2, P3 const& p3)
|
||||
{
|
||||
return BindHandler3 <Handler, P1, P2, P3> (
|
||||
handler, p1, p2, p3);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4>
|
||||
class BindHandler4
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1; P2 p2; P3 p3; P4 p4;
|
||||
|
||||
public:
|
||||
BindHandler4 (Handler const& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_)
|
||||
{ }
|
||||
|
||||
BindHandler4 (Handler& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1), static_cast <P2 const&> (p2), static_cast <P3 const&> (p3),
|
||||
static_cast <P4 const&> (p4)
|
||||
);
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{ handler (p1, p2, p3, p4); }
|
||||
};
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4>
|
||||
BindHandler4 <Handler, P1, P2, P3, P4> bindHandler (Handler handler,
|
||||
P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4)
|
||||
{
|
||||
return BindHandler4 <Handler, P1, P2, P3, P4> (
|
||||
handler, p1, p2, p3, p4);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4, class P5>
|
||||
class BindHandler5
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1; P2 p2; P3 p3; P4 p4; P5 p5;
|
||||
|
||||
public:
|
||||
BindHandler5 (Handler const& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_, P5 const& p5_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_), p5 (p5_)
|
||||
{ }
|
||||
|
||||
BindHandler5 (Handler& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_, P5 const& p5_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_), p5 (p5_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1), static_cast <P2 const&> (p2), static_cast <P3 const&> (p3),
|
||||
static_cast <P4 const&> (p4), static_cast <P5 const&> (p5)
|
||||
);
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{ handler (p1, p2, p3, p4, p5); }
|
||||
};
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4, class P5>
|
||||
BindHandler5 <Handler, P1, P2, P3, P4, P5> bindHandler (Handler handler,
|
||||
P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5)
|
||||
{
|
||||
return BindHandler5 <Handler, P1, P2, P3, P4, P5> (
|
||||
handler, p1, p2, p3, p4, p5);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4, class P5, class P6>
|
||||
class BindHandler6
|
||||
{
|
||||
private:
|
||||
Handler handler;
|
||||
P1 p1; P2 p2; P3 p3; P4 p4; P5 p5; P6 p6;
|
||||
|
||||
public:
|
||||
BindHandler6 (Handler const& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_, P5 const& p5_, P6 const& p6_)
|
||||
: handler (handler_)
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_), p5 (p5_), p6 (p6_)
|
||||
{ }
|
||||
|
||||
BindHandler6 (Handler& handler_,
|
||||
P1 const& p1_, P2 const& p2_, P3 const& p3_, P4 const& p4_, P5 const& p5_, P6 const& p6_)
|
||||
: handler (BEAST_MOVE_CAST(Handler)(handler_))
|
||||
, p1 (p1_), p2 (p2_), p3 (p3_), p4 (p4_), p5 (p5_), p6 (p6_)
|
||||
{ }
|
||||
|
||||
void operator()()
|
||||
{
|
||||
handler (
|
||||
static_cast <P1 const&> (p1), static_cast <P2 const&> (p2), static_cast <P3 const&> (p3),
|
||||
static_cast <P4 const&> (p4), static_cast <P5 const&> (p5), static_cast <P6 const&> (p6)
|
||||
);
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{ handler (p1, p2, p3, p4, p5, p6); }
|
||||
};
|
||||
|
||||
template <class Handler, class P1, class P2, class P3, class P4, class P5, class P6>
|
||||
BindHandler6 <Handler, P1, P2, P3, P4, P5, P6> bindHandler (Handler handler,
|
||||
P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6)
|
||||
{
|
||||
return BindHandler6 <Handler, P1, P2, P3, P4, P5, P6> (
|
||||
handler, p1, p2, p3, p4, p5, p6);
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
173
src/beast/beast/threads/detail/DispatchedHandler.h
Normal file
173
src/beast/beast/threads/detail/DispatchedHandler.h
Normal file
@@ -0,0 +1,173 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_THREADS_DISPATCHEDHANDLER_H_INCLUDED
|
||||
#define BEAST_THREADS_DISPATCHEDHANDLER_H_INCLUDED
|
||||
|
||||
#include "BindHandler.h"
|
||||
|
||||
namespace beast {
|
||||
namespace detail {
|
||||
|
||||
/** A wrapper that packages function call arguments into a dispatch. */
|
||||
template <typename Dispatcher, typename Handler>
|
||||
class DispatchedHandler
|
||||
{
|
||||
private:
|
||||
Dispatcher m_dispatcher;
|
||||
Handler m_handler;
|
||||
|
||||
public:
|
||||
typedef void result_type;
|
||||
|
||||
DispatchedHandler (Dispatcher dispatcher, Handler& handler)
|
||||
: m_dispatcher (dispatcher)
|
||||
, m_handler (BEAST_MOVE_CAST(Handler)(handler))
|
||||
{
|
||||
}
|
||||
|
||||
#if BEAST_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
||||
DispatchedHandler (DispatchedHandler const& other)
|
||||
: m_dispatcher (other.m_dispatcher)
|
||||
, m_handler (other.m_handler)
|
||||
{
|
||||
}
|
||||
|
||||
DispatchedHandler (DispatchedHandler&& other)
|
||||
: m_dispatcher (other.m_dispatcher)
|
||||
, m_handler (BEAST_MOVE_CAST(Handler)(other.m_handler))
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void operator()()
|
||||
{
|
||||
m_dispatcher.dispatch (m_handler);
|
||||
}
|
||||
|
||||
void operator()() const
|
||||
{
|
||||
m_dispatcher.dispatch (m_handler);
|
||||
}
|
||||
|
||||
template <class P1>
|
||||
void operator() (P1 const& p1)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1));
|
||||
}
|
||||
|
||||
template <class P1>
|
||||
void operator() (P1 const& p1) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1));
|
||||
}
|
||||
|
||||
template <class P1, class P2>
|
||||
void operator() (P1 const& p1, P2 const& p2)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2));
|
||||
}
|
||||
|
||||
template <class P1, class P2>
|
||||
void operator() (P1 const& p1, P2 const& p2) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4, class P5>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3,
|
||||
P4 const& p4, P5 const& p5)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4, p5));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4, class P5>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3,
|
||||
P4 const& p4, P5 const& p5) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4, p5));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4, class P5, class P6>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3,
|
||||
P4 const& p4, P5 const& p5, P6 const& p6)
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4, p5, p6));
|
||||
}
|
||||
|
||||
template <class P1, class P2, class P3, class P4, class P5, class P6>
|
||||
void operator() (P1 const& p1, P2 const& p2, P3 const& p3,
|
||||
P4 const& p4, P5 const& p5, P6 const& p6) const
|
||||
{
|
||||
m_dispatcher.dispatch (
|
||||
detail::bindHandler (m_handler,
|
||||
p1, p2, p3, p4, p5, p6));
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
133
src/beast/beast/threads/impl/Atomic.cpp
Normal file
133
src/beast/beast/threads/impl/Atomic.cpp
Normal file
@@ -0,0 +1,133 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../../../modules/beast_core/beast_core.h" // for UnitTest
|
||||
|
||||
namespace beast {
|
||||
|
||||
class AtomicTests : public UnitTest
|
||||
{
|
||||
public:
|
||||
AtomicTests() : UnitTest ("Atomic", "beast") {}
|
||||
|
||||
template <typename Type>
|
||||
void testFloat ()
|
||||
{
|
||||
Atomic<Type> a, b;
|
||||
a = (Type) 21;
|
||||
memoryBarrier();
|
||||
|
||||
/* These are some simple test cases to check the atomics - let me know
|
||||
if any of these assertions fail on your system!
|
||||
*/
|
||||
expect (a.get() == (Type) 21);
|
||||
expect (a.compareAndSetValue ((Type) 100, (Type) 50) == (Type) 21);
|
||||
expect (a.get() == (Type) 21);
|
||||
expect (a.compareAndSetValue ((Type) 101, a.get()) == (Type) 21);
|
||||
expect (a.get() == (Type) 101);
|
||||
expect (! a.compareAndSetBool ((Type) 300, (Type) 200));
|
||||
expect (a.get() == (Type) 101);
|
||||
expect (a.compareAndSetBool ((Type) 200, a.get()));
|
||||
expect (a.get() == (Type) 200);
|
||||
|
||||
expect (a.exchange ((Type) 300) == (Type) 200);
|
||||
expect (a.get() == (Type) 300);
|
||||
|
||||
b = a;
|
||||
expect (b.get() == a.get());
|
||||
}
|
||||
|
||||
template <typename Type>
|
||||
void testInteger ()
|
||||
{
|
||||
Atomic<Type> a, b;
|
||||
a.set ((Type) 10);
|
||||
expect (a.value == (Type) 10);
|
||||
expect (a.get() == (Type) 10);
|
||||
a += (Type) 15;
|
||||
expect (a.get() == (Type) 25);
|
||||
memoryBarrier();
|
||||
a -= (Type) 5;
|
||||
expect (a.get() == (Type) 20);
|
||||
expect (++a == (Type) 21);
|
||||
++a;
|
||||
expect (--a == (Type) 21);
|
||||
expect (a.get() == (Type) 21);
|
||||
memoryBarrier();
|
||||
|
||||
testFloat <Type> ();
|
||||
}
|
||||
|
||||
void runTest()
|
||||
{
|
||||
beginTestCase ("Misc");
|
||||
|
||||
char a1[7];
|
||||
expect (numElementsInArray(a1) == 7);
|
||||
int a2[3];
|
||||
expect (numElementsInArray(a2) == 3);
|
||||
|
||||
expect (ByteOrder::swap ((uint16) 0x1122) == 0x2211);
|
||||
expect (ByteOrder::swap ((uint32) 0x11223344) == 0x44332211);
|
||||
expect (ByteOrder::swap ((uint64) literal64bit (0x1122334455667788)) == literal64bit (0x8877665544332211));
|
||||
|
||||
beginTestCase ("int");
|
||||
testInteger <int> ();
|
||||
|
||||
beginTestCase ("unsigned int");
|
||||
testInteger <unsigned int> ();
|
||||
|
||||
beginTestCase ("int32");
|
||||
testInteger <int32> ();
|
||||
|
||||
beginTestCase ("uint32");
|
||||
testInteger <uint32> ();
|
||||
|
||||
beginTestCase ("long");
|
||||
testInteger <long> ();
|
||||
|
||||
beginTestCase ("void*");
|
||||
testInteger <void*> ();
|
||||
|
||||
beginTestCase ("int*");
|
||||
testInteger <int*> ();
|
||||
|
||||
beginTestCase ("float");
|
||||
testFloat <float> ();
|
||||
|
||||
#if ! BEAST_64BIT_ATOMICS_UNAVAILABLE // 64-bit intrinsics aren't available on some old platforms
|
||||
beginTestCase ("int64");
|
||||
testInteger <int64> ();
|
||||
|
||||
beginTestCase ("uint64");
|
||||
testInteger <uint64> ();
|
||||
|
||||
beginTestCase ("double");
|
||||
testFloat <double> ();
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
static AtomicTests atomicTests;
|
||||
|
||||
}
|
||||
111
src/beast/beast/threads/impl/RecursiveMutex.cpp
Normal file
111
src/beast/beast/threads/impl/RecursiveMutex.cpp
Normal file
@@ -0,0 +1,111 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../RecursiveMutex.h"
|
||||
|
||||
#if BEAST_WINDOWS
|
||||
|
||||
#include "../StaticAssert.h"
|
||||
|
||||
#include <Windows.h>
|
||||
#undef check
|
||||
#undef direct
|
||||
#undef max
|
||||
#undef min
|
||||
#undef TYPE_BOOL
|
||||
|
||||
namespace beast {
|
||||
|
||||
RecursiveMutex::RecursiveMutex()
|
||||
{
|
||||
// (just to check the MS haven't changed this structure and broken things...)
|
||||
#if BEAST_VC7_OR_EARLIER
|
||||
static_bassert (sizeof (CRITICAL_SECTION) <= 24);
|
||||
#else
|
||||
static_bassert (sizeof (CRITICAL_SECTION) <= sizeof (section));
|
||||
#endif
|
||||
|
||||
InitializeCriticalSection ((CRITICAL_SECTION*) section);
|
||||
}
|
||||
|
||||
RecursiveMutex::~RecursiveMutex()
|
||||
{
|
||||
DeleteCriticalSection ((CRITICAL_SECTION*) section);
|
||||
}
|
||||
|
||||
void RecursiveMutex::lock() const
|
||||
{
|
||||
EnterCriticalSection ((CRITICAL_SECTION*) section);
|
||||
}
|
||||
|
||||
void RecursiveMutex::unlock() const
|
||||
{
|
||||
LeaveCriticalSection ((CRITICAL_SECTION*) section);
|
||||
}
|
||||
|
||||
bool RecursiveMutex::try_lock() const
|
||||
{
|
||||
return TryEnterCriticalSection ((CRITICAL_SECTION*) section) != FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
namespace beast {
|
||||
|
||||
RecursiveMutex::RecursiveMutex()
|
||||
{
|
||||
pthread_mutexattr_t atts;
|
||||
pthread_mutexattr_init (&atts);
|
||||
pthread_mutexattr_settype (&atts, PTHREAD_MUTEX_RECURSIVE);
|
||||
#if ! BEAST_ANDROID
|
||||
pthread_mutexattr_setprotocol (&atts, PTHREAD_PRIO_INHERIT);
|
||||
#endif
|
||||
pthread_mutex_init (&mutex, &atts);
|
||||
pthread_mutexattr_destroy (&atts);
|
||||
}
|
||||
|
||||
RecursiveMutex::~RecursiveMutex()
|
||||
{
|
||||
pthread_mutex_destroy (&mutex);
|
||||
}
|
||||
|
||||
void RecursiveMutex::lock() const
|
||||
{
|
||||
pthread_mutex_lock (&mutex);
|
||||
}
|
||||
|
||||
void RecursiveMutex::unlock() const
|
||||
{
|
||||
pthread_mutex_unlock (&mutex);
|
||||
}
|
||||
|
||||
bool RecursiveMutex::try_lock() const
|
||||
{
|
||||
return pthread_mutex_trylock (&mutex) == 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -17,12 +17,12 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../ServiceQueue.h"
|
||||
|
||||
#include "../../../modules/beast_core/beast_core.h" // for UnitTest
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class ServiceQueueBase::ScopedServiceThread : public List <ScopedServiceThread>::Node
|
||||
{
|
||||
public:
|
||||
@@ -53,6 +53,8 @@ ServiceQueueBase::~ServiceQueueBase()
|
||||
|
||||
std::size_t ServiceQueueBase::poll ()
|
||||
{
|
||||
CPUMeter::ScopedActiveTime interval (m_cpuMeter);
|
||||
|
||||
std::size_t total (0);
|
||||
ScopedServiceThread thread (this);
|
||||
for (;;)
|
||||
@@ -67,6 +69,8 @@ std::size_t ServiceQueueBase::poll ()
|
||||
|
||||
std::size_t ServiceQueueBase::poll_one ()
|
||||
{
|
||||
CPUMeter::ScopedActiveTime interval (m_cpuMeter);
|
||||
|
||||
ScopedServiceThread thread (this);
|
||||
return dequeue();
|
||||
}
|
||||
@@ -77,8 +81,15 @@ std::size_t ServiceQueueBase::run ()
|
||||
ScopedServiceThread thread (this);
|
||||
while (! stopped())
|
||||
{
|
||||
total += poll ();
|
||||
wait ();
|
||||
{
|
||||
CPUMeter::ScopedActiveTime interval (m_cpuMeter);
|
||||
total += poll ();
|
||||
}
|
||||
|
||||
{
|
||||
CPUMeter::ScopedIdleTime interval (m_cpuMeter);
|
||||
wait ();
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
@@ -89,10 +100,17 @@ std::size_t ServiceQueueBase::run_one ()
|
||||
ScopedServiceThread (this);
|
||||
for (;;)
|
||||
{
|
||||
n = poll_one();
|
||||
if (n != 0)
|
||||
break;
|
||||
wait();
|
||||
{
|
||||
CPUMeter::ScopedActiveTime interval (m_cpuMeter);
|
||||
n = poll_one();
|
||||
if (n != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
{
|
||||
CPUMeter::ScopedIdleTime interval (m_cpuMeter);
|
||||
wait();
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
@@ -161,18 +179,21 @@ void ServiceQueueBase::enqueue (Item* item)
|
||||
waiter->signal();
|
||||
}
|
||||
|
||||
bool ServiceQueueBase::empty()
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
return state->handlers.empty();
|
||||
}
|
||||
|
||||
// A thread can only be blocked on one ServiceQueue so we store the pointer
|
||||
// to which ServiceQueue it is blocked on to determine if the thread belongs
|
||||
// to that queue.
|
||||
//
|
||||
ThreadLocalValue <ServiceQueueBase*> ServiceQueueBase::s_service;
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace detail
|
||||
{
|
||||
namespace detail {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../Stoppable.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
Stoppable::Stoppable (char const* name, RootStoppable& root)
|
||||
: m_name (name)
|
||||
, m_root (root)
|
||||
@@ -42,7 +46,7 @@ Stoppable::Stoppable (char const* name, Stoppable& parent)
|
||||
Stoppable::~Stoppable ()
|
||||
{
|
||||
// Children must be stopped.
|
||||
bassert (m_childrenStopped);
|
||||
bassert (m_started.get() == 0 || m_childrenStopped);
|
||||
}
|
||||
|
||||
bool Stoppable::isStopping() const
|
||||
@@ -65,47 +69,47 @@ void Stoppable::stopped ()
|
||||
m_stoppedEvent.signal();
|
||||
}
|
||||
|
||||
void Stoppable::onPrepare (Journal journal)
|
||||
void Stoppable::onPrepare ()
|
||||
{
|
||||
}
|
||||
|
||||
void Stoppable::onStart (Journal journal)
|
||||
void Stoppable::onStart ()
|
||||
{
|
||||
}
|
||||
|
||||
void Stoppable::onStop (Journal journal)
|
||||
void Stoppable::onStop ()
|
||||
{
|
||||
stopped();
|
||||
}
|
||||
|
||||
void Stoppable::onChildrenStopped (Journal journal)
|
||||
void Stoppable::onChildrenStopped ()
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void Stoppable::prepareRecursive (Journal journal)
|
||||
void Stoppable::prepareRecursive ()
|
||||
{
|
||||
onPrepare (journal);
|
||||
for (Children::const_iterator iter (m_children.cbegin ());
|
||||
iter != m_children.cend(); ++iter)
|
||||
iter->stoppable->prepareRecursive (journal);
|
||||
iter->stoppable->prepareRecursive ();
|
||||
onPrepare ();
|
||||
}
|
||||
|
||||
void Stoppable::startRecursive (Journal journal)
|
||||
void Stoppable::startRecursive ()
|
||||
{
|
||||
onStart (journal);
|
||||
onStart ();
|
||||
for (Children::const_iterator iter (m_children.cbegin ());
|
||||
iter != m_children.cend(); ++iter)
|
||||
iter->stoppable->startRecursive (journal);
|
||||
iter->stoppable->startRecursive ();
|
||||
}
|
||||
|
||||
void Stoppable::stopAsyncRecursive (Journal journal)
|
||||
void Stoppable::stopAsyncRecursive ()
|
||||
{
|
||||
onStop (journal);
|
||||
onStop ();
|
||||
for (Children::const_iterator iter (m_children.cbegin ());
|
||||
iter != m_children.cend(); ++iter)
|
||||
iter->stoppable->stopAsyncRecursive (journal);
|
||||
iter->stoppable->stopAsyncRecursive ();
|
||||
}
|
||||
|
||||
void Stoppable::stopRecursive (Journal journal)
|
||||
@@ -120,7 +124,7 @@ void Stoppable::stopRecursive (Journal journal)
|
||||
//
|
||||
memoryBarrier ();
|
||||
m_childrenStopped = true;
|
||||
onChildrenStopped (journal);
|
||||
onChildrenStopped ();
|
||||
|
||||
// Now block on this Stoppable.
|
||||
//
|
||||
@@ -151,48 +155,47 @@ bool RootStoppable::isStopping() const
|
||||
return m_calledStopAsync.get() != 0;
|
||||
}
|
||||
|
||||
void RootStoppable::prepare (Journal journal)
|
||||
void RootStoppable::prepare ()
|
||||
{
|
||||
if (! m_prepared.compareAndSetBool (1, 0))
|
||||
{
|
||||
journal.warning << "Stoppable::prepare called again";
|
||||
return;
|
||||
}
|
||||
|
||||
prepareRecursive (journal);
|
||||
prepareRecursive ();
|
||||
}
|
||||
|
||||
void RootStoppable::start (Journal journal)
|
||||
void RootStoppable::start ()
|
||||
{
|
||||
// Courtesy call to prepare.
|
||||
if (m_prepared.compareAndSetBool (1, 0))
|
||||
prepareRecursive (journal);
|
||||
prepareRecursive ();
|
||||
|
||||
if (! m_started.compareAndSetBool (1, 0))
|
||||
{
|
||||
journal.warning << "Stoppable::start called again";
|
||||
return;
|
||||
}
|
||||
|
||||
startRecursive (journal);
|
||||
startRecursive ();
|
||||
}
|
||||
|
||||
void RootStoppable::stop (Journal journal)
|
||||
{
|
||||
// Must have a prior call to start()
|
||||
bassert (m_started.get() != 0);
|
||||
|
||||
if (! m_calledStop.compareAndSetBool (1, 0))
|
||||
{
|
||||
journal.warning << "Stoppable::stop called again";
|
||||
return;
|
||||
}
|
||||
|
||||
stopAsync (journal);
|
||||
stopAsync ();
|
||||
stopRecursive (journal);
|
||||
}
|
||||
|
||||
void RootStoppable::stopAsync (Journal journal)
|
||||
void RootStoppable::stopAsync ()
|
||||
{
|
||||
if (! m_calledStopAsync.compareAndSetBool (1, 0))
|
||||
return;
|
||||
|
||||
stopAsyncRecursive (journal);
|
||||
stopAsyncRecursive ();
|
||||
}
|
||||
|
||||
}
|
||||
601
src/beast/beast/threads/impl/Thread.cpp
Normal file
601
src/beast/beast/threads/impl/Thread.cpp
Normal file
@@ -0,0 +1,601 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../Thread.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
Thread::Thread (const String& threadName_)
|
||||
: threadName (threadName_),
|
||||
threadHandle (nullptr),
|
||||
threadId (0),
|
||||
threadPriority (5),
|
||||
affinityMask (0),
|
||||
shouldExit (false)
|
||||
{
|
||||
}
|
||||
|
||||
Thread::~Thread()
|
||||
{
|
||||
/* If your thread class's destructor has been called without first stopping the thread, that
|
||||
means that this partially destructed object is still performing some work - and that's
|
||||
probably a Bad Thing!
|
||||
|
||||
To avoid this type of nastiness, always make sure you call stopThread() before or during
|
||||
your subclass's destructor.
|
||||
*/
|
||||
check_precondition (! isThreadRunning());
|
||||
|
||||
stopThread ();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
// Use a ref-counted object to hold this shared data, so that it can outlive its static
|
||||
// shared pointer when threads are still running during static shutdown.
|
||||
struct CurrentThreadHolder : public SharedObject
|
||||
{
|
||||
CurrentThreadHolder() noexcept {}
|
||||
|
||||
typedef SharedPtr <CurrentThreadHolder> Ptr;
|
||||
ThreadLocalValue<Thread*> value;
|
||||
};
|
||||
|
||||
static char currentThreadHolderLock [sizeof (SpinLock)]; // (statically initialised to zeros).
|
||||
|
||||
static SpinLock* castToSpinLockWithoutAliasingWarning (void* s)
|
||||
{
|
||||
return static_cast<SpinLock*> (s);
|
||||
}
|
||||
|
||||
static CurrentThreadHolder::Ptr getCurrentThreadHolder()
|
||||
{
|
||||
static CurrentThreadHolder::Ptr currentThreadHolder;
|
||||
SpinLock::ScopedLockType lock (*castToSpinLockWithoutAliasingWarning (currentThreadHolderLock));
|
||||
|
||||
if (currentThreadHolder == nullptr)
|
||||
currentThreadHolder = new CurrentThreadHolder();
|
||||
|
||||
return currentThreadHolder;
|
||||
}
|
||||
|
||||
void Thread::threadEntryPoint()
|
||||
{
|
||||
const CurrentThreadHolder::Ptr currentThreadHolder (getCurrentThreadHolder());
|
||||
currentThreadHolder->value = this;
|
||||
|
||||
if (threadName.isNotEmpty())
|
||||
setCurrentThreadName (threadName);
|
||||
|
||||
if (startSuspensionEvent.wait (10000))
|
||||
{
|
||||
bassert (getCurrentThreadId() == threadId);
|
||||
|
||||
if (affinityMask != 0)
|
||||
setCurrentThreadAffinityMask (affinityMask);
|
||||
|
||||
run();
|
||||
}
|
||||
|
||||
currentThreadHolder->value.releaseCurrentThreadStorage();
|
||||
closeThreadHandle();
|
||||
}
|
||||
|
||||
// used to wrap the incoming call from the platform-specific code
|
||||
void BEAST_API beast_threadEntryPoint (void* userData)
|
||||
{
|
||||
static_cast <Thread*> (userData)->threadEntryPoint();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void Thread::startThread()
|
||||
{
|
||||
const RecursiveMutex::ScopedLockType sl (startStopLock);
|
||||
|
||||
shouldExit = false;
|
||||
|
||||
if (threadHandle == nullptr)
|
||||
{
|
||||
launchThread();
|
||||
setThreadPriority (threadHandle, threadPriority);
|
||||
startSuspensionEvent.signal();
|
||||
}
|
||||
}
|
||||
|
||||
void Thread::startThread (const int priority)
|
||||
{
|
||||
const RecursiveMutex::ScopedLockType sl (startStopLock);
|
||||
|
||||
if (threadHandle == nullptr)
|
||||
{
|
||||
threadPriority = priority;
|
||||
startThread();
|
||||
}
|
||||
else
|
||||
{
|
||||
setPriority (priority);
|
||||
}
|
||||
}
|
||||
|
||||
bool Thread::isThreadRunning() const
|
||||
{
|
||||
return threadHandle != nullptr;
|
||||
}
|
||||
|
||||
Thread* Thread::getCurrentThread()
|
||||
{
|
||||
return getCurrentThreadHolder()->value.get();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void Thread::signalThreadShouldExit()
|
||||
{
|
||||
shouldExit = true;
|
||||
}
|
||||
|
||||
bool Thread::waitForThreadToExit (const int timeOutMilliseconds) const
|
||||
{
|
||||
// Doh! So how exactly do you expect this thread to wait for itself to stop??
|
||||
bassert (getThreadId() != getCurrentThreadId() || getCurrentThreadId() == 0);
|
||||
|
||||
const uint32 timeoutEnd = Time::getMillisecondCounter() + (uint32) timeOutMilliseconds;
|
||||
|
||||
while (isThreadRunning())
|
||||
{
|
||||
if (timeOutMilliseconds >= 0 && Time::getMillisecondCounter() > timeoutEnd)
|
||||
return false;
|
||||
|
||||
sleep (2);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Thread::stopThread (const int timeOutMilliseconds)
|
||||
{
|
||||
bool cleanExit = true;
|
||||
|
||||
// agh! You can't stop the thread that's calling this method! How on earth
|
||||
// would that work??
|
||||
bassert (getCurrentThreadId() != getThreadId());
|
||||
|
||||
const RecursiveMutex::ScopedLockType sl (startStopLock);
|
||||
|
||||
if (isThreadRunning())
|
||||
{
|
||||
signalThreadShouldExit();
|
||||
notify();
|
||||
|
||||
if (timeOutMilliseconds != 0)
|
||||
{
|
||||
cleanExit = waitForThreadToExit (timeOutMilliseconds);
|
||||
}
|
||||
|
||||
if (isThreadRunning())
|
||||
{
|
||||
bassert (! cleanExit);
|
||||
|
||||
// very bad karma if this point is reached, as there are bound to be
|
||||
// locks and events left in silly states when a thread is killed by force..
|
||||
killThread();
|
||||
|
||||
threadHandle = nullptr;
|
||||
threadId = 0;
|
||||
|
||||
cleanExit = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
cleanExit = true;
|
||||
}
|
||||
}
|
||||
|
||||
return cleanExit;
|
||||
}
|
||||
|
||||
void Thread::stopThreadAsync ()
|
||||
{
|
||||
const RecursiveMutex::ScopedLockType sl (startStopLock);
|
||||
|
||||
if (isThreadRunning())
|
||||
{
|
||||
signalThreadShouldExit();
|
||||
notify();
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool Thread::setPriority (const int newPriority)
|
||||
{
|
||||
// NB: deadlock possible if you try to set the thread prio from the thread itself,
|
||||
// so using setCurrentThreadPriority instead in that case.
|
||||
if (getCurrentThreadId() == getThreadId())
|
||||
return setCurrentThreadPriority (newPriority);
|
||||
|
||||
const RecursiveMutex::ScopedLockType sl (startStopLock);
|
||||
|
||||
if (setThreadPriority (threadHandle, newPriority))
|
||||
{
|
||||
threadPriority = newPriority;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Thread::setCurrentThreadPriority (const int newPriority)
|
||||
{
|
||||
return setThreadPriority (0, newPriority);
|
||||
}
|
||||
|
||||
void Thread::setAffinityMask (const uint32 newAffinityMask)
|
||||
{
|
||||
affinityMask = newAffinityMask;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool Thread::wait (const int timeOutMilliseconds) const
|
||||
{
|
||||
return defaultEvent.wait (timeOutMilliseconds);
|
||||
}
|
||||
|
||||
void Thread::notify() const
|
||||
{
|
||||
defaultEvent.signal();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
||||
// This is here so we dont have circular includes
|
||||
//
|
||||
void SpinLock::enter() const noexcept
|
||||
{
|
||||
if (! tryEnter())
|
||||
{
|
||||
for (int i = 20; --i >= 0;)
|
||||
if (tryEnter())
|
||||
return;
|
||||
|
||||
while (! tryEnter())
|
||||
Thread::yield();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#if BEAST_WINDOWS
|
||||
|
||||
#include <windows.h>
|
||||
#include <process.h>
|
||||
#include <tchar.h>
|
||||
|
||||
namespace beast {
|
||||
|
||||
HWND beast_messageWindowHandle = 0; // (this is used by other parts of the codebase)
|
||||
|
||||
void BEAST_API beast_threadEntryPoint (void*);
|
||||
|
||||
static unsigned int __stdcall threadEntryProc (void* userData)
|
||||
{
|
||||
if (beast_messageWindowHandle != 0)
|
||||
AttachThreadInput (GetWindowThreadProcessId (beast_messageWindowHandle, 0),
|
||||
GetCurrentThreadId(), TRUE);
|
||||
|
||||
beast_threadEntryPoint (userData);
|
||||
|
||||
_endthreadex (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Thread::launchThread()
|
||||
{
|
||||
unsigned int newThreadId;
|
||||
threadHandle = (void*) _beginthreadex (0, 0, &threadEntryProc, this, 0, &newThreadId);
|
||||
threadId = (ThreadID) newThreadId;
|
||||
}
|
||||
|
||||
void Thread::closeThreadHandle()
|
||||
{
|
||||
CloseHandle ((HANDLE) threadHandle);
|
||||
threadId = 0;
|
||||
threadHandle = 0;
|
||||
}
|
||||
|
||||
void Thread::killThread()
|
||||
{
|
||||
if (threadHandle != 0)
|
||||
{
|
||||
#if BEAST_DEBUG
|
||||
OutputDebugStringA ("** Warning - Forced thread termination **\n");
|
||||
#endif
|
||||
TerminateThread (threadHandle, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void Thread::setCurrentThreadName (const String& name)
|
||||
{
|
||||
#if BEAST_DEBUG && BEAST_MSVC
|
||||
struct
|
||||
{
|
||||
DWORD dwType;
|
||||
LPCSTR szName;
|
||||
DWORD dwThreadID;
|
||||
DWORD dwFlags;
|
||||
} info;
|
||||
|
||||
info.dwType = 0x1000;
|
||||
info.szName = name.toUTF8();
|
||||
info.dwThreadID = GetCurrentThreadId();
|
||||
info.dwFlags = 0;
|
||||
|
||||
__try
|
||||
{
|
||||
RaiseException (0x406d1388 /*MS_VC_EXCEPTION*/, 0, sizeof (info) / sizeof (ULONG_PTR), (ULONG_PTR*) &info);
|
||||
}
|
||||
__except (EXCEPTION_CONTINUE_EXECUTION)
|
||||
{}
|
||||
#else
|
||||
(void) name;
|
||||
#endif
|
||||
}
|
||||
|
||||
Thread::ThreadID Thread::getCurrentThreadId()
|
||||
{
|
||||
return (ThreadID) (pointer_sized_int) GetCurrentThreadId();
|
||||
}
|
||||
|
||||
bool Thread::setThreadPriority (void* handle, int priority)
|
||||
{
|
||||
int pri = THREAD_PRIORITY_TIME_CRITICAL;
|
||||
|
||||
if (priority < 1) pri = THREAD_PRIORITY_IDLE;
|
||||
else if (priority < 2) pri = THREAD_PRIORITY_LOWEST;
|
||||
else if (priority < 5) pri = THREAD_PRIORITY_BELOW_NORMAL;
|
||||
else if (priority < 7) pri = THREAD_PRIORITY_NORMAL;
|
||||
else if (priority < 9) pri = THREAD_PRIORITY_ABOVE_NORMAL;
|
||||
else if (priority < 10) pri = THREAD_PRIORITY_HIGHEST;
|
||||
|
||||
if (handle == 0)
|
||||
handle = GetCurrentThread();
|
||||
|
||||
return SetThreadPriority (handle, pri) != FALSE;
|
||||
}
|
||||
|
||||
void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask)
|
||||
{
|
||||
SetThreadAffinityMask (GetCurrentThread(), affinityMask);
|
||||
}
|
||||
|
||||
struct SleepEvent
|
||||
{
|
||||
SleepEvent() noexcept
|
||||
: handle (CreateEvent (nullptr, FALSE, FALSE,
|
||||
#if BEAST_DEBUG
|
||||
_T("BEAST Sleep Event")))
|
||||
#else
|
||||
nullptr))
|
||||
#endif
|
||||
{}
|
||||
|
||||
~SleepEvent() noexcept
|
||||
{
|
||||
CloseHandle (handle);
|
||||
handle = 0;
|
||||
}
|
||||
|
||||
HANDLE handle;
|
||||
};
|
||||
|
||||
static SleepEvent sleepEvent;
|
||||
|
||||
void BEAST_CALLTYPE Thread::sleep (const int millisecs)
|
||||
{
|
||||
if (millisecs >= 10 || sleepEvent.handle == 0)
|
||||
{
|
||||
Sleep ((DWORD) millisecs);
|
||||
}
|
||||
else
|
||||
{
|
||||
// unlike Sleep() this is guaranteed to return to the current thread after
|
||||
// the time expires, so we'll use this for short waits, which are more likely
|
||||
// to need to be accurate
|
||||
WaitForSingleObject (sleepEvent.handle, (DWORD) millisecs);
|
||||
}
|
||||
}
|
||||
|
||||
void Thread::yield()
|
||||
{
|
||||
Sleep (0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#else
|
||||
|
||||
#include <time.h>
|
||||
#if BEAST_BSD
|
||||
// ???
|
||||
#elif BEAST_MAC || BEAST_IOS
|
||||
// Compiles fine without prctl.h
|
||||
#else
|
||||
# include <sys/prctl.h>
|
||||
#endif
|
||||
|
||||
namespace beast {
|
||||
|
||||
void BEAST_CALLTYPE Thread::sleep (int millisecs)
|
||||
{
|
||||
struct timespec time;
|
||||
time.tv_sec = millisecs / 1000;
|
||||
time.tv_nsec = (millisecs % 1000) * 1000000;
|
||||
nanosleep (&time, nullptr);
|
||||
}
|
||||
|
||||
void BEAST_API beast_threadEntryPoint (void*);
|
||||
|
||||
extern "C" void* threadEntryProcBeast (void*);
|
||||
extern "C" void* threadEntryProcBeast (void* userData)
|
||||
{
|
||||
BEAST_AUTORELEASEPOOL
|
||||
{
|
||||
#if BEAST_ANDROID
|
||||
struct AndroidThreadScope
|
||||
{
|
||||
AndroidThreadScope() { threadLocalJNIEnvHolder.attach(); }
|
||||
~AndroidThreadScope() { threadLocalJNIEnvHolder.detach(); }
|
||||
};
|
||||
|
||||
const AndroidThreadScope androidEnv;
|
||||
#endif
|
||||
|
||||
beast_threadEntryPoint (userData);
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Thread::launchThread()
|
||||
{
|
||||
threadHandle = 0;
|
||||
pthread_t handle = 0;
|
||||
|
||||
if (pthread_create (&handle, 0, threadEntryProcBeast, this) == 0)
|
||||
{
|
||||
pthread_detach (handle);
|
||||
threadHandle = (void*) handle;
|
||||
threadId = (ThreadID) threadHandle;
|
||||
}
|
||||
}
|
||||
|
||||
void Thread::closeThreadHandle()
|
||||
{
|
||||
threadId = 0;
|
||||
threadHandle = 0;
|
||||
}
|
||||
|
||||
void Thread::killThread()
|
||||
{
|
||||
if (threadHandle != 0)
|
||||
{
|
||||
#if BEAST_ANDROID
|
||||
bassertfalse; // pthread_cancel not available!
|
||||
#else
|
||||
pthread_cancel ((pthread_t) threadHandle);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void Thread::setCurrentThreadName (const String& name)
|
||||
{
|
||||
#if BEAST_IOS || (BEAST_MAC && defined (MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)
|
||||
BEAST_AUTORELEASEPOOL
|
||||
{
|
||||
[[NSThread currentThread] setName: beastStringToNS (name)];
|
||||
}
|
||||
#elif BEAST_LINUX
|
||||
#if (__GLIBC__ * 1000 + __GLIBC_MINOR__) >= 2012
|
||||
pthread_setname_np (pthread_self(), name.toRawUTF8());
|
||||
#else
|
||||
prctl (PR_SET_NAME, name.toRawUTF8(), 0, 0, 0);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Thread::setThreadPriority (void* handle, int priority)
|
||||
{
|
||||
struct sched_param param;
|
||||
int policy;
|
||||
priority = blimit (0, 10, priority);
|
||||
|
||||
if (handle == nullptr)
|
||||
handle = (void*) pthread_self();
|
||||
|
||||
if (pthread_getschedparam ((pthread_t) handle, &policy, ¶m) != 0)
|
||||
return false;
|
||||
|
||||
policy = priority == 0 ? SCHED_OTHER : SCHED_RR;
|
||||
|
||||
const int minPriority = sched_get_priority_min (policy);
|
||||
const int maxPriority = sched_get_priority_max (policy);
|
||||
|
||||
param.sched_priority = ((maxPriority - minPriority) * priority) / 10 + minPriority;
|
||||
return pthread_setschedparam ((pthread_t) handle, policy, ¶m) == 0;
|
||||
}
|
||||
|
||||
Thread::ThreadID Thread::getCurrentThreadId()
|
||||
{
|
||||
return (ThreadID) pthread_self();
|
||||
}
|
||||
|
||||
void Thread::yield()
|
||||
{
|
||||
sched_yield();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
/* Remove this macro if you're having problems compiling the cpu affinity
|
||||
calls (the API for these has changed about quite a bit in various Linux
|
||||
versions, and a lot of distros seem to ship with obsolete versions)
|
||||
*/
|
||||
#if defined (CPU_ISSET) && ! defined (SUPPORT_AFFINITIES)
|
||||
#define SUPPORT_AFFINITIES 1
|
||||
#endif
|
||||
|
||||
void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask)
|
||||
{
|
||||
#if SUPPORT_AFFINITIES
|
||||
cpu_set_t affinity;
|
||||
CPU_ZERO (&affinity);
|
||||
|
||||
for (int i = 0; i < 32; ++i)
|
||||
if ((affinityMask & (1 << i)) != 0)
|
||||
CPU_SET (i, &affinity);
|
||||
|
||||
/*
|
||||
N.B. If this line causes a compile error, then you've probably not got the latest
|
||||
version of glibc installed.
|
||||
|
||||
If you don't want to update your copy of glibc and don't care about cpu affinities,
|
||||
then you can just disable all this stuff by setting the SUPPORT_AFFINITIES macro to 0.
|
||||
*/
|
||||
sched_setaffinity (getpid(), sizeof (cpu_set_t), &affinity);
|
||||
sched_yield();
|
||||
|
||||
#else
|
||||
/* affinities aren't supported because either the appropriate header files weren't found,
|
||||
or the SUPPORT_AFFINITIES macro was turned off
|
||||
*/
|
||||
bassertfalse;
|
||||
(void) affinityMask;
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
|
||||
168
src/beast/beast/threads/impl/WaitableEvent.cpp
Normal file
168
src/beast/beast/threads/impl/WaitableEvent.cpp
Normal file
@@ -0,0 +1,168 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Portions of this file are from JUCE.
|
||||
Copyright (c) 2013 - Raw Material Software Ltd.
|
||||
Please visit http://www.juce.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../WaitableEvent.h"
|
||||
|
||||
#if BEAST_WINDOWS
|
||||
|
||||
#include <Windows.h>
|
||||
#undef check
|
||||
#undef direct
|
||||
#undef max
|
||||
#undef min
|
||||
#undef TYPE_BOOL
|
||||
|
||||
namespace beast {
|
||||
|
||||
WaitableEvent::WaitableEvent (const bool manualReset, bool initiallySignaled)
|
||||
: handle (CreateEvent (0, manualReset ? TRUE : FALSE, initiallySignaled ? TRUE : FALSE, 0))
|
||||
{
|
||||
}
|
||||
|
||||
WaitableEvent::~WaitableEvent()
|
||||
{
|
||||
CloseHandle (handle);
|
||||
}
|
||||
|
||||
void WaitableEvent::signal() const
|
||||
{
|
||||
SetEvent (handle);
|
||||
}
|
||||
|
||||
void WaitableEvent::reset() const
|
||||
{
|
||||
ResetEvent (handle);
|
||||
}
|
||||
|
||||
bool WaitableEvent::wait () const
|
||||
{
|
||||
return WaitForSingleObject (handle, INFINITE) == WAIT_OBJECT_0;
|
||||
}
|
||||
|
||||
bool WaitableEvent::wait (const int timeOutMs) const
|
||||
{
|
||||
if (timeOutMs >= 0)
|
||||
return WaitForSingleObject (handle,
|
||||
(DWORD) timeOutMs) == WAIT_OBJECT_0;
|
||||
return wait ();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
namespace beast {
|
||||
|
||||
WaitableEvent::WaitableEvent (const bool useManualReset, bool initiallySignaled)
|
||||
: triggered (false), manualReset (useManualReset)
|
||||
{
|
||||
pthread_cond_init (&condition, 0);
|
||||
|
||||
pthread_mutexattr_t atts;
|
||||
pthread_mutexattr_init (&atts);
|
||||
#if ! BEAST_ANDROID
|
||||
pthread_mutexattr_setprotocol (&atts, PTHREAD_PRIO_INHERIT);
|
||||
#endif
|
||||
pthread_mutex_init (&mutex, &atts);
|
||||
|
||||
if (initiallySignaled)
|
||||
signal ();
|
||||
}
|
||||
|
||||
WaitableEvent::~WaitableEvent()
|
||||
{
|
||||
pthread_cond_destroy (&condition);
|
||||
pthread_mutex_destroy (&mutex);
|
||||
}
|
||||
|
||||
bool WaitableEvent::wait () const
|
||||
{
|
||||
return wait (-1);
|
||||
}
|
||||
|
||||
bool WaitableEvent::wait (const int timeOutMillisecs) const
|
||||
{
|
||||
pthread_mutex_lock (&mutex);
|
||||
|
||||
if (! triggered)
|
||||
{
|
||||
if (timeOutMillisecs < 0)
|
||||
{
|
||||
do
|
||||
{
|
||||
pthread_cond_wait (&condition, &mutex);
|
||||
}
|
||||
while (! triggered);
|
||||
}
|
||||
else
|
||||
{
|
||||
struct timeval now;
|
||||
gettimeofday (&now, 0);
|
||||
|
||||
struct timespec time;
|
||||
time.tv_sec = now.tv_sec + (timeOutMillisecs / 1000);
|
||||
time.tv_nsec = (now.tv_usec + ((timeOutMillisecs % 1000) * 1000)) * 1000;
|
||||
|
||||
if (time.tv_nsec >= 1000000000)
|
||||
{
|
||||
time.tv_nsec -= 1000000000;
|
||||
time.tv_sec++;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (pthread_cond_timedwait (&condition, &mutex, &time) == ETIMEDOUT)
|
||||
{
|
||||
pthread_mutex_unlock (&mutex);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
while (! triggered);
|
||||
}
|
||||
}
|
||||
|
||||
if (! manualReset)
|
||||
triggered = false;
|
||||
|
||||
pthread_mutex_unlock (&mutex);
|
||||
return true;
|
||||
}
|
||||
|
||||
void WaitableEvent::signal() const
|
||||
{
|
||||
pthread_mutex_lock (&mutex);
|
||||
triggered = true;
|
||||
pthread_cond_broadcast (&condition);
|
||||
pthread_mutex_unlock (&mutex);
|
||||
}
|
||||
|
||||
void WaitableEvent::reset() const
|
||||
{
|
||||
pthread_mutex_lock (&mutex);
|
||||
triggered = false;
|
||||
pthread_mutex_unlock (&mutex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
71
src/beast/beast/utility/BaseFromMember.h
Normal file
71
src/beast/beast/utility/BaseFromMember.h
Normal file
@@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of rippled: https://github.com/ripple/rippled
|
||||
Copyright (c) 2012, 2013 Ripple Labs Inc.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_UTILITY_BASEFROMMEMBER_H_INCLUDED
|
||||
#define BEAST_UTILITY_BASEFROMMEMBER_H_INCLUDED
|
||||
|
||||
namespace beast {
|
||||
|
||||
template <typename T, int UniqueID = 0>
|
||||
class BaseFromMember
|
||||
{
|
||||
private:
|
||||
T m_t;
|
||||
|
||||
public:
|
||||
BaseFromMember ()
|
||||
: m_t (T())
|
||||
{
|
||||
}
|
||||
|
||||
template <class P1>
|
||||
explicit BaseFromMember (P1 const& p1)
|
||||
: m_t (p1)
|
||||
{ }
|
||||
|
||||
template <class P1, class P2>
|
||||
BaseFromMember (P1 const& p1, P2 const& p2)
|
||||
: m_t (p1, p2)
|
||||
{ }
|
||||
|
||||
template <class P1, class P2, class P3>
|
||||
BaseFromMember (P1 const& p1, P2 const& p2, P3 const& p3)
|
||||
: m_t (p1, p2, p3)
|
||||
{ }
|
||||
|
||||
template <class P1, class P2, class P3, class P4>
|
||||
BaseFromMember (P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4)
|
||||
: m_t (p1, p2, p3, p4)
|
||||
{ }
|
||||
|
||||
template <class P1, class P2, class P3, class P4, class P5>
|
||||
BaseFromMember (P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5)
|
||||
: m_t (p1, p2, p3, p4, p5)
|
||||
{ }
|
||||
|
||||
T& member()
|
||||
{ return m_t; }
|
||||
|
||||
T const& member() const
|
||||
{ return m_t; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -20,10 +20,11 @@
|
||||
#ifndef BEAST_UTILITY_JOURNAL_H_INCLUDED
|
||||
#define BEAST_UTILITY_JOURNAL_H_INCLUDED
|
||||
|
||||
#include "../SafeBool.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace beast {
|
||||
|
||||
/** A generic endpoint for log messages. */
|
||||
class Journal
|
||||
@@ -57,27 +58,33 @@ public:
|
||||
public:
|
||||
virtual ~Sink () { }
|
||||
|
||||
/** Write text to the sink at the specified severity. */
|
||||
virtual void write (Severity severity, std::string const& text) = 0;
|
||||
|
||||
/** Returns `true` if text at the passed severity produces output. */
|
||||
virtual bool active (Severity severity) = 0;
|
||||
virtual bool active (Severity severity) const = 0;
|
||||
|
||||
/** Returns `true` if a message is also written to the Output Window (MSVC). */
|
||||
virtual bool console () = 0;
|
||||
|
||||
/** Set the minimum severity this sink will report. */
|
||||
virtual void set_severity (Severity severity) = 0;
|
||||
virtual bool console () const = 0;
|
||||
|
||||
/** Set whether messages are also written to the Output Window (MSVC). */
|
||||
virtual void set_console (bool to_console) = 0;
|
||||
virtual void console (bool output) = 0;
|
||||
|
||||
/** Returns the minimum severity level this sink will report. */
|
||||
virtual Severity severity() const = 0;
|
||||
|
||||
/** Set the minimum severity this sink will report. */
|
||||
virtual void severity (Severity level) = 0;
|
||||
|
||||
/** Write text to the sink at the specified severity.
|
||||
The caller is responsible for checking the minimum severity level
|
||||
before using this function.
|
||||
*/
|
||||
virtual void write (Severity level, std::string const& text) = 0;
|
||||
};
|
||||
|
||||
/** Returns a Sink which does nothing. */
|
||||
static Sink& getNullSink ();
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
|
||||
class Stream;
|
||||
|
||||
/** Scoped ostream-based container for writing messages to a Journal. */
|
||||
@@ -110,6 +117,8 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
void init ();
|
||||
|
||||
ScopedStream& operator= (ScopedStream const&); // disallowed
|
||||
|
||||
Sink& m_sink;
|
||||
@@ -120,7 +129,7 @@ public:
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
class Stream
|
||||
class Stream : public SafeBool <Stream>
|
||||
{
|
||||
public:
|
||||
/** Construct a stream which produces no logging output. */
|
||||
@@ -142,7 +151,10 @@ public:
|
||||
Severity severity() const;
|
||||
|
||||
/** Returns `true` if sink logs anything at this stream's severity. */
|
||||
/** @{ */
|
||||
bool active() const;
|
||||
bool asBoolean() const;
|
||||
/** @} */
|
||||
|
||||
/** Output stream support. */
|
||||
/** @{ */
|
||||
|
||||
@@ -17,11 +17,17 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_LEAKCHECKED_H_INCLUDED
|
||||
#define BEAST_LEAKCHECKED_H_INCLUDED
|
||||
#ifndef BEAST_UTILITY_LEAKCHECKED_H_INCLUDED
|
||||
#define BEAST_UTILITY_LEAKCHECKED_H_INCLUDED
|
||||
|
||||
namespace detail
|
||||
{
|
||||
#include "../Config.h"
|
||||
#include "../Atomic.h"
|
||||
#include "../intrusive/LockFreeStack.h"
|
||||
#include "StaticObject.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail {
|
||||
|
||||
class LeakCheckedBase
|
||||
{
|
||||
@@ -169,4 +175,6 @@ using detail::disabled::LeakChecked;
|
||||
using detail::disabled::LeakCheckedBase;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
313
src/beast/beast/utility/PropertyStream.h
Normal file
313
src/beast/beast/utility/PropertyStream.h
Normal file
@@ -0,0 +1,313 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
|
||||
#define BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
|
||||
|
||||
#include "../CStdInt.h"
|
||||
#include "../Uncopyable.h"
|
||||
#include "../intrusive/List.h"
|
||||
#include "../threads/SharedData.h"
|
||||
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
namespace beast {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** Abstract stream with RAII containers that produce a property tree. */
|
||||
class PropertyStream
|
||||
{
|
||||
public:
|
||||
class Map;
|
||||
class Set;
|
||||
class Source;
|
||||
|
||||
PropertyStream ();
|
||||
virtual ~PropertyStream ();
|
||||
|
||||
protected:
|
||||
virtual void map_begin () = 0;
|
||||
virtual void map_begin (std::string const& key) = 0;
|
||||
virtual void map_end () = 0;
|
||||
|
||||
virtual void add (std::string const& key, std::string const& value) = 0;
|
||||
|
||||
template <typename Value>
|
||||
void lexical_add (std::string const &key, Value value)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << value;
|
||||
add (key, ss.str());
|
||||
}
|
||||
virtual void add (std::string const& key, int32 value);
|
||||
virtual void add (std::string const& key, uint32 value);
|
||||
virtual void add (std::string const& key, int64 value);
|
||||
virtual void add (std::string const& key, uint64 value);
|
||||
|
||||
virtual void array_begin () = 0;
|
||||
virtual void array_begin (std::string const& key) = 0;
|
||||
virtual void array_end () = 0;
|
||||
|
||||
virtual void add (std::string const& value) = 0;
|
||||
|
||||
template <typename Value>
|
||||
void lexical_add (Value value)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << value;
|
||||
add (ss.str());
|
||||
}
|
||||
virtual void add ( int32 value);
|
||||
virtual void add (uint32 value);
|
||||
virtual void add ( int64 value);
|
||||
virtual void add (uint64 value);
|
||||
|
||||
private:
|
||||
class Item;
|
||||
class Proxy;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Item
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class PropertyStream::Item : public List <Item>::Node
|
||||
{
|
||||
public:
|
||||
explicit Item (Source* source);
|
||||
Source& source() const;
|
||||
Source* operator-> () const;
|
||||
Source& operator* () const;
|
||||
private:
|
||||
Source* m_source;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Proxy
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class PropertyStream::Proxy
|
||||
{
|
||||
private:
|
||||
Map const* m_map;
|
||||
std::string m_key;
|
||||
std::ostringstream mutable m_ostream;
|
||||
|
||||
public:
|
||||
Proxy (Map const& map, std::string const& key);
|
||||
Proxy (Proxy const& other);
|
||||
~Proxy ();
|
||||
|
||||
template <typename Value>
|
||||
Proxy& operator= (Value value);
|
||||
|
||||
std::ostream& operator<< (std::ostream& manip (std::ostream&)) const;
|
||||
|
||||
template <typename T>
|
||||
std::ostream& operator<< (T const& t) const
|
||||
{
|
||||
return m_ostream << t;
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Map
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class PropertyStream::Map : public Uncopyable
|
||||
{
|
||||
private:
|
||||
PropertyStream& m_stream;
|
||||
|
||||
public:
|
||||
explicit Map (PropertyStream& stream);
|
||||
explicit Map (Set& parent);
|
||||
Map (std::string const& key, Map& parent);
|
||||
Map (std::string const& key, PropertyStream& stream);
|
||||
~Map ();
|
||||
|
||||
PropertyStream& stream();
|
||||
PropertyStream const& stream() const;
|
||||
|
||||
template <typename Value>
|
||||
void add (std::string const& key, Value value) const
|
||||
{
|
||||
m_stream.add (key, value);
|
||||
}
|
||||
|
||||
template <typename Key, typename Value>
|
||||
void add (Key key, Value value) const
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << key;
|
||||
add (ss.str(), value);
|
||||
}
|
||||
|
||||
Proxy operator[] (std::string const& key);
|
||||
|
||||
Proxy operator[] (char const* key)
|
||||
{ return Proxy (*this, key); }
|
||||
|
||||
template <typename Key>
|
||||
Proxy operator[] (Key key) const
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << key;
|
||||
return Proxy (*this, ss.str());
|
||||
}
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
template <typename Value>
|
||||
PropertyStream::Proxy& PropertyStream::Proxy::operator= (Value value)
|
||||
{
|
||||
m_map->add (m_key, value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
//
|
||||
// Set
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class PropertyStream::Set : public Uncopyable
|
||||
{
|
||||
private:
|
||||
PropertyStream& m_stream;
|
||||
|
||||
public:
|
||||
explicit Set (Set& set);
|
||||
Set (std::string const& key, Map& map);
|
||||
Set (std::string const& key, PropertyStream& stream);
|
||||
~Set ();
|
||||
|
||||
PropertyStream& stream();
|
||||
PropertyStream const& stream() const;
|
||||
|
||||
template <typename Value>
|
||||
void add (Value value) const
|
||||
{ m_stream.add (value); }
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Source
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** Subclasses can be called to write to a stream and have children. */
|
||||
class PropertyStream::Source : public Uncopyable
|
||||
{
|
||||
private:
|
||||
struct State
|
||||
{
|
||||
explicit State (Source* source)
|
||||
: item (source)
|
||||
, parent (nullptr)
|
||||
{ }
|
||||
|
||||
Item item;
|
||||
Source* parent;
|
||||
List <Item> children;
|
||||
};
|
||||
|
||||
typedef SharedData <State> SharedState;
|
||||
|
||||
std::string const m_name;
|
||||
SharedState m_state;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void remove (SharedState::Access& state,
|
||||
SharedState::Access& childState);
|
||||
|
||||
void removeAll (SharedState::Access& state);
|
||||
|
||||
void write (SharedState::Access& state, PropertyStream& stream);
|
||||
|
||||
public:
|
||||
explicit Source (std::string const& name);
|
||||
~Source ();
|
||||
|
||||
/** Returns the name of this source. */
|
||||
std::string const& name() const;
|
||||
|
||||
/** Add a child source. */
|
||||
void add (Source& source);
|
||||
|
||||
/** Add a child source by pointer.
|
||||
The source pointer is returned so it can be used in ctor-initializers.
|
||||
*/
|
||||
template <class Derived>
|
||||
Derived* add (Derived* child)
|
||||
{
|
||||
add (*static_cast <Source*>(child));
|
||||
return child;
|
||||
}
|
||||
|
||||
/** Remove a child source from this Source. */
|
||||
void remove (Source& child);
|
||||
|
||||
/** Remove all child sources of this Source. */
|
||||
void removeAll ();
|
||||
|
||||
/** Write only this Source to the stream. */
|
||||
void write_one (PropertyStream& stream);
|
||||
|
||||
/** write this source and all its children recursively to the stream. */
|
||||
void write (PropertyStream& stream);
|
||||
|
||||
/** Parse the path and write the corresponding Source and optional children.
|
||||
If the source is found, it is written. If the wildcard character '*'
|
||||
exists as the last character in the path, then all the children are
|
||||
written recursively.
|
||||
*/
|
||||
void write (PropertyStream& stream, std::string const& path);
|
||||
|
||||
/** Parse the dot-delimited Source path and return the result.
|
||||
The first value will be a pointer to the Source object corresponding
|
||||
to the given path. If no Source object exists, then the first value
|
||||
will be nullptr and the second value will be undefined.
|
||||
The second value is a boolean indicating whether or not the path string
|
||||
specifies the wildcard character '*' as the last character.
|
||||
*/
|
||||
std::pair <Source*, bool> find (std::string const& path);
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/** Subclass override.
|
||||
The default version does nothing.
|
||||
*/
|
||||
virtual void onWrite (Map&);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -17,21 +17,11 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef BEAST_STATICOBJECT_H_INCLUDED
|
||||
#define BEAST_STATICOBJECT_H_INCLUDED
|
||||
#ifndef BEAST_UTILITY_STATICOBJECT_H_INCLUDED
|
||||
#define BEAST_UTILITY_STATICOBJECT_H_INCLUDED
|
||||
|
||||
namespace beast {
|
||||
|
||||
//
|
||||
// A full suite of thread-safe objects designed for static storage duration.
|
||||
//
|
||||
// Wraps an object with a thread-safe initialization preamble so that it can
|
||||
// properly exist with static storage duration.
|
||||
//
|
||||
// Implementation notes:
|
||||
//
|
||||
// This is accomplished by omitting the constructor and relying on the C++
|
||||
// specification that plain data types with static storage duration are filled
|
||||
// with zeroes before any other initialization code executes.
|
||||
//
|
||||
// Spec: N2914=09-0104
|
||||
//
|
||||
// [3.6.2] Initialization of non-local objects
|
||||
@@ -40,84 +30,8 @@
|
||||
// duration (3.7.2) shall be zero-initialized (8.5) before any
|
||||
// other initialization takes place.
|
||||
//
|
||||
// Requirements:
|
||||
//
|
||||
// Object must be constructible without parameters.
|
||||
// The StaticObject must be declared with static storage duration or
|
||||
// the behavior is undefined.
|
||||
//
|
||||
// Usage example:
|
||||
//
|
||||
// Object* getInstance ()
|
||||
// {
|
||||
// static StaticObject <Object> instance;
|
||||
// return instance->getObject ();
|
||||
// }
|
||||
//
|
||||
|
||||
namespace Static
|
||||
{
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
// Holds an object with static storage duration.
|
||||
// The owner determines if and when the object is constructed and destroyed.
|
||||
// Caller is responsible for synchronization.
|
||||
//
|
||||
template <class ObjectType, class Tag>
|
||||
class Storage
|
||||
{
|
||||
public:
|
||||
static inline void construct ()
|
||||
{
|
||||
new (getObjectPtr ()) ObjectType;
|
||||
}
|
||||
|
||||
static inline void destroy ()
|
||||
{
|
||||
getObjectPtr ()->~ObjectType ();
|
||||
}
|
||||
|
||||
static inline ObjectType* getObjectPtr ()
|
||||
{
|
||||
return reinterpret_cast <ObjectType*> (s_storage);
|
||||
}
|
||||
|
||||
static inline ObjectType& getObject ()
|
||||
{
|
||||
return *getObjectPtr ();
|
||||
}
|
||||
|
||||
inline ObjectType* operator-> () const
|
||||
{
|
||||
return getObjectPtr ();
|
||||
}
|
||||
|
||||
inline ObjectType& operator* () const
|
||||
{
|
||||
return getObject ();
|
||||
}
|
||||
|
||||
inline operator ObjectType* () const
|
||||
{
|
||||
return getObjectPtr ();
|
||||
}
|
||||
|
||||
// TODO: Crashes on iOS if not accessed before usage
|
||||
static char s_storage [sizeof (ObjectType)];
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
template <class ObjectType, class Tag>
|
||||
char Storage <ObjectType, Tag>::s_storage [sizeof (ObjectType)];
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace detail
|
||||
{
|
||||
namespace detail {
|
||||
|
||||
extern void staticObjectWait (std::size_t n);
|
||||
|
||||
@@ -194,4 +108,6 @@ private:
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -21,8 +21,11 @@
|
||||
|
||||
#include "impl/Error.cpp"
|
||||
|
||||
|
||||
// For Journal and Debug
|
||||
#include "../../modules/beast_core/beast_core.h"
|
||||
#include "impl/Journal.cpp"
|
||||
|
||||
#include "impl/Debug.cpp"
|
||||
#include "impl/Journal.cpp"
|
||||
#include "impl/LeakChecked.cpp"
|
||||
#include "impl/StaticObject.cpp"
|
||||
#include "impl/PropertyStream.cpp"
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
|
||||
#include "../Journal.h"
|
||||
|
||||
namespace beast
|
||||
{
|
||||
namespace beast {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -28,27 +27,32 @@ namespace beast
|
||||
class NullJournalSink : public Journal::Sink
|
||||
{
|
||||
public:
|
||||
bool active (Journal::Severity) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool console() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void console (bool)
|
||||
{
|
||||
}
|
||||
|
||||
Journal::Severity severity() const
|
||||
{
|
||||
return Journal::kDisabled;
|
||||
}
|
||||
|
||||
void severity (Journal::Severity)
|
||||
{
|
||||
}
|
||||
|
||||
void write (Journal::Severity, std::string const&)
|
||||
{
|
||||
}
|
||||
|
||||
bool active (Journal::Severity)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool console ()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void set_severity (Journal::Severity)
|
||||
{
|
||||
}
|
||||
|
||||
void set_console (bool)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -65,28 +69,39 @@ Journal::ScopedStream::ScopedStream (Stream const& stream)
|
||||
: m_sink (stream.sink())
|
||||
, m_severity (stream.severity())
|
||||
{
|
||||
init ();
|
||||
}
|
||||
|
||||
Journal::ScopedStream::ScopedStream (ScopedStream const& other)
|
||||
: m_sink (other.m_sink)
|
||||
, m_severity (other.m_severity)
|
||||
{
|
||||
init ();
|
||||
}
|
||||
|
||||
Journal::ScopedStream::ScopedStream (Stream const& stream, std::ostream& manip (std::ostream&))
|
||||
: m_sink (stream.sink())
|
||||
, m_severity (stream.severity())
|
||||
{
|
||||
init ();
|
||||
m_ostream << manip;
|
||||
}
|
||||
|
||||
Journal::ScopedStream::~ScopedStream ()
|
||||
{
|
||||
if (! m_ostream.str().empty())
|
||||
{
|
||||
if (m_sink.active (m_severity))
|
||||
m_sink.write (m_severity, m_ostream.str());
|
||||
}
|
||||
if (! m_ostream.str().empty() && m_sink.active (m_severity))
|
||||
m_sink.write (m_severity, m_ostream.str());
|
||||
}
|
||||
|
||||
void Journal::ScopedStream::init ()
|
||||
{
|
||||
// Modifiers applied from all ctors
|
||||
m_ostream
|
||||
<< std::boolalpha
|
||||
<< std::showbase
|
||||
//<< std::hex
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
std::ostream& Journal::ScopedStream::operator<< (std::ostream& manip (std::ostream&)) const
|
||||
@@ -135,6 +150,11 @@ bool Journal::Stream::active () const
|
||||
return m_sink->active (m_severity);
|
||||
}
|
||||
|
||||
bool Journal::Stream::asBoolean () const
|
||||
{
|
||||
return active();
|
||||
}
|
||||
|
||||
Journal::Stream& Journal::Stream::operator= (Stream const& other)
|
||||
{
|
||||
m_sink = other.m_sink;
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../LeakChecked.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail
|
||||
{
|
||||
|
||||
@@ -81,7 +85,7 @@ void LeakCheckedBase::LeakCounterBase::checkForLeaks ()
|
||||
always use ScopedPointers, OwnedArrays, SharedObjects,
|
||||
etc, and avoid the 'delete' operator at all costs!
|
||||
*/
|
||||
DBG ("Leaked objects: " << count << " of " << getClassName ());
|
||||
BDBG ("Leaked objects: " << count << " of " << getClassName ());
|
||||
|
||||
//bassertfalse;
|
||||
}
|
||||
@@ -111,7 +115,7 @@ void LeakCheckedBase::reportDanglingPointer (char const*)
|
||||
SharedObjects, etc, and avoid the 'delete' operator
|
||||
at all costs!
|
||||
*/
|
||||
DBG ("Dangling pointer deletion: " << objectName);
|
||||
BDBG ("Dangling pointer deletion: " << objectName);
|
||||
|
||||
bassertfalse;
|
||||
}
|
||||
@@ -124,3 +128,5 @@ void LeakCheckedBase::checkForLeaks ()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
443
src/beast/beast/utility/impl/PropertyStream.cpp
Normal file
443
src/beast/beast/utility/impl/PropertyStream.cpp
Normal file
@@ -0,0 +1,443 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../PropertyStream.h"
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace beast {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Item
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::Item::Item (Source* source)
|
||||
: m_source (source)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::Source& PropertyStream::Item::source() const
|
||||
{
|
||||
return *m_source;
|
||||
}
|
||||
|
||||
PropertyStream::Source* PropertyStream::Item::operator-> () const
|
||||
{
|
||||
return &source();
|
||||
}
|
||||
|
||||
PropertyStream::Source& PropertyStream::Item::operator* () const
|
||||
{
|
||||
return source();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Proxy
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::Proxy::Proxy (
|
||||
Map const& map, std::string const& key)
|
||||
: m_map (&map)
|
||||
, m_key (key)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::Proxy::Proxy (Proxy const& other)
|
||||
: m_map (other.m_map)
|
||||
, m_key (other.m_key)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::Proxy::~Proxy ()
|
||||
{
|
||||
std::string const s (m_ostream.str());
|
||||
if (! s.empty())
|
||||
m_map->add (m_key, s);
|
||||
}
|
||||
|
||||
std::ostream& PropertyStream::Proxy::operator<< (
|
||||
std::ostream& manip (std::ostream&)) const
|
||||
{
|
||||
return m_ostream << manip;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Map
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::Map::Map (PropertyStream& stream)
|
||||
: m_stream (stream)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::Map::Map (Set& parent)
|
||||
: m_stream (parent.stream())
|
||||
{
|
||||
m_stream.map_begin ();
|
||||
}
|
||||
|
||||
PropertyStream::Map::Map (std::string const& key, Map& map)
|
||||
: m_stream (map.stream())
|
||||
{
|
||||
m_stream.map_begin (key);
|
||||
}
|
||||
|
||||
PropertyStream::Map::Map (std::string const& key, PropertyStream& stream)
|
||||
: m_stream (stream)
|
||||
{
|
||||
m_stream.map_begin (key);
|
||||
}
|
||||
|
||||
PropertyStream::Map::~Map ()
|
||||
{
|
||||
m_stream.map_end ();
|
||||
}
|
||||
|
||||
PropertyStream& PropertyStream::Map::stream()
|
||||
{
|
||||
return m_stream;
|
||||
}
|
||||
|
||||
PropertyStream const& PropertyStream::Map::stream() const
|
||||
{
|
||||
return m_stream;
|
||||
}
|
||||
|
||||
PropertyStream::Proxy PropertyStream::Map::operator[] (std::string const& key)
|
||||
{
|
||||
return Proxy (*this, key);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Set
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::Set::Set (Set& set)
|
||||
: m_stream (set.m_stream)
|
||||
{
|
||||
m_stream.array_begin ();
|
||||
}
|
||||
|
||||
PropertyStream::Set::Set (std::string const& key, Map& map)
|
||||
: m_stream (map.stream())
|
||||
{
|
||||
m_stream.array_begin (key);
|
||||
}
|
||||
|
||||
PropertyStream::Set::Set (std::string const& key, PropertyStream& stream)
|
||||
: m_stream (stream)
|
||||
{
|
||||
m_stream.array_begin (key);
|
||||
}
|
||||
|
||||
PropertyStream::Set::~Set ()
|
||||
{
|
||||
m_stream.array_end ();
|
||||
}
|
||||
|
||||
PropertyStream& PropertyStream::Set::stream()
|
||||
{
|
||||
return m_stream;
|
||||
}
|
||||
|
||||
PropertyStream const& PropertyStream::Set::stream() const
|
||||
{
|
||||
return m_stream;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Source
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::Source::Source (std::string const& name)
|
||||
: m_name (name)
|
||||
, m_state (this)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::Source::~Source ()
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
if (state->parent != nullptr)
|
||||
state->parent->remove (*this);
|
||||
removeAll (state);
|
||||
}
|
||||
|
||||
std::string const& PropertyStream::Source::name () const
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
void PropertyStream::Source::add (Source& source)
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
SharedState::Access childState (source.m_state);
|
||||
bassert (childState->parent == nullptr);
|
||||
state->children.push_back (childState->item);
|
||||
childState->parent = this;
|
||||
}
|
||||
|
||||
void PropertyStream::Source::remove (Source& child)
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
SharedState::Access childState (child.m_state);
|
||||
remove (state, childState);
|
||||
}
|
||||
|
||||
void PropertyStream::Source::removeAll ()
|
||||
{
|
||||
SharedState::Access state (m_state);
|
||||
removeAll (state);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void PropertyStream::Source::write (
|
||||
SharedState::Access& state, PropertyStream &stream)
|
||||
{
|
||||
for (List <Item>::iterator iter (state->children.begin());
|
||||
iter != state->children.end(); ++iter)
|
||||
{
|
||||
Source& source (iter->source());
|
||||
Map map (source.name(), stream);
|
||||
source.write (stream);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void PropertyStream::Source::write_one (PropertyStream& stream)
|
||||
{
|
||||
Map map (m_name, stream);
|
||||
//onWrite (map);
|
||||
}
|
||||
|
||||
void PropertyStream::Source::write (PropertyStream& stream)
|
||||
{
|
||||
Map map (m_name, stream);
|
||||
onWrite (map);
|
||||
|
||||
SharedState::Access state (m_state);
|
||||
|
||||
for (List <Item>::iterator iter (state->children.begin());
|
||||
iter != state->children.end(); ++iter)
|
||||
{
|
||||
Source& source (iter->source());
|
||||
source.write (stream);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyStream::Source::write (PropertyStream& stream, std::string const& path)
|
||||
{
|
||||
std::pair <Source*, bool> result (find (path));
|
||||
|
||||
if (result.first == nullptr)
|
||||
return;
|
||||
|
||||
if (result.second)
|
||||
result.first->write (stream);
|
||||
else
|
||||
result.first->write_one (stream);
|
||||
}
|
||||
|
||||
std::pair <PropertyStream::Source*, bool> PropertyStream::Source::find (std::string const& path)
|
||||
{
|
||||
struct Parser
|
||||
{
|
||||
Parser (std::string const& path)
|
||||
: m_first (path.begin())
|
||||
, m_last (path.end())
|
||||
{
|
||||
}
|
||||
|
||||
std::string next ()
|
||||
{
|
||||
std::string::const_iterator pos (
|
||||
std::find (m_first, m_last, '.'));
|
||||
std::string const s (m_first, pos);
|
||||
if (pos != m_last)
|
||||
m_first = pos + 1;
|
||||
else
|
||||
m_first = pos;
|
||||
return s;
|
||||
}
|
||||
|
||||
std::string::const_iterator m_first;
|
||||
std::string::const_iterator m_last;
|
||||
};
|
||||
|
||||
if (path.empty ())
|
||||
return std::make_pair (this, false);
|
||||
|
||||
Parser p (path);
|
||||
Source* source (this);
|
||||
if (p.next() != this->m_name)
|
||||
return std::make_pair (nullptr, false);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
std::string const s (p.next());
|
||||
|
||||
if (s.empty())
|
||||
return std::make_pair (source, false);
|
||||
|
||||
if (s == "*")
|
||||
return std::make_pair (source, true);
|
||||
|
||||
SharedState::Access state (source->m_state);
|
||||
for (List <Item>::iterator iter (state->children.begin());;)
|
||||
{
|
||||
if (iter == state->children.end())
|
||||
return std::make_pair (nullptr, false);
|
||||
|
||||
if (iter->source().m_name == s)
|
||||
{
|
||||
source = &iter->source();
|
||||
break;
|
||||
}
|
||||
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyStream::Source::onWrite (Map&)
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void PropertyStream::Source::remove (
|
||||
SharedState::Access& state, SharedState::Access& childState)
|
||||
{
|
||||
bassert (childState->parent == this);
|
||||
state->children.erase (
|
||||
state->children.iterator_to (
|
||||
childState->item));
|
||||
childState->parent = nullptr;
|
||||
}
|
||||
|
||||
void PropertyStream::Source::removeAll (SharedState::Access& state)
|
||||
{
|
||||
for (List <Item>::iterator iter (state->children.begin());
|
||||
iter != state->children.end();)
|
||||
{
|
||||
SharedState::Access childState ((*iter)->m_state);
|
||||
remove (state, childState);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// PropertyStream
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
PropertyStream::PropertyStream ()
|
||||
{
|
||||
}
|
||||
|
||||
PropertyStream::~PropertyStream ()
|
||||
{
|
||||
}
|
||||
|
||||
void PropertyStream::add (std::string const& key, int32 value)
|
||||
{
|
||||
lexical_add (key, value);
|
||||
}
|
||||
|
||||
void PropertyStream::add (std::string const& key, uint32 value)
|
||||
{
|
||||
lexical_add (key, value);
|
||||
}
|
||||
|
||||
void PropertyStream::add (std::string const& key, int64 value)
|
||||
{
|
||||
if (value <= std::numeric_limits <int32>::max() &&
|
||||
value >= std::numeric_limits <int32>::min())
|
||||
{
|
||||
add (key, int32(value));
|
||||
}
|
||||
else
|
||||
{
|
||||
lexical_add(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyStream::add (std::string const& key, uint64 value)
|
||||
{
|
||||
if (value <= std::numeric_limits <uint32>::max() &&
|
||||
value >= std::numeric_limits <uint32>::min())
|
||||
{
|
||||
add (key, uint32(value));
|
||||
}
|
||||
else
|
||||
{
|
||||
lexical_add (key, value);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyStream::add (int32 value)
|
||||
{
|
||||
lexical_add (value);
|
||||
}
|
||||
|
||||
void PropertyStream::add (uint32 value)
|
||||
{
|
||||
lexical_add (value);
|
||||
}
|
||||
|
||||
void PropertyStream::add (int64 value)
|
||||
{
|
||||
if (value <= std::numeric_limits <int32>::max() &&
|
||||
value >= std::numeric_limits <int32>::min())
|
||||
{
|
||||
add (int32(value));
|
||||
}
|
||||
else
|
||||
{
|
||||
lexical_add (value);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyStream::add (uint64 value)
|
||||
{
|
||||
if (value <= std::numeric_limits <uint32>::max() &&
|
||||
value >= std::numeric_limits <uint32>::min())
|
||||
{
|
||||
add (uint32(value));
|
||||
}
|
||||
else
|
||||
{
|
||||
lexical_add (value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -17,6 +17,11 @@
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "../StaticObject.h"
|
||||
#include "../../threads/Thread.h"
|
||||
|
||||
namespace beast {
|
||||
|
||||
namespace detail
|
||||
{
|
||||
|
||||
@@ -32,3 +37,5 @@ void staticObjectWait (std::size_t n)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -107,6 +107,13 @@
|
||||
#define BEAST_ZLIB_INCLUDE_PATH <zlib.h>
|
||||
#endif
|
||||
|
||||
/** Config: BEAST_SQLITE_FORCE_NDEBUG
|
||||
Setting this option forces sqlite into release mode even if NDEBUG is not set
|
||||
*/
|
||||
#ifndef BEAST_SQLITE_FORCE_NDEBUG
|
||||
//#define BEAST_SQLITE_FORCE_NDEBUG 1
|
||||
#endif
|
||||
|
||||
/** Config: BEAST_FUNCTIONAL_USES_###
|
||||
<functional> source configuration.
|
||||
Set one of these to manually force a particular implementation of bind().
|
||||
|
||||
2
src/beast/demos/unittests/.gitignore
vendored
Normal file
2
src/beast/demos/unittests/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
builds/vs2012/Debug
|
||||
builds/vs2012/Release
|
||||
19
src/beast/demos/unittests/builds/vs2012/unittests.filters
Normal file
19
src/beast/demos/unittests/builds/vs2012/unittests.filters
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="beast-win32.cpp" />
|
||||
<ClCompile Include="..\shared\BeastUnitTests.cpp">
|
||||
<Filter>shared</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="shared">
|
||||
<UniqueIdentifier>{986861c7-f1e7-4a41-bea0-eede68819634}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\shared\BeastUnitTests.h">
|
||||
<Filter>shared</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
93
src/beast/demos/unittests/builds/vs2012/unittests.vcxproj
Normal file
93
src/beast/demos/unittests/builds/vs2012/unittests.vcxproj
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{36E40B92-F578-4599-9909-70952176D18A}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>
|
||||
</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\config;$(ProjectDir)..\..\..\..;$(ProjectDir)..\..\..\beast;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\config;$(ProjectDir)..\..\..\..;$(ProjectDir)..\..\..\beast</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\beast.cpp" />
|
||||
<ClCompile Include="..\..\src\BeastUnitTests.cpp" />
|
||||
<ClCompile Include="..\..\src\win32.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\beast.h" />
|
||||
<ClInclude Include="..\..\src\BeastUnitTests.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,279 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
CD0A5B3F181707F700DA0342 /* mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD0A5B3E181707F700DA0342 /* mac.cpp */; };
|
||||
CD0A5B421817097800DA0342 /* BeastUnitTests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD0A5B401817097800DA0342 /* BeastUnitTests.cpp */; };
|
||||
CD0A5B4918170DC300DA0342 /* beast_modules.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD0A5B4818170DC300DA0342 /* beast_modules.mm */; };
|
||||
CD0A5B4B18170EBC00DA0342 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD0A5B4A18170EBC00DA0342 /* CoreServices.framework */; };
|
||||
CD0A5B4E18170F0D00DA0342 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD0A5B4D18170F0D00DA0342 /* AppKit.framework */; };
|
||||
CD1CBE68181B2D99002CCC0C /* juce_modules.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD1CBE64181B2689002CCC0C /* juce_modules.mm */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
CD0A5B301817074500DA0342 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = /usr/share/man/man1/;
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
CD0A5B321817074500DA0342 /* unittests */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = unittests; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CD0A5B3E181707F700DA0342 /* mac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mac.cpp; path = ../../src/mac.cpp; sourceTree = "<group>"; };
|
||||
CD0A5B401817097800DA0342 /* BeastUnitTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BeastUnitTests.cpp; path = ../../src/BeastUnitTests.cpp; sourceTree = "<group>"; };
|
||||
CD0A5B411817097800DA0342 /* BeastUnitTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BeastUnitTests.h; path = ../../src/BeastUnitTests.h; sourceTree = "<group>"; };
|
||||
CD0A5B4318170A5100DA0342 /* beast_modules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = beast_modules.cpp; path = ../../src/beast_modules.cpp; sourceTree = "<group>"; };
|
||||
CD0A5B4418170A5100DA0342 /* beast_modules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = beast_modules.h; path = ../../src/beast_modules.h; sourceTree = "<group>"; };
|
||||
CD0A5B4818170DC300DA0342 /* beast_modules.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = beast_modules.mm; path = ../../src/beast_modules.mm; sourceTree = "<group>"; };
|
||||
CD0A5B4A18170EBC00DA0342 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
|
||||
CD0A5B4D18170F0D00DA0342 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
CD0A5B4F181714A000DA0342 /* beast */ = {isa = PBXFileReference; lastKnownFileType = folder; name = beast; path = ../../../../beast; sourceTree = "<group>"; };
|
||||
CD0A5B50181714B800DA0342 /* modules */ = {isa = PBXFileReference; lastKnownFileType = folder; name = modules; path = ../../../../modules; sourceTree = "<group>"; };
|
||||
CD1CBE62181B2689002CCC0C /* juce_modules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_modules.cpp; path = ../../src/juce_modules.cpp; sourceTree = "<group>"; };
|
||||
CD1CBE63181B2689002CCC0C /* juce_modules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_modules.h; path = ../../src/juce_modules.h; sourceTree = "<group>"; };
|
||||
CD1CBE64181B2689002CCC0C /* juce_modules.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_modules.mm; path = ../../src/juce_modules.mm; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
CD0A5B2F1817074500DA0342 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CD0A5B4E18170F0D00DA0342 /* AppKit.framework in Frameworks */,
|
||||
CD0A5B4B18170EBC00DA0342 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
CD0A5B291817074500DA0342 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD0A5B50181714B800DA0342 /* modules */,
|
||||
CD0A5B4F181714A000DA0342 /* beast */,
|
||||
CD0A5B4318170A5100DA0342 /* beast_modules.cpp */,
|
||||
CD0A5B4418170A5100DA0342 /* beast_modules.h */,
|
||||
CD0A5B4818170DC300DA0342 /* beast_modules.mm */,
|
||||
CD0A5B401817097800DA0342 /* BeastUnitTests.cpp */,
|
||||
CD0A5B411817097800DA0342 /* BeastUnitTests.h */,
|
||||
CD1CBE62181B2689002CCC0C /* juce_modules.cpp */,
|
||||
CD1CBE63181B2689002CCC0C /* juce_modules.h */,
|
||||
CD1CBE64181B2689002CCC0C /* juce_modules.mm */,
|
||||
CD0A5B3E181707F700DA0342 /* mac.cpp */,
|
||||
CD0A5B4C18170EC600DA0342 /* Frameworks */,
|
||||
CD0A5B331817074500DA0342 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD0A5B331817074500DA0342 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD0A5B321817074500DA0342 /* unittests */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD0A5B4C18170EC600DA0342 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD0A5B4D18170F0D00DA0342 /* AppKit.framework */,
|
||||
CD0A5B4A18170EBC00DA0342 /* CoreServices.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
CD0A5B311817074500DA0342 /* unittests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CD0A5B3B1817074500DA0342 /* Build configuration list for PBXNativeTarget "unittests" */;
|
||||
buildPhases = (
|
||||
CD0A5B2E1817074500DA0342 /* Sources */,
|
||||
CD0A5B2F1817074500DA0342 /* Frameworks */,
|
||||
CD0A5B301817074500DA0342 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = unittests;
|
||||
productName = unittests;
|
||||
productReference = CD0A5B321817074500DA0342 /* unittests */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
CD0A5B2A1817074500DA0342 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
ORGANIZATIONNAME = "Patrick Dehne";
|
||||
};
|
||||
buildConfigurationList = CD0A5B2D1817074500DA0342 /* Build configuration list for PBXProject "unittests" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = CD0A5B291817074500DA0342;
|
||||
productRefGroup = CD0A5B331817074500DA0342 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
CD0A5B311817074500DA0342 /* unittests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
CD0A5B2E1817074500DA0342 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CD0A5B3F181707F700DA0342 /* mac.cpp in Sources */,
|
||||
CD0A5B421817097800DA0342 /* BeastUnitTests.cpp in Sources */,
|
||||
CD1CBE68181B2D99002CCC0C /* juce_modules.mm in Sources */,
|
||||
CD0A5B4918170DC300DA0342 /* beast_modules.mm in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
CD0A5B391817074500DA0342 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../src",
|
||||
"$(SRCROOT)/../../../../../../../JUCE",
|
||||
"$(SRCROOT)/../../../../config",
|
||||
"$(SRCROOT)/../../../..",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CD0A5B3A1817074500DA0342 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../src",
|
||||
"$(SRCROOT)/../../../../../../../JUCE",
|
||||
"$(SRCROOT)/../../../../config",
|
||||
"$(SRCROOT)/../../../..",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CD0A5B3C1817074500DA0342 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CD0A5B3D1817074500DA0342 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
CD0A5B2D1817074500DA0342 /* Build configuration list for PBXProject "unittests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CD0A5B391817074500DA0342 /* Debug */,
|
||||
CD0A5B3A1817074500DA0342 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CD0A5B3B1817074500DA0342 /* Build configuration list for PBXNativeTarget "unittests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CD0A5B3C1817074500DA0342 /* Debug */,
|
||||
CD0A5B3D1817074500DA0342 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = CD0A5B2A1817074500DA0342 /* Project object */;
|
||||
}
|
||||
94
src/beast/demos/unittests/src/AppConfig.h
Normal file
94
src/beast/demos/unittests/src/AppConfig.h
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
|
||||
IMPORTANT! This file is auto-generated each time you save your
|
||||
project - if you alter its contents, your changes may be overwritten!
|
||||
|
||||
There's a section below where you can add your own custom code safely, and the
|
||||
Introjucer will preserve the contents of that block, but the best way to change
|
||||
any of these definitions is by using the Introjucer's project settings.
|
||||
|
||||
Any commented-out settings will assume their default values.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_APPCONFIG_M70QFTRRK__
|
||||
#define __JUCE_APPCONFIG_M70QFTRRK__
|
||||
|
||||
//==============================================================================
|
||||
// [BEGIN_USER_CODE_SECTION]
|
||||
|
||||
// (You can add your own code in this section, and the Introjucer will not overwrite it)
|
||||
|
||||
// [END_USER_CODE_SECTION]
|
||||
|
||||
//==============================================================================
|
||||
#define JUCE_MODULE_AVAILABLE_juce_core 1
|
||||
//#define JUCE_MODULE_AVAILABLE_juce_cryptography 1
|
||||
//#define JUCE_MODULE_AVAILABLE_juce_data_structures 1
|
||||
#define JUCE_MODULE_AVAILABLE_juce_events 1
|
||||
//#define JUCE_MODULE_AVAILABLE_juce_graphics 1
|
||||
//#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1
|
||||
//#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1
|
||||
|
||||
//==============================================================================
|
||||
// juce_core flags:
|
||||
|
||||
#ifndef JUCE_FORCE_DEBUG
|
||||
//#define JUCE_FORCE_DEBUG
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_LOG_ASSERTIONS
|
||||
#define JUCE_LOG_ASSERTIONS 1
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_CHECK_MEMORY_LEAKS
|
||||
//#define JUCE_CHECK_MEMORY_LEAKS
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
|
||||
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_INCLUDE_ZLIB_CODE
|
||||
//#define JUCE_INCLUDE_ZLIB_CODE
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
// juce_graphics flags:
|
||||
|
||||
#ifndef JUCE_USE_COREIMAGE_LOADER
|
||||
#define JUCE_USE_COREIMAGE_LOADER 0
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_USE_DIRECTWRITE
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
||||
#ifndef JUCE_ENABLE_REPAINT_DEBUGGING
|
||||
//#define JUCE_ENABLE_REPAINT_DEBUGGING
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_USE_XSHM
|
||||
//#define JUCE_USE_XSHM
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_USE_XRENDER
|
||||
//#define JUCE_USE_XRENDER
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_USE_XCURSOR
|
||||
//#define JUCE_USE_XCURSOR
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_extra flags:
|
||||
|
||||
#ifndef JUCE_WEB_BROWSER
|
||||
//#define JUCE_WEB_BROWSER
|
||||
#endif
|
||||
|
||||
|
||||
#endif // __JUCE_APPCONFIG_M70QFTRRK__
|
||||
79
src/beast/demos/unittests/src/BeastUnitTests.cpp
Normal file
79
src/beast/demos/unittests/src/BeastUnitTests.cpp
Normal file
@@ -0,0 +1,79 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "BeastUnitTests.h"
|
||||
|
||||
class BeastUnitTests : public beast::UnitTests
|
||||
{
|
||||
public:
|
||||
explicit BeastUnitTests (bool shouldLog)
|
||||
: m_shouldLog (shouldLog)
|
||||
{
|
||||
}
|
||||
|
||||
void logMessage (beast::String const& message)
|
||||
{
|
||||
if (m_shouldLog)
|
||||
std::cout << message.toStdString () << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
bool const m_shouldLog;
|
||||
};
|
||||
|
||||
int runUnitTests (beast::String const& match, beast::String const& format)
|
||||
{
|
||||
bool const shouldLog = format != "junit";
|
||||
|
||||
if (format != "junit" && format != "text" && format != "")
|
||||
{
|
||||
beast::String s;
|
||||
s << "Warning, unknown unittest-format='" << format << "'";
|
||||
// Log::out () << s.toStdString ();
|
||||
}
|
||||
|
||||
BeastUnitTests tr (shouldLog);
|
||||
|
||||
tr.runSelectedTests (match);
|
||||
|
||||
if (format == "junit")
|
||||
{
|
||||
beast::UnitTestUtilities::JUnitXMLFormatter f (tr);
|
||||
|
||||
beast::String const s = f.createDocumentString ();
|
||||
|
||||
std::cout << s.toStdString ();
|
||||
}
|
||||
else
|
||||
{
|
||||
beast::UnitTests::Results const& r (tr.getResults ());
|
||||
|
||||
beast::String s;
|
||||
|
||||
s << "Summary: " <<
|
||||
beast::String (r.suites.size ()) << " suites, " <<
|
||||
beast::String (r.cases) << " cases, " <<
|
||||
beast::String (r.tests) << " tests, " <<
|
||||
beast::String (r.failures) << " failure" << ((r.failures != 1) ? "s" : "") << ".";
|
||||
|
||||
tr.logMessage (s);
|
||||
}
|
||||
|
||||
return tr.anyTestsFailed () ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
||||
27
src/beast/demos/unittests/src/BeastUnitTests.h
Normal file
27
src/beast/demos/unittests/src/BeastUnitTests.h
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef UNITTESTS_BEASTUNITTESTS_H_INCLUDED
|
||||
#define UNITTESTS_BEASTUNITTESTS_H_INCLUDED
|
||||
|
||||
#include "beast_modules.h"
|
||||
|
||||
int runUnitTests (beast::String const& match, beast::String const& format);
|
||||
|
||||
#endif
|
||||
31
src/beast/demos/unittests/src/beast_modules.cpp
Normal file
31
src/beast/demos/unittests/src/beast_modules.cpp
Normal file
@@ -0,0 +1,31 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#include "beast_modules.h"
|
||||
|
||||
#include "modules/beast_core/beast_core.cpp"
|
||||
#include "modules/beast_vflib/beast_vflib.cpp"
|
||||
|
||||
#include "beast/chrono/Chrono.cpp"
|
||||
#include "beast/crypto/Crypto.cpp"
|
||||
#include "beast/strings/Strings.cpp"
|
||||
#include "beast/threads/Threads.cpp"
|
||||
//#include "beast/http/HTTP.cpp"
|
||||
#include "beast/net/Net.cpp"
|
||||
#include "beast/utility/Utility.cpp"
|
||||
33
src/beast/demos/unittests/src/beast_modules.h
Normal file
33
src/beast/demos/unittests/src/beast_modules.h
Normal file
@@ -0,0 +1,33 @@
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file is part of Beast: https://github.com/vinniefalco/Beast
|
||||
Copyright 2013, Vinnie Falco <vinnie.falco@gmail.com>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
|
||||
#ifndef UNITTESTS_BEASTMODULES_H_INCLUDED
|
||||
#define UNITTESTS_BEASTMODULES_H_INCLUDED
|
||||
|
||||
#include "BeastConfig.h"
|
||||
|
||||
#include "modules/beast_core/beast_core.h"
|
||||
#include "modules/beast_vflib/beast_vflib.h"
|
||||
|
||||
#include "beast/Strings.h"
|
||||
#include "beast/Threads.h"
|
||||
#include "beast/SmartPtr.h"
|
||||
#include "beast/Chrono.h"
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user