react-native-windows 0.83.2 → 0.83.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Directory.Build.props +2 -17
- package/Folly/ThreadNameStub.cpp +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +17 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +8 -4
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
- package/PropertySheets/CIBuildOptimizations.props +2 -2
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/NuGet.LockFile.props +9 -1
- package/PropertySheets/React.Cpp.props +3 -3
- package/PropertySheets/WinUI.props +2 -1
- package/ReactCommon/ReactCommon.vcxproj +0 -5
- package/Scripts/ConfigureYarnPackageAgeGate.ps1 +25 -0
- package/Scripts/EnableInternalWinAppSDKFeed.ps1 +12 -5
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +103 -6
- package/Scripts/RunRnwInitWindows.js +37 -0
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
- package/Scripts/UpdateNightlyDependencies.ps1 +47 -0
- package/Scripts/creaternwapp.cmd +30 -17
- package/Scripts/creaternwlib.cmd +36 -23
- package/Shared/Shared.vcxitems +2 -0
- package/{Folly → external}/.clang-format +0 -1
- package/external/External.vcxitems +10 -0
- package/external/fast-float/.syncignore +10 -0
- package/external/fast-float/LICENSE-APACHE +190 -0
- package/external/fast-float/LICENSE-BOOST +23 -0
- package/external/fast-float/LICENSE-MIT +27 -0
- package/external/fast-float/README.md +545 -0
- package/external/fast-float/cgmanifest.json +15 -0
- package/external/fast-float/fast-float.vcxitems +14 -0
- package/external/fast-float/include/fast_float/ascii_number.h +588 -0
- package/external/fast-float/include/fast_float/bigint.h +638 -0
- package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
- package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
- package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
- package/external/fast-float/include/fast_float/fast_float.h +59 -0
- package/external/fast-float/include/fast_float/fast_table.h +708 -0
- package/external/fast-float/include/fast_float/float_common.h +1240 -0
- package/external/fast-float/include/fast_float/parse_number.h +399 -0
- package/external/fast-float/sync-config.json +8 -0
- package/external/fmt/.syncignore +10 -0
- package/external/fmt/CONTRIBUTING.md +20 -0
- package/external/fmt/LICENSE +27 -0
- package/external/fmt/README.md +484 -0
- package/external/fmt/doc/ChangeLog-old.md +3290 -0
- package/external/fmt/doc/api.md +650 -0
- package/external/fmt/doc/fmt.css +61 -0
- package/external/fmt/doc/fmt.js +4 -0
- package/external/fmt/doc/get-started.md +222 -0
- package/external/fmt/doc/index.md +151 -0
- package/external/fmt/doc/perf.svg +1 -0
- package/external/fmt/doc/python-license.txt +290 -0
- package/external/fmt/doc/syntax.md +887 -0
- package/external/fmt/fmt.vcxitems +28 -0
- package/external/fmt/include/fmt/args.h +228 -0
- package/external/fmt/include/fmt/base.h +3077 -0
- package/external/fmt/include/fmt/chrono.h +2432 -0
- package/external/fmt/include/fmt/color.h +612 -0
- package/external/fmt/include/fmt/compile.h +529 -0
- package/external/fmt/include/fmt/core.h +5 -0
- package/external/fmt/include/fmt/format-inl.h +1928 -0
- package/external/fmt/include/fmt/format.h +4427 -0
- package/external/fmt/include/fmt/os.h +439 -0
- package/external/fmt/include/fmt/ostream.h +211 -0
- package/external/fmt/include/fmt/printf.h +656 -0
- package/external/fmt/include/fmt/ranges.h +882 -0
- package/external/fmt/include/fmt/std.h +699 -0
- package/external/fmt/include/fmt/xchar.h +322 -0
- package/external/fmt/src/fmt.cc +135 -0
- package/external/fmt/src/format.cc +43 -0
- package/external/fmt/src/os.cc +403 -0
- package/external/fmt/sync-config.json +8 -0
- package/external/folly/.syncignore +60 -0
- package/external/folly/LICENSE +200 -0
- package/external/folly/README.md +263 -0
- package/{fmt → external/folly/folly}/.clang-format +0 -1
- package/external/folly/folly/AtomicHashArray-inl.h +546 -0
- package/external/folly/folly/AtomicHashArray.h +431 -0
- package/external/folly/folly/AtomicHashMap-inl.h +653 -0
- package/external/folly/folly/AtomicHashMap.h +484 -0
- package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
- package/external/folly/folly/AtomicLinkedList.h +110 -0
- package/external/folly/folly/AtomicUnorderedMap.h +522 -0
- package/external/folly/folly/BUCK +1631 -0
- package/external/folly/folly/BUILD_MODE.bzl +72 -0
- package/external/folly/folly/Benchmark.cpp +986 -0
- package/external/folly/folly/Benchmark.h +680 -0
- package/external/folly/folly/BenchmarkUtil.h +47 -0
- package/external/folly/folly/Bits.h +17 -0
- package/external/folly/folly/CMakeLists.txt +110 -0
- package/external/folly/folly/CPortability.h +338 -0
- package/external/folly/folly/CancellationToken-inl.h +449 -0
- package/external/folly/folly/CancellationToken.cpp +250 -0
- package/external/folly/folly/CancellationToken.h +365 -0
- package/external/folly/folly/Chrono.h +132 -0
- package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
- package/external/folly/folly/ClockGettimeWrappers.h +29 -0
- package/external/folly/folly/ConcurrentBitSet.h +157 -0
- package/external/folly/folly/ConcurrentLazy.h +74 -0
- package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
- package/external/folly/folly/ConcurrentSkipList.h +824 -0
- package/external/folly/folly/ConstructorCallbackList.h +158 -0
- package/external/folly/folly/Conv.h +2026 -0
- package/external/folly/folly/CppAttributes.h +170 -0
- package/external/folly/folly/CpuId.h +297 -0
- package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
- package/external/folly/folly/Demangle.cpp +255 -0
- package/external/folly/folly/Demangle.h +73 -0
- package/external/folly/folly/DiscriminatedPtr.h +236 -0
- package/external/folly/folly/DynamicConverter.h +17 -0
- package/external/folly/folly/Exception.h +150 -0
- package/external/folly/folly/ExceptionString.cpp +51 -0
- package/external/folly/folly/ExceptionString.h +33 -0
- package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
- package/external/folly/folly/ExceptionWrapper.cpp +37 -0
- package/external/folly/folly/ExceptionWrapper.h +377 -0
- package/external/folly/folly/Executor.cpp +111 -0
- package/external/folly/folly/Executor.h +351 -0
- package/external/folly/folly/Expected.h +1725 -0
- package/external/folly/folly/FBString.h +2888 -0
- package/external/folly/folly/FBVector.h +17 -0
- package/external/folly/folly/File.cpp +180 -0
- package/external/folly/folly/File.h +177 -0
- package/external/folly/folly/FileUtil.cpp +378 -0
- package/external/folly/folly/FileUtil.h +332 -0
- package/external/folly/folly/Fingerprint.cpp +135 -0
- package/external/folly/folly/Fingerprint.h +289 -0
- package/external/folly/folly/FixedString.h +2965 -0
- package/external/folly/folly/FollyMemcpy.cpp +30 -0
- package/external/folly/folly/FollyMemcpy.h +23 -0
- package/external/folly/folly/FollyMemset.cpp +29 -0
- package/external/folly/folly/FollyMemset.h +25 -0
- package/external/folly/folly/Format-inl.h +1152 -0
- package/external/folly/folly/Format.cpp +429 -0
- package/external/folly/folly/Format.h +463 -0
- package/external/folly/folly/FormatArg.h +285 -0
- package/external/folly/folly/FormatTraits.h +65 -0
- package/external/folly/folly/Function.h +1159 -0
- package/external/folly/folly/GLog.h +85 -0
- package/external/folly/folly/GroupVarint.cpp +153 -0
- package/external/folly/folly/GroupVarint.h +630 -0
- package/external/folly/folly/Hash.h +20 -0
- package/external/folly/folly/IPAddress.cpp +490 -0
- package/external/folly/folly/IPAddress.h +667 -0
- package/external/folly/folly/IPAddressException.h +82 -0
- package/external/folly/folly/IPAddressV4.cpp +305 -0
- package/external/folly/folly/IPAddressV4.h +495 -0
- package/external/folly/folly/IPAddressV6.cpp +541 -0
- package/external/folly/folly/IPAddressV6.h +627 -0
- package/external/folly/folly/Indestructible.h +164 -0
- package/external/folly/folly/IndexedMemPool.h +550 -0
- package/external/folly/folly/IntrusiveList.h +17 -0
- package/external/folly/folly/Lazy.h +142 -0
- package/external/folly/folly/Likely.h +76 -0
- package/external/folly/folly/MPMCPipeline.h +280 -0
- package/external/folly/folly/MPMCQueue.h +1556 -0
- package/external/folly/folly/MacAddress.cpp +188 -0
- package/external/folly/folly/MacAddress.h +260 -0
- package/external/folly/folly/MapUtil.h +17 -0
- package/external/folly/folly/Math.h +258 -0
- package/external/folly/folly/MaybeManagedPtr.h +120 -0
- package/external/folly/folly/Memory.h +900 -0
- package/external/folly/folly/MicroLock.cpp +76 -0
- package/external/folly/folly/MicroLock.h +354 -0
- package/external/folly/folly/MicroSpinLock.h +17 -0
- package/external/folly/folly/MoveWrapper.h +76 -0
- package/external/folly/folly/ObserverContainer.h +1026 -0
- package/external/folly/folly/Optional.h +743 -0
- package/external/folly/folly/Overload.h +325 -0
- package/external/folly/folly/PackedSyncPtr.h +147 -0
- package/external/folly/folly/Padded.h +464 -0
- package/external/folly/folly/Poly-inl.h +230 -0
- package/external/folly/folly/Poly.h +1095 -0
- package/external/folly/folly/PolyException.h +43 -0
- package/external/folly/folly/Portability.h +644 -0
- package/external/folly/folly/Preprocessor.h +236 -0
- package/external/folly/folly/ProducerConsumerQueue.h +182 -0
- package/external/folly/folly/RWSpinLock.h +17 -0
- package/external/folly/folly/Random-inl.h +86 -0
- package/external/folly/folly/Random.cpp +184 -0
- package/external/folly/folly/Random.h +434 -0
- package/external/folly/folly/Range.h +1772 -0
- package/external/folly/folly/Replaceable.h +636 -0
- package/external/folly/folly/ScopeGuard.cpp +29 -0
- package/external/folly/folly/ScopeGuard.h +420 -0
- package/external/folly/folly/SharedMutex.cpp +81 -0
- package/external/folly/folly/SharedMutex.h +1751 -0
- package/external/folly/folly/Singleton-inl.h +332 -0
- package/external/folly/folly/Singleton.cpp +512 -0
- package/external/folly/folly/Singleton.h +891 -0
- package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
- package/external/folly/folly/SingletonThreadLocal.h +263 -0
- package/external/folly/folly/SocketAddress.cpp +786 -0
- package/external/folly/folly/SocketAddress.h +768 -0
- package/external/folly/folly/SpinLock.h +55 -0
- package/external/folly/folly/String-inl.h +668 -0
- package/external/folly/folly/String.cpp +777 -0
- package/external/folly/folly/String.h +767 -0
- package/external/folly/folly/Subprocess.cpp +1142 -0
- package/external/folly/folly/Subprocess.h +1055 -0
- package/external/folly/folly/Synchronized.h +1833 -0
- package/external/folly/folly/SynchronizedPtr.h +106 -0
- package/external/folly/folly/ThreadCachedInt.h +175 -0
- package/external/folly/folly/ThreadLocal.h +478 -0
- package/external/folly/folly/TimeoutQueue.cpp +78 -0
- package/external/folly/folly/TimeoutQueue.h +123 -0
- package/external/folly/folly/TokenBucket.h +673 -0
- package/external/folly/folly/Traits.h +1442 -0
- package/external/folly/folly/Try-inl.h +372 -0
- package/external/folly/folly/Try.cpp +23 -0
- package/external/folly/folly/Try.h +728 -0
- package/external/folly/folly/UTF8String.h +56 -0
- package/external/folly/folly/Unicode.cpp +201 -0
- package/external/folly/folly/Unicode.h +94 -0
- package/external/folly/folly/Unit.h +65 -0
- package/external/folly/folly/Uri-inl.h +101 -0
- package/external/folly/folly/Uri.cpp +190 -0
- package/external/folly/folly/Uri.h +142 -0
- package/external/folly/folly/Utility.h +932 -0
- package/external/folly/folly/VERSION +1 -0
- package/external/folly/folly/Varint.h +230 -0
- package/external/folly/folly/VirtualExecutor.h +17 -0
- package/external/folly/folly/algorithm/simd/BUCK +47 -0
- package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
- package/external/folly/folly/algorithm/simd/Contains.h +116 -0
- package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
- package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
- package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
- package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
- package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
- package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
- package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
- package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
- package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
- package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
- package/external/folly/folly/base64.h +264 -0
- package/external/folly/folly/chrono/BUCK +29 -0
- package/external/folly/folly/chrono/Clock.h +65 -0
- package/external/folly/folly/chrono/Conv.h +712 -0
- package/external/folly/folly/chrono/test/BUCK +26 -0
- package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
- package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
- package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
- package/external/folly/folly/concurrency/BUCK +170 -0
- package/external/folly/folly/concurrency/CacheLocality.h +460 -0
- package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
- package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
- package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
- package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
- package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
- package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
- package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
- package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
- package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
- package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
- package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
- package/external/folly/folly/concurrency/container/BUCK +77 -0
- package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
- package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
- package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
- package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
- package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
- package/external/folly/folly/concurrency/container/test/BUCK +75 -0
- package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
- package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
- package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
- package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
- package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
- package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
- package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
- package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
- package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
- package/external/folly/folly/concurrency/memory/BUCK +53 -0
- package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
- package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
- package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
- package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
- package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
- package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
- package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
- package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
- package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
- package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
- package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
- package/external/folly/folly/concurrency/test/BUCK +229 -0
- package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
- package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
- package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
- package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
- package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
- package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
- package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
- package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
- package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
- package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
- package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
- package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
- package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
- package/external/folly/folly/container/Access.h +57 -0
- package/external/folly/folly/container/Array.h +87 -0
- package/external/folly/folly/container/BUCK +353 -0
- package/external/folly/folly/container/BitIterator.h +203 -0
- package/external/folly/folly/container/Enumerate.h +162 -0
- package/external/folly/folly/container/EvictingCacheMap.h +730 -0
- package/external/folly/folly/container/F14.md +300 -0
- package/external/folly/folly/container/F14Map-fwd.h +113 -0
- package/external/folly/folly/container/F14Map.h +2108 -0
- package/external/folly/folly/container/F14Set-fwd.h +95 -0
- package/external/folly/folly/container/F14Set.h +1603 -0
- package/external/folly/folly/container/FBVector.h +1711 -0
- package/external/folly/folly/container/Foreach-inl.h +316 -0
- package/external/folly/folly/container/Foreach.h +209 -0
- package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
- package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
- package/external/folly/folly/container/IntrusiveHeap.h +268 -0
- package/external/folly/folly/container/IntrusiveList.h +131 -0
- package/external/folly/folly/container/Iterator.h +843 -0
- package/external/folly/folly/container/MapUtil.h +376 -0
- package/external/folly/folly/container/Merge.h +90 -0
- package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
- package/external/folly/folly/container/RegexMatchCache.h +699 -0
- package/external/folly/folly/container/Reserve.h +109 -0
- package/external/folly/folly/container/SparseByteSet.h +123 -0
- package/external/folly/folly/container/View.h +81 -0
- package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
- package/external/folly/folly/container/detail/BUCK +115 -0
- package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
- package/external/folly/folly/container/detail/F14Defaults.h +34 -0
- package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
- package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
- package/external/folly/folly/container/detail/F14Mask.h +235 -0
- package/external/folly/folly/container/detail/F14Policy.h +1523 -0
- package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
- package/external/folly/folly/container/detail/F14Table.cpp +71 -0
- package/external/folly/folly/container/detail/F14Table.h +2680 -0
- package/external/folly/folly/container/detail/Util.h +303 -0
- package/external/folly/folly/container/detail/tape_detail.h +135 -0
- package/external/folly/folly/container/detail/test/BUCK +14 -0
- package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
- package/external/folly/folly/container/heap_vector_types.h +1683 -0
- package/external/folly/folly/container/range_traits.h +81 -0
- package/external/folly/folly/container/small_vector.h +1476 -0
- package/external/folly/folly/container/sorted_vector_types.h +1652 -0
- package/external/folly/folly/container/span.h +408 -0
- package/external/folly/folly/container/tape.h +608 -0
- package/external/folly/folly/container/test/.clang-tidy +12 -0
- package/external/folly/folly/container/test/AccessTest.cpp +138 -0
- package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
- package/external/folly/folly/container/test/BUCK +568 -0
- package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
- package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
- package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
- package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
- package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
- package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
- package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
- package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
- package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
- package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
- package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
- package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
- package/external/folly/folly/container/test/F14TestUtil.h +117 -0
- package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
- package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
- package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
- package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
- package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
- package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
- package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
- package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
- package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
- package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
- package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
- package/external/folly/folly/container/test/MergeTest.cpp +66 -0
- package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
- package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
- package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
- package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
- package/external/folly/folly/container/test/TrackingTypes.h +584 -0
- package/external/folly/folly/container/test/UtilTest.cpp +609 -0
- package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
- package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
- package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
- package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
- package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
- package/external/folly/folly/container/test/span_test.cpp +520 -0
- package/external/folly/folly/container/test/tape_bench.cpp +200 -0
- package/external/folly/folly/container/test/tape_test.cpp +590 -0
- package/external/folly/folly/defs.bzl +238 -0
- package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
- package/external/folly/folly/detail/AsyncTrace.h +44 -0
- package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
- package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
- package/external/folly/folly/detail/BUCK +406 -0
- package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
- package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
- package/external/folly/folly/detail/FileUtilDetail.h +85 -0
- package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
- package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
- package/external/folly/folly/detail/Futex-inl.h +123 -0
- package/external/folly/folly/detail/Futex.cpp +273 -0
- package/external/folly/folly/detail/Futex.h +109 -0
- package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
- package/external/folly/folly/detail/IPAddress.cpp +37 -0
- package/external/folly/folly/detail/IPAddress.h +57 -0
- package/external/folly/folly/detail/IPAddressSource.h +278 -0
- package/external/folly/folly/detail/Iterators.h +156 -0
- package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
- package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
- package/external/folly/folly/detail/MemoryIdler.h +216 -0
- package/external/folly/folly/detail/PerfScoped.cpp +112 -0
- package/external/folly/folly/detail/PerfScoped.h +70 -0
- package/external/folly/folly/detail/PolyDetail.h +921 -0
- package/external/folly/folly/detail/RangeCommon.cpp +55 -0
- package/external/folly/folly/detail/RangeCommon.h +93 -0
- package/external/folly/folly/detail/RangeSse42.cpp +198 -0
- package/external/folly/folly/detail/RangeSse42.h +30 -0
- package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
- package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
- package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
- package/external/folly/folly/detail/Singleton.h +34 -0
- package/external/folly/folly/detail/SlowFingerprint.h +90 -0
- package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
- package/external/folly/folly/detail/SocketFastOpen.h +89 -0
- package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
- package/external/folly/folly/detail/SplitStringSimd.h +151 -0
- package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
- package/external/folly/folly/detail/Sse.cpp +35 -0
- package/external/folly/folly/detail/Sse.h +45 -0
- package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
- package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
- package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
- package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
- package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
- package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
- package/external/folly/folly/detail/TurnSequencer.h +295 -0
- package/external/folly/folly/detail/TypeList.h +551 -0
- package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
- package/external/folly/folly/detail/UniqueInstance.h +68 -0
- package/external/folly/folly/detail/base64_detail/BUCK +102 -0
- package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
- package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
- package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
- package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
- package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
- package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
- package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
- package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
- package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
- package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
- package/external/folly/folly/detail/base64_detail/README.md +392 -0
- package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
- package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
- package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
- package/external/folly/folly/detail/test/BUCK +118 -0
- package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
- package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
- package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
- package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
- package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
- package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
- package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
- package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
- package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
- package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
- package/external/folly/folly/detail/thread_local_globals.h +36 -0
- package/external/folly/folly/docs/AtomicHashMap.md +134 -0
- package/external/folly/folly/docs/Benchmark.md +310 -0
- package/external/folly/folly/docs/Conv.md +291 -0
- package/external/folly/folly/docs/Dynamic.md +220 -0
- package/external/folly/folly/docs/DynamicConverter.md +71 -0
- package/external/folly/folly/docs/Executors.md +63 -0
- package/external/folly/folly/docs/FBString.md +46 -0
- package/external/folly/folly/docs/FBVector.md +200 -0
- package/external/folly/folly/docs/Fbvector--graphical_solutions.png +0 -0
- package/external/folly/folly/docs/Format.md +177 -0
- package/external/folly/folly/docs/Function.md +92 -0
- package/external/folly/folly/docs/Futures.md +263 -0
- package/external/folly/folly/docs/GroupVarint.md +46 -0
- package/external/folly/folly/docs/Histogram.md +104 -0
- package/external/folly/folly/docs/MapUtils.md +80 -0
- package/external/folly/folly/docs/Overview.md +263 -0
- package/external/folly/folly/docs/PackedSyncPtr.md +77 -0
- package/external/folly/folly/docs/Poly.md +500 -0
- package/external/folly/folly/docs/ProducerConsumerQueue.md +82 -0
- package/external/folly/folly/docs/Rcu.md +218 -0
- package/external/folly/folly/docs/SmallLocks.md +24 -0
- package/external/folly/folly/docs/Synchronized.md +793 -0
- package/external/folly/folly/docs/ThreadCachedInt.md +98 -0
- package/external/folly/folly/docs/ThreadLocal.md +105 -0
- package/external/folly/folly/docs/Traits.md +161 -0
- package/external/folly/folly/docs/small_vector.md +64 -0
- package/external/folly/folly/docs/style.css +23 -0
- package/external/folly/folly/dynamic-inl.h +17 -0
- package/external/folly/folly/dynamic.h +17 -0
- package/external/folly/folly/folly_extended_library.bzl +28 -0
- package/external/folly/folly/functional/ApplyTuple.h +204 -0
- package/external/folly/folly/functional/BUCK +57 -0
- package/external/folly/folly/functional/Invoke.h +880 -0
- package/external/folly/folly/functional/Partial.h +130 -0
- package/external/folly/folly/functional/protocol.h +203 -0
- package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
- package/external/folly/folly/functional/test/BUCK +57 -0
- package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
- package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
- package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
- package/external/folly/folly/functional/test/traits_test.cpp +551 -0
- package/external/folly/folly/functional/traits.h +675 -0
- package/external/folly/folly/hash/BUCK +86 -0
- package/external/folly/folly/hash/Checksum.cpp +275 -0
- package/external/folly/folly/hash/Checksum.h +94 -0
- package/external/folly/folly/hash/FarmHash.h +46 -0
- package/external/folly/folly/hash/Hash.h +1045 -0
- package/external/folly/folly/hash/MurmurHash.h +86 -0
- package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
- package/external/folly/folly/hash/SpookyHashV1.h +307 -0
- package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
- package/external/folly/folly/hash/SpookyHashV2.h +339 -0
- package/external/folly/folly/hash/detail/BUCK +26 -0
- package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
- package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
- package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
- package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
- package/external/folly/folly/hash/test/BUCK +132 -0
- package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
- package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
- package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
- package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
- package/external/folly/folly/hash/test/HashTest.cpp +997 -0
- package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
- package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
- package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
- package/external/folly/folly/hash/test/traits_test.cpp +69 -0
- package/external/folly/folly/hash/traits.h +115 -0
- package/external/folly/folly/json/BUCK +155 -0
- package/external/folly/folly/json/DynamicConverter.h +464 -0
- package/external/folly/folly/json/DynamicParser-inl.h +316 -0
- package/external/folly/folly/json/DynamicParser.cpp +198 -0
- package/external/folly/folly/json/DynamicParser.h +394 -0
- package/external/folly/folly/json/JSONSchema.cpp +1030 -0
- package/external/folly/folly/json/JSONSchema.h +73 -0
- package/external/folly/folly/json/JsonMockUtil.h +73 -0
- package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
- package/external/folly/folly/json/JsonTestUtil.h +88 -0
- package/external/folly/folly/json/bser/BUCK +24 -0
- package/external/folly/folly/json/bser/Bser.h +107 -0
- package/external/folly/folly/json/bser/Dump.cpp +253 -0
- package/external/folly/folly/json/bser/Load.cpp +246 -0
- package/external/folly/folly/json/bser/test/BUCK +14 -0
- package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
- package/external/folly/folly/json/dynamic.cpp +552 -0
- package/external/folly/folly/json/dynamic.h +1346 -0
- package/external/folly/folly/json/json.h +238 -0
- package/external/folly/folly/json/json_patch.cpp +325 -0
- package/external/folly/folly/json/json_patch.h +126 -0
- package/external/folly/folly/json/json_pointer.cpp +114 -0
- package/external/folly/folly/json/json_pointer.h +87 -0
- package/external/folly/folly/json/test/BUCK +147 -0
- package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
- package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
- package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
- package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
- package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
- package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
- package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
- package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
- package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
- package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
- package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
- package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
- package/external/folly/folly/json/tool/BUCK +13 -0
- package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
- package/external/folly/folly/json.h +17 -0
- package/external/folly/folly/json_patch.h +17 -0
- package/external/folly/folly/json_pointer.h +17 -0
- package/external/folly/folly/lang/Access.h +29 -0
- package/external/folly/folly/lang/Align.h +240 -0
- package/external/folly/folly/lang/Aligned.h +92 -0
- package/external/folly/folly/lang/Assume.h +82 -0
- package/external/folly/folly/lang/BUCK +287 -0
- package/external/folly/folly/lang/Badge.h +108 -0
- package/external/folly/folly/lang/Bits.h +570 -0
- package/external/folly/folly/lang/BitsClass.h +312 -0
- package/external/folly/folly/lang/Builtin.h +74 -0
- package/external/folly/folly/lang/CArray.h +34 -0
- package/external/folly/folly/lang/CString.cpp +86 -0
- package/external/folly/folly/lang/CString.h +55 -0
- package/external/folly/folly/lang/Cast.h +51 -0
- package/external/folly/folly/lang/CheckedMath.h +253 -0
- package/external/folly/folly/lang/CustomizationPoint.h +58 -0
- package/external/folly/folly/lang/Exception.cpp +822 -0
- package/external/folly/folly/lang/Exception.h +716 -0
- package/external/folly/folly/lang/Extern.h +55 -0
- package/external/folly/folly/lang/Hint-inl.h +144 -0
- package/external/folly/folly/lang/Hint.h +238 -0
- package/external/folly/folly/lang/Keep.h +98 -0
- package/external/folly/folly/lang/New.h +124 -0
- package/external/folly/folly/lang/Ordering.h +140 -0
- package/external/folly/folly/lang/Pretty.h +159 -0
- package/external/folly/folly/lang/PropagateConst.h +413 -0
- package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
- package/external/folly/folly/lang/SafeAssert.cpp +589 -0
- package/external/folly/folly/lang/StaticConst.h +33 -0
- package/external/folly/folly/lang/Thunk.h +100 -0
- package/external/folly/folly/lang/TypeInfo.h +58 -0
- package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
- package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
- package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
- package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
- package/external/folly/folly/lang/test/BUCK +258 -0
- package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
- package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
- package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
- package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
- package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
- package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
- package/external/folly/folly/lang/test/CastTest.cpp +47 -0
- package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
- package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
- package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
- package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
- package/external/folly/folly/lang/test/HintTest.cpp +100 -0
- package/external/folly/folly/lang/test/NewTest.cpp +38 -0
- package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
- package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
- package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
- package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
- package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
- package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
- package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
- package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
- package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
- package/external/folly/folly/memcpy.S +292 -0
- package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
- package/external/folly/folly/memory/Arena-inl.h +83 -0
- package/external/folly/folly/memory/Arena.h +325 -0
- package/external/folly/folly/memory/BUCK +191 -0
- package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
- package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
- package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
- package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
- package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
- package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
- package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
- package/external/folly/folly/memory/MallctlHelper.h +167 -0
- package/external/folly/folly/memory/Malloc.h +551 -0
- package/external/folly/folly/memory/MemoryResource.h +57 -0
- package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
- package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
- package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
- package/external/folly/folly/memory/SanitizeAddress.h +117 -0
- package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
- package/external/folly/folly/memory/SanitizeLeak.h +108 -0
- package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
- package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
- package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
- package/external/folly/folly/memory/detail/BUCK +10 -0
- package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
- package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
- package/external/folly/folly/memory/not_null-inl.h +522 -0
- package/external/folly/folly/memory/not_null.h +449 -0
- package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
- package/external/folly/folly/memory/test/BUCK +146 -0
- package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
- package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
- package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
- package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
- package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
- package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
- package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
- package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
- package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
- package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
- package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
- package/external/folly/folly/memset.S +245 -0
- package/external/folly/folly/memset_select_aarch64.cpp +72 -0
- package/external/folly/folly/portability/Asm.h +50 -0
- package/external/folly/folly/portability/Atomic.h +31 -0
- package/external/folly/folly/portability/BUCK +456 -0
- package/external/folly/folly/portability/Builtins.cpp +31 -0
- package/external/folly/folly/portability/Builtins.h +161 -0
- package/external/folly/folly/portability/Config.h +43 -0
- package/external/folly/folly/portability/Constexpr.h +145 -0
- package/external/folly/folly/portability/Dirent.cpp +140 -0
- package/external/folly/folly/portability/Dirent.h +41 -0
- package/external/folly/folly/portability/Event.h +44 -0
- package/external/folly/folly/portability/Fcntl.cpp +120 -0
- package/external/folly/folly/portability/Fcntl.h +67 -0
- package/external/folly/folly/portability/Filesystem.cpp +67 -0
- package/external/folly/folly/portability/Filesystem.h +114 -0
- package/external/folly/folly/portability/FmtCompile.h +40 -0
- package/external/folly/folly/portability/GFlags.h +139 -0
- package/external/folly/folly/portability/GMock.h +35 -0
- package/external/folly/folly/portability/GTest.h +35 -0
- package/external/folly/folly/portability/IOVec.h +34 -0
- package/external/folly/folly/portability/Libgen.cpp +59 -0
- package/external/folly/folly/portability/Libgen.h +29 -0
- package/external/folly/folly/portability/Libunwind.h +21 -0
- package/external/folly/folly/portability/Malloc.cpp +31 -0
- package/external/folly/folly/portability/Malloc.h +53 -0
- package/external/folly/folly/portability/Math.h +90 -0
- package/external/folly/folly/portability/Memory.h +26 -0
- package/external/folly/folly/portability/OpenSSL.cpp +17 -0
- package/external/folly/folly/portability/OpenSSL.h +102 -0
- package/external/folly/folly/portability/PThread.cpp +697 -0
- package/external/folly/folly/portability/PThread.h +148 -0
- package/external/folly/folly/portability/README.md +21 -0
- package/external/folly/folly/portability/Sched.cpp +41 -0
- package/external/folly/folly/portability/Sched.h +45 -0
- package/external/folly/folly/portability/Sockets.cpp +245 -0
- package/external/folly/folly/portability/Sockets.h +155 -0
- package/external/folly/folly/portability/SourceLocation.h +49 -0
- package/external/folly/folly/portability/Stdio.cpp +77 -0
- package/external/folly/folly/portability/Stdio.h +32 -0
- package/external/folly/folly/portability/Stdlib.cpp +172 -0
- package/external/folly/folly/portability/Stdlib.h +64 -0
- package/external/folly/folly/portability/String.cpp +53 -0
- package/external/folly/folly/portability/String.h +39 -0
- package/external/folly/folly/portability/SysFile.cpp +46 -0
- package/external/folly/folly/portability/SysFile.h +27 -0
- package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
- package/external/folly/folly/portability/SysMembarrier.h +26 -0
- package/external/folly/folly/portability/SysMman.cpp +242 -0
- package/external/folly/folly/portability/SysMman.h +68 -0
- package/external/folly/folly/portability/SysResource.cpp +108 -0
- package/external/folly/folly/portability/SysResource.h +71 -0
- package/external/folly/folly/portability/SysStat.cpp +66 -0
- package/external/folly/folly/portability/SysStat.h +52 -0
- package/external/folly/folly/portability/SysSyscall.h +73 -0
- package/external/folly/folly/portability/SysTime.cpp +62 -0
- package/external/folly/folly/portability/SysTime.h +50 -0
- package/external/folly/folly/portability/SysTypes.h +44 -0
- package/external/folly/folly/portability/SysUio.cpp +179 -0
- package/external/folly/folly/portability/SysUio.h +51 -0
- package/external/folly/folly/portability/Syslog.h +39 -0
- package/external/folly/folly/portability/Time.cpp +357 -0
- package/external/folly/folly/portability/Time.h +74 -0
- package/external/folly/folly/portability/Unistd.h +111 -0
- package/external/folly/folly/portability/Windows.h +108 -0
- package/external/folly/folly/portability/openat2.c +30 -0
- package/external/folly/folly/portability/openat2.h +39 -0
- package/external/folly/folly/portability/test/BUCK +59 -0
- package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
- package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
- package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
- package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
- package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
- package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
- package/external/folly/folly/small_vector.h +17 -0
- package/external/folly/folly/somerge_defs.bzl +399 -0
- package/external/folly/folly/sorted_vector_types.h +17 -0
- package/external/folly/folly/stop_watch.h +317 -0
- package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
- package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
- package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
- package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
- package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
- package/external/folly/folly/synchronization/AtomicRef.h +181 -0
- package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
- package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
- package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
- package/external/folly/folly/synchronization/BUCK +418 -0
- package/external/folly/folly/synchronization/Baton.h +419 -0
- package/external/folly/folly/synchronization/CallOnce.h +263 -0
- package/external/folly/folly/synchronization/DelayedInit.h +179 -0
- package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
- package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
- package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
- package/external/folly/folly/synchronization/EventCount.h +200 -0
- package/external/folly/folly/synchronization/FlatCombining.h +629 -0
- package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
- package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
- package/external/folly/folly/synchronization/Hazptr.h +209 -0
- package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
- package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
- package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
- package/external/folly/folly/synchronization/HazptrObj.h +533 -0
- package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
- package/external/folly/folly/synchronization/HazptrRec.h +68 -0
- package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
- package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
- package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
- package/external/folly/folly/synchronization/Latch.h +160 -0
- package/external/folly/folly/synchronization/LifoSem.h +767 -0
- package/external/folly/folly/synchronization/Lock.h +887 -0
- package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
- package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
- package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
- package/external/folly/folly/synchronization/ParkingLot.h +330 -0
- package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
- package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
- package/external/folly/folly/synchronization/Rcu.cpp +26 -0
- package/external/folly/folly/synchronization/Rcu.h +553 -0
- package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
- package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
- package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
- package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
- package/external/folly/folly/synchronization/SmallLocks.h +36 -0
- package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
- package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
- package/external/folly/folly/synchronization/WaitOptions.h +75 -0
- package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
- package/external/folly/folly/synchronization/detail/BUCK +104 -0
- package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
- package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
- package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
- package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
- package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
- package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
- package/external/folly/folly/synchronization/detail/Spin.h +96 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
- package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
- package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
- package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
- package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
- package/external/folly/folly/synchronization/example/BUCK +27 -0
- package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
- package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
- package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
- package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
- package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
- package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
- package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
- package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
- package/external/folly/folly/synchronization/test/BUCK +495 -0
- package/external/folly/folly/synchronization/test/Barrier.h +52 -0
- package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
- package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
- package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
- package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
- package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
- package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
- package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
- package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
- package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
- package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
- package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
- package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
- package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
- package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
- package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
- package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
- package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
- package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
- package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
- package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
- package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
- package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
- package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
- package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
- package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
- package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
- package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
- package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
- package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
- package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
- package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
- package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
- package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
- package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
- package/external/folly/folly/system/AtFork.cpp +205 -0
- package/external/folly/folly/system/AtFork.h +116 -0
- package/external/folly/folly/system/AuxVector.h +198 -0
- package/external/folly/folly/system/BUCK +144 -0
- package/external/folly/folly/system/EnvUtil.cpp +93 -0
- package/external/folly/folly/system/EnvUtil.h +113 -0
- package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
- package/external/folly/folly/system/HardwareConcurrency.h +23 -0
- package/external/folly/folly/system/MemoryMapping.cpp +477 -0
- package/external/folly/folly/system/MemoryMapping.h +287 -0
- package/external/folly/folly/system/Pid.cpp +87 -0
- package/external/folly/folly/system/Pid.h +34 -0
- package/external/folly/folly/system/Shell.cpp +33 -0
- package/external/folly/folly/system/Shell.h +93 -0
- package/external/folly/folly/system/ThreadId.cpp +89 -0
- package/external/folly/folly/system/ThreadId.h +62 -0
- package/external/folly/folly/system/ThreadName.cpp +330 -0
- package/external/folly/folly/system/ThreadName.h +72 -0
- package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
- package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
- package/external/folly/folly/system/test/BUCK +120 -0
- package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
- package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
- package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
- package/external/folly/folly/system/test/PidTest.cpp +46 -0
- package/external/folly/folly/system/test/ShellTest.cpp +66 -0
- package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
- package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
- package/external/folly/folly.vcxitems +164 -0
- package/external/folly/static/logo.svg +1 -0
- package/external/folly/sync-config.json +8 -0
- package/package.json +5 -5
- package/template/cpp-lib/proj/MyLib.sln +0 -33
- package/template/cs-lib/proj/MyLib.sln +0 -33
- package/templates/cpp-app/windows/MyApp.sln +0 -33
- package/templates/cpp-lib/example/metro.config.js +30 -4
- package/templates/cpp-lib/windows/MyLib.sln +0 -33
- package/Folly/Folly.vcxproj +0 -376
- package/Folly/Folly.vcxproj.filters +0 -558
- package/fmt/fmt.vcxproj +0 -153
- package/fmt/fmt.vcxproj.filters +0 -59
- package/fmt/pch.cpp +0 -4
- package/fmt/pch.h +0 -2
- /package/{fmt → external/fmt}/cgmanifest.json +0 -0
- /package/{Folly → external/folly}/Folly.natvis +0 -0
- /package/{Folly → external/folly}/cgmanifest.json +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
- /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
|
@@ -0,0 +1,667 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Provides a unified interface for IP addresses.
|
|
19
|
+
*
|
|
20
|
+
* @refcode folly/docs/examples/folly/ipaddress.cpp
|
|
21
|
+
*
|
|
22
|
+
* @class folly::IPAddress
|
|
23
|
+
* @see IPAddressV6
|
|
24
|
+
* @see IPAddressV4
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#pragma once
|
|
28
|
+
|
|
29
|
+
#include <functional>
|
|
30
|
+
#include <iosfwd>
|
|
31
|
+
#include <memory>
|
|
32
|
+
#include <string>
|
|
33
|
+
#include <type_traits>
|
|
34
|
+
#include <utility> // std::pair
|
|
35
|
+
|
|
36
|
+
#include <folly/ConstexprMath.h>
|
|
37
|
+
#include <folly/IPAddressException.h>
|
|
38
|
+
#include <folly/IPAddressV4.h>
|
|
39
|
+
#include <folly/IPAddressV6.h>
|
|
40
|
+
#include <folly/Range.h>
|
|
41
|
+
#include <folly/detail/IPAddress.h>
|
|
42
|
+
#include <folly/lang/Exception.h>
|
|
43
|
+
|
|
44
|
+
namespace folly {
|
|
45
|
+
|
|
46
|
+
class IPAddress;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Pair of IPAddress, netmask
|
|
50
|
+
*/
|
|
51
|
+
typedef std::pair<IPAddress, uint8_t> CIDRNetwork;
|
|
52
|
+
|
|
53
|
+
class IPAddress {
|
|
54
|
+
private:
|
|
55
|
+
template <typename F>
|
|
56
|
+
auto pick(F f) const {
|
|
57
|
+
return isV4() ? f(asV4()) : isV6() ? f(asV6()) : f(asNone());
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
class IPAddressNone {
|
|
61
|
+
public:
|
|
62
|
+
bool isZero() const { return true; }
|
|
63
|
+
size_t bitCount() const { return 0; }
|
|
64
|
+
std::string toJson() const {
|
|
65
|
+
return "{family:'AF_UNSPEC', addr:'', hash:0}";
|
|
66
|
+
}
|
|
67
|
+
std::size_t hash() const { return std::hash<uint64_t>{}(0); }
|
|
68
|
+
bool isLoopback() const {
|
|
69
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
70
|
+
}
|
|
71
|
+
bool isLinkLocal() const {
|
|
72
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
73
|
+
}
|
|
74
|
+
bool isLinkLocalBroadcast() const {
|
|
75
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
76
|
+
}
|
|
77
|
+
bool isNonroutable() const {
|
|
78
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
79
|
+
}
|
|
80
|
+
bool isPrivate() const {
|
|
81
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
82
|
+
}
|
|
83
|
+
bool isMulticast() const {
|
|
84
|
+
throw_exception<InvalidAddressFamilyException>("empty address");
|
|
85
|
+
}
|
|
86
|
+
IPAddress mask(uint8_t numBits) const {
|
|
87
|
+
(void)numBits;
|
|
88
|
+
return IPAddress();
|
|
89
|
+
}
|
|
90
|
+
std::string str() const { return ""; }
|
|
91
|
+
std::string toFullyQualified() const { return ""; }
|
|
92
|
+
void toFullyQualifiedAppend(std::string& out) const {
|
|
93
|
+
(void)out;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
uint8_t version() const { return 0; }
|
|
97
|
+
const unsigned char* bytes() const { return nullptr; }
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
IPAddressNone const& asNone() const {
|
|
101
|
+
if (!empty()) {
|
|
102
|
+
throw_exception<InvalidAddressFamilyException>("not empty");
|
|
103
|
+
}
|
|
104
|
+
return addr_.ipNoneAddr;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public:
|
|
108
|
+
/**
|
|
109
|
+
* Returns true if the input string can be parsed as an IP address.
|
|
110
|
+
*/
|
|
111
|
+
static bool validate(StringPiece ip) noexcept;
|
|
112
|
+
/**
|
|
113
|
+
* Return the IPAddressV4 representation of the address, converting
|
|
114
|
+
* from V6 to V4 if needed.
|
|
115
|
+
*
|
|
116
|
+
*
|
|
117
|
+
*
|
|
118
|
+
* @throws IPAddressFormatException if the V6 Address is not IPv4 mappes
|
|
119
|
+
*/
|
|
120
|
+
static IPAddressV4 createIPv4(const IPAddress& addr);
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Return the address as a IPAddressV6, converting from V4 to V6 if
|
|
124
|
+
* needed.
|
|
125
|
+
*/
|
|
126
|
+
static IPAddressV6 createIPv6(const IPAddress& addr);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Create a network and mask from a CIDR formatted address string.
|
|
130
|
+
*
|
|
131
|
+
* @param [in] ipSlashCidr IP/CIDR formatted string to split
|
|
132
|
+
* @param [in] defaultCidr default value if no /N specified (if defaultCidr
|
|
133
|
+
* is -1, will use /32 for IPv4 and /128 for IPv6)
|
|
134
|
+
* @param [in] mask apply mask on the address or not,
|
|
135
|
+
* e.g. 192.168.13.46/24 => 192.168.13.0/24
|
|
136
|
+
* @return either pair with IPAddress network and uint8_t mask or
|
|
137
|
+
* CIDRNetworkError
|
|
138
|
+
*/
|
|
139
|
+
static Expected<CIDRNetwork, CIDRNetworkError> tryCreateNetwork(
|
|
140
|
+
StringPiece ipSlashCidr, int defaultCidr = -1, bool mask = true);
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Create a network and mask from a CIDR formatted address string.
|
|
144
|
+
*
|
|
145
|
+
* Same as tryCreateNetwork() but throws on error.
|
|
146
|
+
*
|
|
147
|
+
* @throws IPAddressFormatException
|
|
148
|
+
* @return pair with IPAddress network and uint8_t mask
|
|
149
|
+
*/
|
|
150
|
+
static CIDRNetwork createNetwork(
|
|
151
|
+
StringPiece ipSlashCidr, int defaultCidr = -1, bool mask = true);
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Return a string representation of a CIDR block created with
|
|
155
|
+
* createNetwork().
|
|
156
|
+
*
|
|
157
|
+
* @param [in] network pair of address and cidr
|
|
158
|
+
* @return string representing the netblock
|
|
159
|
+
*/
|
|
160
|
+
static std::string networkToString(const CIDRNetwork& network);
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Create a new IPAddress instance from the provided binary data
|
|
164
|
+
* in network byte order.
|
|
165
|
+
*
|
|
166
|
+
* @throws IPAddressFormatException if the length of `bytes` is not 4 or 16.
|
|
167
|
+
*
|
|
168
|
+
*/
|
|
169
|
+
static IPAddress fromBinary(ByteRange bytes);
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Non-throwing version of fromBinary().
|
|
173
|
+
* On failure returns IPAddressFormatError.
|
|
174
|
+
*/
|
|
175
|
+
static Expected<IPAddress, IPAddressFormatError> tryFromBinary(
|
|
176
|
+
ByteRange bytes) noexcept;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Tries to create a new IPAddress instance from provided string.
|
|
180
|
+
*
|
|
181
|
+
* On failure, returns IPAddressFormatError.
|
|
182
|
+
*/
|
|
183
|
+
static Expected<IPAddress, IPAddressFormatError> tryFromString(
|
|
184
|
+
StringPiece str) noexcept;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Tries to create a new IPAddress instance from the provided sockaddr.
|
|
188
|
+
*
|
|
189
|
+
* On failure, returns IPAddressFormatError.
|
|
190
|
+
*/
|
|
191
|
+
static Expected<IPAddress, IPAddressFormatError> tryFromSockAddr(
|
|
192
|
+
const sockaddr* addr) noexcept;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Create an IPAddress from a `uint32_t`, using network byte order.
|
|
196
|
+
*
|
|
197
|
+
* @throws IPAddressFormatException if `src` does not represent a valid IP
|
|
198
|
+
* Address.
|
|
199
|
+
*/
|
|
200
|
+
static IPAddress fromLong(uint32_t src);
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Create an IPAddress from a `uint32_t`, using host byte order.
|
|
204
|
+
*
|
|
205
|
+
* @throws IPAddressFormatException if `src` does not represent a valid IP
|
|
206
|
+
* address.
|
|
207
|
+
*/
|
|
208
|
+
static IPAddress fromLongHBO(uint32_t src);
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Given 2 (IPAddress, mask) pairs, extract the longest common pair.
|
|
212
|
+
*/
|
|
213
|
+
static CIDRNetwork longestCommonPrefix(
|
|
214
|
+
const CIDRNetwork& one, const CIDRNetwork& two);
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Constructs an uninitialized IPAddress.
|
|
218
|
+
*/
|
|
219
|
+
IPAddress();
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Parse an IPAddress from a string representation.
|
|
223
|
+
*
|
|
224
|
+
* Formats accepted are exactly the same as the ones accepted by
|
|
225
|
+
* `inet_pton()`, using `AF_INET6` if the string contains colons, and `AF_INET
|
|
226
|
+
* `otherwise; with the exception that the whole address can optionally be
|
|
227
|
+
* enclosed in square brackets.
|
|
228
|
+
*
|
|
229
|
+
* @throws IPAddressFormatException if `str` is not a valid IP Address.
|
|
230
|
+
*/
|
|
231
|
+
explicit IPAddress(StringPiece str);
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Create an IPAddress from a `sockaddr` struct.
|
|
235
|
+
*
|
|
236
|
+
* @throws IPAddressFormatException if `addr` is a nullptr, or not `AF_INET`
|
|
237
|
+
* or `AF_INET6`
|
|
238
|
+
*/
|
|
239
|
+
explicit IPAddress(const sockaddr* addr);
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Create an IPAddress from an IPAddressV4
|
|
243
|
+
*/
|
|
244
|
+
/* implicit */ IPAddress(const IPAddressV4 ipV4Addr) noexcept;
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Create an IPAddress from an `in_addr` representation of an IPV4 address
|
|
248
|
+
*/
|
|
249
|
+
/* implicit */ IPAddress(const in_addr addr) noexcept;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Create an IPAddress from an IPAddressV6
|
|
253
|
+
*/
|
|
254
|
+
/* implicit */ IPAddress(const IPAddressV6& ipV6Addr) noexcept;
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Create an IPAddress from an `in6_addr` representation of an IPV6 address
|
|
258
|
+
*/
|
|
259
|
+
/* implicit */ IPAddress(const in6_addr& addr) noexcept;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @overloadbrief Copy assignment from other IPAddress representations
|
|
263
|
+
*
|
|
264
|
+
* Copy assignment from an IPAddressV4
|
|
265
|
+
*/
|
|
266
|
+
IPAddress& operator=(const IPAddressV4& ipv4_addr) noexcept;
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Copy assignment from an IPAddressV6
|
|
270
|
+
*/
|
|
271
|
+
IPAddress& operator=(const IPAddressV6& ipv6_addr) noexcept;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Converts an IPAddress to an IPAddressV4 instance.
|
|
275
|
+
*
|
|
276
|
+
* @note This is not some handy convenience wrapper to convert an IPv4 address
|
|
277
|
+
* to a mapped IPv6 address. If you want that use createIPv6()
|
|
278
|
+
*
|
|
279
|
+
* @throws InvalidAddressFamilyException if the IP Address is not currently
|
|
280
|
+
* a valid V4 instance.
|
|
281
|
+
*/
|
|
282
|
+
const IPAddressV4& asV4() const {
|
|
283
|
+
if (FOLLY_UNLIKELY(!isV4())) {
|
|
284
|
+
asV4Throw();
|
|
285
|
+
}
|
|
286
|
+
return addr_.ipV4Addr;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Converts an IPAddress to an IPAddressV6 instance
|
|
291
|
+
*
|
|
292
|
+
* @throws InvalidAddressFamilyException if the IP Address is not currently
|
|
293
|
+
* a valid V6 instance.
|
|
294
|
+
*/
|
|
295
|
+
const IPAddressV6& asV6() const {
|
|
296
|
+
if (FOLLY_UNLIKELY(!isV6())) {
|
|
297
|
+
asV6Throw();
|
|
298
|
+
}
|
|
299
|
+
return addr_.ipV6Addr;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Return then `sa_family_t` of the IP Address
|
|
304
|
+
*/
|
|
305
|
+
sa_family_t family() const { return family_; }
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Given a `sockaddr_storage` struct, populate it with an appropriate value.
|
|
309
|
+
*
|
|
310
|
+
* @param [out] dest The struct to populate
|
|
311
|
+
* @param port The port number to put in the struct (defaults to 0)
|
|
312
|
+
*
|
|
313
|
+
*/
|
|
314
|
+
int toSockaddrStorage(sockaddr_storage* dest, uint16_t port = 0) const {
|
|
315
|
+
if (dest == nullptr) {
|
|
316
|
+
throw_exception<IPAddressFormatException>("dest must not be null");
|
|
317
|
+
}
|
|
318
|
+
memset(dest, 0, sizeof(sockaddr_storage));
|
|
319
|
+
dest->ss_family = family();
|
|
320
|
+
|
|
321
|
+
if (isV4()) {
|
|
322
|
+
sockaddr_in* sin = reinterpret_cast<sockaddr_in*>(dest);
|
|
323
|
+
sin->sin_addr = asV4().toAddr();
|
|
324
|
+
sin->sin_port = port;
|
|
325
|
+
#if defined(__APPLE__)
|
|
326
|
+
sin->sin_len = sizeof(*sin);
|
|
327
|
+
#endif
|
|
328
|
+
return sizeof(*sin);
|
|
329
|
+
} else if (isV6()) {
|
|
330
|
+
sockaddr_in6* sin = reinterpret_cast<sockaddr_in6*>(dest);
|
|
331
|
+
sin->sin6_addr = asV6().toAddr();
|
|
332
|
+
sin->sin6_port = port;
|
|
333
|
+
sin->sin6_scope_id = asV6().getScopeId();
|
|
334
|
+
#if defined(__APPLE__)
|
|
335
|
+
sin->sin6_len = sizeof(*sin);
|
|
336
|
+
#endif
|
|
337
|
+
return sizeof(*sin);
|
|
338
|
+
} else {
|
|
339
|
+
throw_exception<InvalidAddressFamilyException>(family());
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* @overloadbrief Check if the address is found in the specified CIDR
|
|
345
|
+
* netblock.
|
|
346
|
+
*
|
|
347
|
+
* This will return false if the specified cidrNet is V4, but the address is
|
|
348
|
+
* V6. It will also return false if the specified cidrNet is V6 but the
|
|
349
|
+
* address is V4. This method will do the right thing in the case of a v6
|
|
350
|
+
* mapped v4 address.
|
|
351
|
+
*
|
|
352
|
+
* @note This is slower than the below counterparts. If perf is important use
|
|
353
|
+
* one of the two argument variations below.
|
|
354
|
+
* @param [in] cidrNetwork address in "192.168.1.0/24" format
|
|
355
|
+
* @throws IPAddressFormatException if no /mask in cidrNetwork
|
|
356
|
+
* @return true if address is part of specified subnet with cidr
|
|
357
|
+
*/
|
|
358
|
+
bool inSubnet(StringPiece cidrNetwork) const;
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Check if an IPAddress belongs to a subnet.
|
|
362
|
+
* @param [in] subnet Subnet to check against (e.g. 192.168.1.0)
|
|
363
|
+
* @param [in] cidr CIDR for subnet (e.g. 24 for /24)
|
|
364
|
+
* @return true if address is part of specified subnet with cidr
|
|
365
|
+
*/
|
|
366
|
+
bool inSubnet(const IPAddress& subnet, uint8_t cidr) const;
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Check if an IPAddress belongs to the subnet with the given mask.
|
|
370
|
+
*
|
|
371
|
+
* This is the same as inSubnet but the mask is provided instead of looked up
|
|
372
|
+
* from the cidr.
|
|
373
|
+
* @param [in] subnet Subnet to check against
|
|
374
|
+
* @param [in] mask The netmask for the subnet
|
|
375
|
+
* @return true if address is part of the specified subnet with mask
|
|
376
|
+
*/
|
|
377
|
+
bool inSubnetWithMask(const IPAddress& subnet, ByteRange mask) const;
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Returns true if address is a v4 mapped address
|
|
381
|
+
*/
|
|
382
|
+
bool isIPv4Mapped() const { return isV6() && asV6().isIPv4Mapped(); }
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Returns true if address is uninitialised
|
|
386
|
+
*/
|
|
387
|
+
bool empty() const { return family_ == AF_UNSPEC; }
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Returns true if address is initalised
|
|
391
|
+
*/
|
|
392
|
+
explicit operator bool() const { return !empty(); }
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Returns true if this represents an IPv4 address
|
|
396
|
+
*/
|
|
397
|
+
bool isV4() const { return family_ == AF_INET; }
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Returns true if this represents an IPv6 address
|
|
401
|
+
*/
|
|
402
|
+
bool isV6() const { return family_ == AF_INET6; }
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Returns true if the address is all zeros
|
|
406
|
+
*/
|
|
407
|
+
bool isZero() const {
|
|
408
|
+
return pick([&](auto& _) { return _.isZero(); });
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* The number of bits in the address representation
|
|
413
|
+
*/
|
|
414
|
+
size_t bitCount() const {
|
|
415
|
+
return pick([&](auto& _) { return _.bitCount(); });
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* The number of bytes in the address representation
|
|
420
|
+
*/
|
|
421
|
+
size_t byteCount() const { return bitCount() / 8; }
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Get the nth most significant bit of the IP address (0-indexed).
|
|
425
|
+
* @param bitIndex n
|
|
426
|
+
*/
|
|
427
|
+
bool getNthMSBit(size_t bitIndex) const {
|
|
428
|
+
return detail::getNthMSBitImpl(*this, bitIndex, family());
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Get the nth most significant byte of the IP address (0-indexed).
|
|
433
|
+
* @param byteIndex n
|
|
434
|
+
*/
|
|
435
|
+
uint8_t getNthMSByte(size_t byteIndex) const;
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Get the nth bit of the IP address (0-indexed).
|
|
439
|
+
* @param bitIndex n
|
|
440
|
+
*/
|
|
441
|
+
bool getNthLSBit(size_t bitIndex) const {
|
|
442
|
+
return getNthMSBit(bitCount() - bitIndex - 1);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Get the nth byte of the IP address (0-indexed).
|
|
447
|
+
* @param byteIndex n
|
|
448
|
+
*/
|
|
449
|
+
uint8_t getNthLSByte(size_t byteIndex) const {
|
|
450
|
+
return getNthMSByte(byteCount() - byteIndex - 1);
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Get a json representation of the IP address.
|
|
455
|
+
*
|
|
456
|
+
* This prints a string representation of the address, for human consumption
|
|
457
|
+
* or logging. The string will take the form of a JSON object that looks like:
|
|
458
|
+
* `{family:'AF_INET|AF_INET6', addr:'address', hash:long}`.
|
|
459
|
+
*/
|
|
460
|
+
std::string toJson() const {
|
|
461
|
+
return pick([&](auto& _) { return _.toJson(); });
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Returns a hash of the IP address.
|
|
466
|
+
*/
|
|
467
|
+
std::size_t hash() const {
|
|
468
|
+
return pick([&](auto& _) { return _.hash(); });
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Return true if the IP address qualifies as localhost.
|
|
473
|
+
*/
|
|
474
|
+
bool isLoopback() const {
|
|
475
|
+
return pick([&](auto& _) { return _.isLoopback(); });
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Return true if the IP address qualifies as link local
|
|
480
|
+
*/
|
|
481
|
+
bool isLinkLocal() const {
|
|
482
|
+
return pick([&](auto& _) { return _.isLinkLocal(); });
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Return true if the IP address qualifies as broadcast.
|
|
487
|
+
*/
|
|
488
|
+
bool isLinkLocalBroadcast() const {
|
|
489
|
+
return pick([&](auto& _) { return _.isLinkLocalBroadcast(); });
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* Return true if the IP address is a special purpose address, as defined per
|
|
494
|
+
* RFC 6890 (i.e. 0.0.0.0).
|
|
495
|
+
*
|
|
496
|
+
* For V6, true if the address is not in one of global scope blocks:
|
|
497
|
+
* 2000::/3, ffxe::/16.
|
|
498
|
+
*/
|
|
499
|
+
bool isNonroutable() const {
|
|
500
|
+
return pick([&](auto& _) { return _.isNonroutable(); });
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Return true if the IP address is private, as per RFC 1918 and RFC 4193.
|
|
505
|
+
*
|
|
506
|
+
* For example, 192.168.xxx.xxx or fc00::/7 addresses.
|
|
507
|
+
*/
|
|
508
|
+
bool isPrivate() const {
|
|
509
|
+
return pick([&](auto& _) { return _.isPrivate(); });
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Return true if the IP address is a multicast address.
|
|
514
|
+
*/
|
|
515
|
+
bool isMulticast() const {
|
|
516
|
+
return pick([&](auto& _) { return _.isMulticast(); });
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Creates an IPAddress instance with all but most significant numBits set to
|
|
521
|
+
* 0.
|
|
522
|
+
*
|
|
523
|
+
* @throws IPAddressFormatException if numBits > bitCount()
|
|
524
|
+
*
|
|
525
|
+
* @param [in] numBits number of bits to mask
|
|
526
|
+
* @return IPAddress instance with bits set to 0
|
|
527
|
+
*/
|
|
528
|
+
IPAddress mask(uint8_t numBits) const {
|
|
529
|
+
return pick([&](auto& _) { return IPAddress(_.mask(numBits)); });
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Provides a string representation of address.
|
|
534
|
+
*
|
|
535
|
+
* @throws IPAddressFormatException on `inet_ntop` error.
|
|
536
|
+
*
|
|
537
|
+
* @note The string representation is calculated on demand.
|
|
538
|
+
*/
|
|
539
|
+
std::string str() const {
|
|
540
|
+
return pick([&](auto& _) { return _.str(); });
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Return the fully qualified string representation of the address.
|
|
545
|
+
*
|
|
546
|
+
* For V4 addresses this is the same as calling str(). For V6 addresses
|
|
547
|
+
* this is the hex representation with : characters inserted every 4 digits.
|
|
548
|
+
*/
|
|
549
|
+
std::string toFullyQualified() const {
|
|
550
|
+
return pick([&](auto& _) { return _.toFullyQualified(); });
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Same as toFullyQualified() but append to an output string.
|
|
555
|
+
*/
|
|
556
|
+
void toFullyQualifiedAppend(std::string& out) const {
|
|
557
|
+
return pick([&](auto& _) { return _.toFullyQualifiedAppend(out); });
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Returns the IP address version. 0 if empty, 4 or 6 if nonempty.
|
|
562
|
+
*/
|
|
563
|
+
uint8_t version() const {
|
|
564
|
+
return pick([&](auto& _) { return _.version(); });
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Returns a pointer to the to IP address bytes, in network byte order.
|
|
569
|
+
*/
|
|
570
|
+
const unsigned char* bytes() const {
|
|
571
|
+
return pick([&](auto& _) { return _.bytes(); });
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
private:
|
|
575
|
+
[[noreturn]] void asV4Throw() const;
|
|
576
|
+
[[noreturn]] void asV6Throw() const;
|
|
577
|
+
|
|
578
|
+
typedef union IPAddressV46 {
|
|
579
|
+
IPAddressNone ipNoneAddr;
|
|
580
|
+
IPAddressV4 ipV4Addr;
|
|
581
|
+
IPAddressV6 ipV6Addr;
|
|
582
|
+
IPAddressV46() noexcept : ipNoneAddr() {}
|
|
583
|
+
explicit IPAddressV46(const IPAddressV4& addr) noexcept : ipV4Addr(addr) {}
|
|
584
|
+
explicit IPAddressV46(const IPAddressV6& addr) noexcept : ipV6Addr(addr) {}
|
|
585
|
+
} IPAddressV46;
|
|
586
|
+
IPAddressV46 addr_;
|
|
587
|
+
sa_family_t family_;
|
|
588
|
+
};
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* `boost::hash` uses hash_value(), so this allows `boost::hash` to work
|
|
592
|
+
* automatically for IPAddress
|
|
593
|
+
*/
|
|
594
|
+
std::size_t hash_value(const IPAddress& addr);
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Appends a string representation of the IP address to the stream using str().
|
|
598
|
+
*/
|
|
599
|
+
std::ostream& operator<<(std::ostream& os, const IPAddress& addr);
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* @overloadbrief Define toAppend() to allow IPAddress to be used with
|
|
603
|
+
* `folly::to<string>`
|
|
604
|
+
*/
|
|
605
|
+
void toAppend(IPAddress addr, std::string* result);
|
|
606
|
+
void toAppend(IPAddress addr, fbstring* result);
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Return true if two addresses are equal.
|
|
610
|
+
*
|
|
611
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
612
|
+
*
|
|
613
|
+
* @return true if the two addresses are equal.
|
|
614
|
+
*/
|
|
615
|
+
bool operator==(const IPAddress& addr1, const IPAddress& addr2);
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Return true if `addr1 < addr2`
|
|
619
|
+
*
|
|
620
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
621
|
+
*/
|
|
622
|
+
bool operator<(const IPAddress& addr1, const IPAddress& addr2);
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Return true if two address are not equal
|
|
626
|
+
*
|
|
627
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
628
|
+
*/
|
|
629
|
+
inline bool operator!=(const IPAddress& addr1, const IPAddress& addr2) {
|
|
630
|
+
return !(addr1 == addr2);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Return true if `addr1 > addr2`
|
|
635
|
+
*
|
|
636
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
637
|
+
*/
|
|
638
|
+
inline bool operator>(const IPAddress& addr1, const IPAddress& addr2) {
|
|
639
|
+
return addr2 < addr1;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* Return true if `addr1 <= addr2`
|
|
644
|
+
*
|
|
645
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
646
|
+
*/
|
|
647
|
+
inline bool operator<=(const IPAddress& addr1, const IPAddress& addr2) {
|
|
648
|
+
return !(addr1 > addr2);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* Return true if `addr1 >= addr2`
|
|
653
|
+
*
|
|
654
|
+
* V4-to-V6-mapped addresses are compared as V4 addresses.
|
|
655
|
+
*/
|
|
656
|
+
inline bool operator>=(const IPAddress& addr1, const IPAddress& addr2) {
|
|
657
|
+
return !(addr1 < addr2);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
} // namespace folly
|
|
661
|
+
|
|
662
|
+
namespace std {
|
|
663
|
+
template <>
|
|
664
|
+
struct hash<folly::IPAddress> {
|
|
665
|
+
size_t operator()(const folly::IPAddress& addr) const { return addr.hash(); }
|
|
666
|
+
};
|
|
667
|
+
} // namespace std
|