Commit Graph

382 Commits

Author SHA1 Message Date
Kevin Ring 833fd3f381 Restore hacky support for isolating sqlite. 2024-07-23 13:33:36 -04:00
Kevin Ring 7c9ea84178 Merge remote-tracking branch 'origin/main' into vcpkg-swl 2024-07-02 17:39:20 +10:00
Brian L 74653140f3 Rename to CESIUM_ASSERT 2024-06-20 10:14:38 -06:00
Brian L 91300f9a61 update from main 2024-06-20 09:54:52 -06:00
Kevin Ring ca42500d54 Merge remote-tracking branch 'origin/main' into vcpkg-2 2024-06-05 14:06:47 +10:00
Kevin Ring d18926c1d5 Add missing header. 2024-06-04 16:10:20 +10:00
Kevin Ring 116ee2dcb6 Support `AsyncSystem::all` on void Futures. 2024-06-04 16:06:40 +10:00
Brian L 90e1ce3895 Add additional reject test for explicit throw 2024-05-24 15:04:12 -06:00
Kevin Ring 9e9abb015a Don't hang waiting for a future that rejects. 2024-05-22 17:55:41 +10:00
Brian L 47414f09fb Make our ASSERT macro. Move everything to use this. 2024-05-03 12:50:50 -06:00
Kevin Ring c09e2f0757 Fix race condition. 2024-04-05 14:57:55 +11:00
Kevin Ring cd232f6b50 Add a couple more tests, remove unneeded header. 2024-04-04 21:33:28 +11:00
Kevin Ring 0428735c98 No spin waiting, add SharedFuture::waitInMainThread. 2024-04-04 19:04:10 +11:00
Brian Langevin dbd1ff8bb1
Merge branch 'main' into wait-in-main-thread 2024-03-20 11:20:33 -06:00
Sean Lilley 2bb28a1335 Fix compiling in gcc-13 2024-03-11 10:47:14 -04:00
Kevin Ring 613637dcae Add AsyncSystem::waitInMainThread. 2024-03-04 19:08:23 +11:00
Bradley Austin Davis 24d783fb01 Migrate dependencies to vcpkg 2024-02-24 00:37:37 +00:00
Kevin Ring c341a72806 Revert "Merge pull request #786 from jherico/feature-vcpkg"
This reverts commit 198ed9d4b4, reversing
changes made to 09c1eb76b4.
2024-02-23 09:08:15 +11:00
Bradley Austin Davis e20c154c55 Migrating dependencies to vcpkg 2024-02-02 10:40:59 -08:00
Kevin Ring 86fce69b30 Add Future::thenPassThrough. 2023-11-17 16:33:47 +11:00
Kevin Ring f67776bacb Fix warning number. 2023-09-20 17:21:24 +10:00
Kevin Ring d7a32f2551 Disable warning for async++. 2023-09-20 16:54:25 +10:00
Kevin Ring fcd8c41d13 Include Async++ with target_link_libraries_system. 2023-09-20 16:01:59 +10:00
Kevin Ring 400f832d32 Update npm dependencies and regenerate 3DTiles/glTF classes. 2023-08-16 10:54:01 +10:00
Kevin Ring a59ffac3ef A few more test cases, and tweak the logic so they pass. 2023-07-27 22:00:58 +10:00
Brian L 8abe88353a Add support for cases where we only need Etag or Last-Modified to cache 2023-07-26 09:52:51 -06:00
Brian L 53689f1123 Modify shouldCacheRequest for additional no-cache cases. Add more unit tests 2023-07-25 12:21:13 -06:00
Brian L a72438bec0 Remove redundant code from shouldRevalidateCache() 2023-07-25 11:33:45 -06:00
Brian L 018a7380b8 Refactor using std::optional. Fixup unit tests 2023-07-25 11:11:23 -06:00
Brian L 29f2625708 Add unit tests similar to Google 3D Tiles response headers 2023-07-22 10:06:35 -06:00
Brian L 2227dd6cd9 Back out check for etag and last-modified
We can still cache requests without this. Logic error caught by unit tests.
2023-07-21 16:58:25 -06:00
Brian L ce3bd6ff5a Fix for unit tests (function rename) 2023-07-21 15:45:49 -06:00
Brian L 6733535218 Handle noCache properly
Let it store to cache, but always indicate stale (needs to revalidate)
2023-07-21 15:34:51 -06:00
Brian L 2e966fbeae Modify ResponseCacheControl to support checking for existence of directives with values
Add additional logic to shouldCacheRequest:
- Return false if no etag or last-modified header exists, can't revalidate
- If cache control and max age (or s max age) exists, ignore Expires header
2023-07-21 14:58:30 -06:00
Brian L fa24d9fd92 Let stale-while-revalidate requests now go to disk cache 2023-07-19 11:26:37 -06:00
Brian L 2b0911d4a0 Run clang-format 2023-07-19 10:50:17 -06:00
Brian L 6ab9f41ad5 Add stale-while-revalidate support to ResponseCacheControl class 2023-07-19 10:27:35 -06:00
Kevin Ring 35db73e0cb Fix another warning. 2023-06-01 12:29:44 +10:00
Kevin Ring 4c0f85e897 Fix warning on VS2017 and VS2019. 2023-06-01 12:08:56 +10:00
Kevin Ring 224f392c31 Cleanup and tests. 2023-06-01 11:45:24 +10:00
Joseph Kaile 0284c86f30 use decorator pattern for gunip asset accessor 2023-05-25 13:07:26 -04:00
Joseph Kaile 84f2e8f550 automatically unzip data if gzipped data is detected 2023-05-18 13:11:49 -04:00
Kevin Ring 77c7badf9e Add _CRT_SECURE_NO_WARNINGS to test file.
Previously tinyxml2 was doing this for all our source files.
2023-01-20 16:39:00 +11:00
Kevin Ring f31638fbfa Cleaner RasterOverlay error reporting. 2022-10-18 17:59:23 +11:00
Kevin Ring cc75a318d1 Fix GCC/Clang compiler error. 2022-10-16 00:34:00 +11:00
Kevin Ring fda1d74c52 Formatting. 2022-10-15 16:28:05 +11:00
Kevin Ring 3b7ecc4c0f Raise an event when async Tileset destruction completes. 2022-10-15 15:38:08 +11:00
Bao Tran d34fcfd8c3 Merge branch 'refactor-staging-main' into tile-content-integration 2022-08-16 14:46:09 -04:00
Kevin Ring 28c6310383 Update cache last access time correctly. 2022-08-03 20:56:31 +10:00
Kevin Ring 41881b6ae4 Remove extra blank line. 2022-06-06 14:04:49 +10:00
Kevin Ring 98fd2266e0 Fix bounding volumes. 2022-06-06 14:02:50 +10:00
Joseph Kaile 4ef3e54c7a create connection even if deleting file somehow fails 2022-04-20 14:35:38 -04:00
Joseph Kaile c88a5d84ab delete and recreate sqlite connection if it detects corruption 2022-04-20 13:20:47 -04:00
Joseph Kaile 6379592122 prevent possible crash when parsing bad json string 2022-04-19 17:10:19 -04:00
Bao Tran 9f29daa85f add Promise::resolve(const T&) 2022-03-07 18:27:22 -05:00
Kevin Ring 0e7830d373 Formatting. 2022-01-25 20:39:19 +11:00
Kevin Ring a5e3f11846 Impl->CesiumImpl, TWO_PI->TwoPi. 2022-01-25 11:55:43 +11:00
Nithin Pranesh 0db47a52af
Merge pull request #423 from CesiumGS/unwrapped-shared-futures
Allow a continuation attached to a SharedFuture to return a Future (rather than a normal value)
2022-01-24 10:28:34 -05:00
Nithin Pranesh c07417e0ef Merge branch 'main' into asset-accessor-verb 2022-01-24 10:02:52 -05:00
Kevin Ring 47b8ae2870 Formatting. 2022-01-20 11:28:33 +11:00
Kevin Ring 2869427efe Support unwrapping for shared future continuations. 2022-01-20 11:24:58 +11:00
Kevin Ring f498c631de startRequest -> reqest. 2022-01-20 11:08:23 +11:00
Kevin Ring 518b7cbaf0 Rename IAssetAccessor methods, allow use of any verb. 2022-01-20 11:00:29 +11:00
Sean Lilley f14c6709e1 Misc generator improvements 2021-12-27 13:31:29 -05:00
Sean Lilley 2cdcb92e20 Namespace cleanup 2021-12-02 18:34:22 -05:00
Kevin Ring 0eaed9270f Fix mac segfault by putting repeated types in unnamed namespace. 2021-11-24 19:19:56 -05:00
Bao Tran e88cd67476 fix compiler error for shared future 2021-11-16 13:09:30 -05:00
Nithin Pranesh 664f08370f Move forward arbitrary future time to fix test 2021-10-21 13:39:40 -04:00
Sean Lilley 52283f3359 Fix includes 2021-10-11 17:28:44 -04:00
Marco Hutter 9855400417 Use proper relative paths in all public headers 2021-09-28 17:23:07 +02:00
Marco Hutter d840015664 Formatting, applied proper order for relative paths 2021-09-28 14:49:53 +02:00
Marco Hutter 50a52ed084 Formatting - WIP
Noticed a wrong include order, to be fixed with next commits.
2021-09-28 14:47:55 +02:00
Marco Hutter b0a2b59ebf Use proper relative paths in CesiumAsync/Impl 2021-09-28 14:44:47 +02:00
Marco Hutter 27fdd26e27 Merge remote-tracking branch 'origin/main' into include-style-fixes
# Conflicts:
#	Cesium3DTilesSelection/include/Cesium3DTilesSelection/GltfContent.h
#	Cesium3DTilesSelection/src/Batched3DModelContent.cpp
#	Cesium3DTilesSelection/src/CompositeContent.cpp
#	Cesium3DTilesSelection/src/ExternalTilesetContent.cpp
#	Cesium3DTilesSelection/src/GltfContent.cpp
#	Cesium3DTilesSelection/src/QuantizedMeshContent.cpp
#	Cesium3DTilesSelection/src/Tile.cpp
#	Cesium3DTilesSelection/src/TileContentFactory.cpp
#	Cesium3DTilesSelection/src/calcQuadtreeMaxGeometricError.h
2021-09-28 14:38:33 +02:00
Kevin Ring 62ff744d4f Treat `<something.h>` as third-party include. 2021-09-27 10:46:26 +10:00
Marco Hutter 0e827f7afd Updated includes based on clang-format with Regroup
This MAINLY inserted some blank lines between
the blocks.
2021-09-26 17:46:27 +02:00
Kevin Ring 270a709ca3 Merge remote-tracking branch 'origin/main' into fix-vs-warnings 2021-09-24 17:35:10 +10:00
Kevin Ring acb2294342 Merge remote-tracking branch 'origin/main' into async-tile-load 2021-09-24 17:09:25 +10:00
Marco Hutter 01cf10590c Formatting 2021-09-19 15:43:55 +02:00
Marco Hutter 11048cac88 Include fix for rapidjson
Accidentally used forwards in implementation
2021-09-19 15:37:50 +02:00
Marco Hutter 6a6b3b60c8 Include style fixes for CesiumAsync 2021-09-19 15:15:13 +02:00
Marco Hutter bb48dd1c86 Merge remote-tracking branch 'origin/main' into fix-vs-warnings
# Conflicts:
#	Cesium3DTilesSelection/src/Tileset.cpp
2021-09-17 21:25:48 +02:00
Kevin Ring e15d172c6f Formatting. 2021-09-15 23:55:37 +10:00
Kevin Ring 329875609a Allow unwrapped Future continuations to be mutable. 2021-09-15 23:54:09 +10:00
Marco Hutter 46c9c7ec7d Formatting after adding const 2021-09-15 15:38:06 +02:00
Marco Hutter de8145ab9e Added missing const keyword
C26496: The variable ... is assigned only once, mark it as const
2021-09-15 15:37:29 +02:00
Marco Hutter a84b09c238 Added further noexcept specifiers 2021-09-15 02:35:40 +02:00
Marco Hutter 588c5a1ab9 Add noexcept for default constructors
C26455: Default constructor may not throw.
2021-09-15 01:35:34 +02:00
Marco Hutter 5949134156 Fixed noexcept specifiers
It's hard to make them consisten for the JSON part...
2021-09-15 00:54:54 +02:00
Marco Hutter 97a2757e39 Added missing noexcept specifiers
Reported as "C26440 Function ... can be declared noexcept"
2021-09-14 16:12:50 +02:00
Ian Lilley 265f0be89f fixed formatting 2021-09-08 15:30:36 -04:00
Ian Lilley 51fc68e97b fixed cachedControlIter type 2021-09-08 15:18:47 -04:00
Kevin Ring c2aa1885cd Add `Future::isReady`. 2021-08-23 19:44:36 +10:00
Kevin Ring b64e7dc0d3 Revert "Add Future::isReady."
This reverts commit 168f2c21aa.
2021-08-23 19:43:43 +10:00
Kevin Ring 168f2c21aa Add Future::isReady. 2021-08-23 19:40:23 +10:00
Kevin Ring 84d9d94725 Formatting. 2021-08-04 14:32:09 +10:00
Kevin Ring 5fa7f7237b Fix compile errors when tracing is enabled. 2021-08-04 14:20:38 +10:00
Kevin Ring 883c40f4aa Enabling chaining to another Future in a catch. 2021-07-23 15:43:51 +10:00
Kevin Ring b7df34b49c Allow catching a shared future. 2021-07-23 13:41:35 +10:00
Kevin Ring f1ea6bd4ea Allow use of `all` with SharedFutures. 2021-07-16 15:27:58 +10:00
Kevin Ring 76b8e283a7 Fix clang error. 2021-07-16 12:46:59 +10:00
Kevin Ring d755d1c7e5 Add doc for share method. 2021-07-16 12:41:59 +10:00
Kevin Ring 3f45992843 More tests for SharedFuture 2021-07-16 12:36:54 +10:00
Kevin Ring ae04eb1f8c Fix build. 2021-07-16 12:28:53 +10:00
Kevin Ring 7d5823478f Merge remote-tracking branch 'origin/future-all' into shared-future 2021-07-16 12:16:40 +10:00
Kevin Ring 3bd41c440f Merge remote-tracking branch 'origin/async-system-tests' into future-all 2021-07-16 12:16:19 +10:00
Kevin Ring f86ab223b7 Fix race condition in tests. 2021-07-16 11:09:17 +10:00
Kevin Ring 858f7ef5eb WIP SharedFuture 2021-07-15 23:37:55 +10:00
Kevin Ring e89b5f01f6 Formatting. 2021-07-15 18:03:13 +10:00
Kevin Ring 2079b56624 Add catchImmediately, more tests. 2021-07-15 18:02:00 +10:00
Kevin Ring 7dff5a9fc9 Formatting. 2021-07-15 14:06:58 +10:00
Kevin Ring 7f6f1e3687 Add `all` method to AsyncSystem. 2021-07-15 14:06:29 +10:00
Kevin Ring 99fe6a35ac Formatting. 2021-07-14 21:32:24 +10:00
Kevin Ring e6e0561641 Move Promise to a separate file. 2021-07-14 21:31:52 +10:00
Kevin Ring 4c541cda73 Fix forwarding for WithTracing and unwrapFuture. 2021-07-14 21:25:16 +10:00
Kevin Ring d836b63b51 Rename dispatchZeroOrOneMainThreadTask to dispatchOneMainThreadTask.
And also improve its doc.
2021-07-14 17:01:51 +10:00
Kevin Ring f6f7ba4450 Merge remote-tracking branch 'origin/main' into async-system-tests 2021-07-14 16:56:54 +10:00
baothientran 050ef4019c
Merge pull request #275 from CesiumGS/catch2-with-angle
Use angle brackets to #include catch2.
2021-07-08 23:00:31 -04:00
Kevin Ring ae8977e70f Fix a mysterious thread_local related segfault. 2021-07-08 22:13:12 +10:00
Kevin Ring ad11fffb42 Add specialization for Promise<void>. 2021-07-07 14:40:10 +10:00
Kevin Ring a1ebce1dcd Allow direct creation of a Promise.
Rather than the JavaScript-like create a future by providing a callback
that is given a promise. This can be less exception safe (allow
exceptions to escape from a Future-returning method instead of being
turned into Promise rejection) but also tends to be much easier to work
with.
2021-07-07 14:12:15 +10:00
Kevin Ring b2ac5a70f6 Fix a race condition in a test. 2021-07-07 00:53:54 +10:00
Kevin Ring 8f7570ccdd Avoid slicing exception objects. 2021-07-07 00:32:46 +10:00
Kevin Ring 355c486683 Make Future::wait return T and throw on reject. 2021-07-06 23:29:59 +10:00
Kevin Ring 17a16a4dc7 AsyncSystem test improvements. 2021-07-06 22:12:42 +10:00
Kevin Ring 2c88c6c282 Formatting. 2021-07-06 19:02:18 +10:00
Kevin Ring 490114c648 Add some tests for AsyncSystem. 2021-07-06 19:01:46 +10:00
Kevin Ring 4e45bab460 Use angle brackets to #include catch2. 2021-07-04 22:57:11 +10:00
Kevin Ring bf25e2b925 Changes from review. 2021-06-30 09:53:24 +10:00
Kevin Ring a74941bf53 Refactor schedulers. 2021-06-27 22:37:32 +10:00
Kevin Ring 287bde9573 typedef -> using 2021-06-26 23:25:08 +10:00
Kevin Ring f0ee99a714 Actually track the thread pool threads. 2021-06-26 23:14:12 +10:00
Kevin Ring 38a1faea12 Better names for tracing macros. 2021-06-26 00:11:52 +10:00
Kevin Ring 8b7832ba83 WIP overhaul of macros for tracing across threads. 2021-06-25 21:11:40 +10:00
Kevin Ring a711e01f24 Add doc about AsyncSystem lifetime woes. 2021-06-24 17:06:34 +10:00
Kevin Ring 669bdefeec Fix clang warnings. 2021-06-22 21:00:28 +10:00
Kevin Ring e0865d075a Formatting. 2021-06-22 20:44:54 +10:00
Kevin Ring 43c5b3d474 Fix test failures. 2021-06-22 18:17:32 +10:00
Kevin Ring 628b11325d Formatting. 2021-06-22 17:35:53 +10:00
Kevin Ring 6ece726757 Fix problems when tracing is disabled. 2021-06-22 17:19:33 +10:00
Kevin Ring 0fa144f516 Make "immediately" the default for continuations. 2021-06-22 15:31:30 +10:00
Kevin Ring f7e4bb9d66 Allow trace begin/end to be outside async process. 2021-06-22 14:06:50 +10:00
Kevin Ring e9fdefc99b Add some doc. 2021-06-22 13:27:10 +10:00
Kevin Ring 09b4e393de More cleanup of tracing macros. 2021-06-22 12:26:07 +10:00
Kevin Ring 44a69d4cda Clean up tracing API. 2021-06-21 17:33:59 +10:00
Kevin Ring fa285f7d29 Access cache DB from a dedicated thread. 2021-06-16 17:29:47 +10:00
Kevin Ring 5b88b652b7 Make ContinuationFutureType actually a Future. 2021-06-16 15:22:29 +10:00
Kevin Ring 109201530a Split AsyncSystem.h into multiple files. 2021-06-16 15:06:42 +10:00
Kevin Ring 161fe0044e Fix up CatchFunction with a parameter. 2021-06-16 12:50:21 +10:00
Kevin Ring 599d60d464 More efficient catch, less duplication. 2021-06-15 22:17:43 +10:00