@dittolive/ditto 4.5.0 → 4.5.1-experimental.aarch64-linux.1.aarch64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +2 -2
  2. package/node/ditto.cjs.js +2 -9620
  3. package/node/{ditto.linux-x64.node → ditto.linux-arm64.node} +0 -0
  4. package/package.json +38 -34
  5. package/types/ditto.d.ts +0 -2
  6. package/web/ditto.es6.js +1 -1
  7. package/web/ditto.umd.js +1 -1
  8. package/web/ditto.wasm +0 -0
  9. package/DittoReactNative.podspec +0 -27
  10. package/node/ditto.darwin-arm64.node +0 -0
  11. package/node/ditto.darwin-x64.node +0 -0
  12. package/node/ditto.linux-arm.node +0 -0
  13. package/node/ditto.win32-x64.node +0 -0
  14. package/node/transports.darwin-arm64.node +0 -0
  15. package/node/transports.darwin-x64.node +0 -0
  16. package/react-native/android/CMakeLists.txt +0 -37
  17. package/react-native/android/build.gradle +0 -203
  18. package/react-native/android/cpp-adapter.cpp +0 -254
  19. package/react-native/android/gradle.properties +0 -5
  20. package/react-native/android/src/main/AndroidManifest.xml +0 -4
  21. package/react-native/android/src/main/java/com/dittolive/rnsdk/DittoRNSDKModule.java +0 -85
  22. package/react-native/android/src/main/java/com/dittolive/rnsdk/DittoRNSDKPackage.java +0 -28
  23. package/react-native/boost/boost/assert.hpp +0 -85
  24. package/react-native/boost/boost/config/abi/borland_prefix.hpp +0 -27
  25. package/react-native/boost/boost/config/abi/borland_suffix.hpp +0 -12
  26. package/react-native/boost/boost/config/abi/msvc_prefix.hpp +0 -22
  27. package/react-native/boost/boost/config/abi/msvc_suffix.hpp +0 -8
  28. package/react-native/boost/boost/config/abi_prefix.hpp +0 -25
  29. package/react-native/boost/boost/config/abi_suffix.hpp +0 -25
  30. package/react-native/boost/boost/config/assert_cxx03.hpp +0 -211
  31. package/react-native/boost/boost/config/assert_cxx11.hpp +0 -209
  32. package/react-native/boost/boost/config/assert_cxx14.hpp +0 -47
  33. package/react-native/boost/boost/config/assert_cxx17.hpp +0 -62
  34. package/react-native/boost/boost/config/assert_cxx20.hpp +0 -59
  35. package/react-native/boost/boost/config/assert_cxx98.hpp +0 -23
  36. package/react-native/boost/boost/config/auto_link.hpp +0 -525
  37. package/react-native/boost/boost/config/compiler/borland.hpp +0 -339
  38. package/react-native/boost/boost/config/compiler/clang.hpp +0 -366
  39. package/react-native/boost/boost/config/compiler/clang_version.hpp +0 -83
  40. package/react-native/boost/boost/config/compiler/codegear.hpp +0 -385
  41. package/react-native/boost/boost/config/compiler/comeau.hpp +0 -59
  42. package/react-native/boost/boost/config/compiler/common_edg.hpp +0 -183
  43. package/react-native/boost/boost/config/compiler/compaq_cxx.hpp +0 -19
  44. package/react-native/boost/boost/config/compiler/cray.hpp +0 -446
  45. package/react-native/boost/boost/config/compiler/diab.hpp +0 -26
  46. package/react-native/boost/boost/config/compiler/digitalmars.hpp +0 -143
  47. package/react-native/boost/boost/config/compiler/gcc.hpp +0 -383
  48. package/react-native/boost/boost/config/compiler/gcc_xml.hpp +0 -114
  49. package/react-native/boost/boost/config/compiler/greenhills.hpp +0 -28
  50. package/react-native/boost/boost/config/compiler/hp_acc.hpp +0 -149
  51. package/react-native/boost/boost/config/compiler/intel.hpp +0 -577
  52. package/react-native/boost/boost/config/compiler/kai.hpp +0 -33
  53. package/react-native/boost/boost/config/compiler/metrowerks.hpp +0 -198
  54. package/react-native/boost/boost/config/compiler/mpw.hpp +0 -140
  55. package/react-native/boost/boost/config/compiler/nvcc.hpp +0 -61
  56. package/react-native/boost/boost/config/compiler/pathscale.hpp +0 -138
  57. package/react-native/boost/boost/config/compiler/pgi.hpp +0 -23
  58. package/react-native/boost/boost/config/compiler/sgi_mipspro.hpp +0 -29
  59. package/react-native/boost/boost/config/compiler/sunpro_cc.hpp +0 -222
  60. package/react-native/boost/boost/config/compiler/vacpp.hpp +0 -186
  61. package/react-native/boost/boost/config/compiler/visualc.hpp +0 -391
  62. package/react-native/boost/boost/config/compiler/xlcpp.hpp +0 -299
  63. package/react-native/boost/boost/config/compiler/xlcpp_zos.hpp +0 -173
  64. package/react-native/boost/boost/config/detail/cxx_composite.hpp +0 -203
  65. package/react-native/boost/boost/config/detail/posix_features.hpp +0 -95
  66. package/react-native/boost/boost/config/detail/select_compiler_config.hpp +0 -157
  67. package/react-native/boost/boost/config/detail/select_platform_config.hpp +0 -147
  68. package/react-native/boost/boost/config/detail/select_stdlib_config.hpp +0 -121
  69. package/react-native/boost/boost/config/detail/suffix.hpp +0 -1294
  70. package/react-native/boost/boost/config/header_deprecated.hpp +0 -26
  71. package/react-native/boost/boost/config/helper_macros.hpp +0 -37
  72. package/react-native/boost/boost/config/no_tr1/cmath.hpp +0 -28
  73. package/react-native/boost/boost/config/no_tr1/complex.hpp +0 -28
  74. package/react-native/boost/boost/config/no_tr1/functional.hpp +0 -28
  75. package/react-native/boost/boost/config/no_tr1/memory.hpp +0 -28
  76. package/react-native/boost/boost/config/no_tr1/utility.hpp +0 -28
  77. package/react-native/boost/boost/config/platform/aix.hpp +0 -33
  78. package/react-native/boost/boost/config/platform/amigaos.hpp +0 -15
  79. package/react-native/boost/boost/config/platform/beos.hpp +0 -26
  80. package/react-native/boost/boost/config/platform/bsd.hpp +0 -83
  81. package/react-native/boost/boost/config/platform/cloudabi.hpp +0 -18
  82. package/react-native/boost/boost/config/platform/cray.hpp +0 -18
  83. package/react-native/boost/boost/config/platform/cygwin.hpp +0 -71
  84. package/react-native/boost/boost/config/platform/haiku.hpp +0 -31
  85. package/react-native/boost/boost/config/platform/hpux.hpp +0 -87
  86. package/react-native/boost/boost/config/platform/irix.hpp +0 -31
  87. package/react-native/boost/boost/config/platform/linux.hpp +0 -106
  88. package/react-native/boost/boost/config/platform/macos.hpp +0 -87
  89. package/react-native/boost/boost/config/platform/qnxnto.hpp +0 -31
  90. package/react-native/boost/boost/config/platform/solaris.hpp +0 -31
  91. package/react-native/boost/boost/config/platform/symbian.hpp +0 -97
  92. package/react-native/boost/boost/config/platform/vms.hpp +0 -25
  93. package/react-native/boost/boost/config/platform/vxworks.hpp +0 -422
  94. package/react-native/boost/boost/config/platform/wasm.hpp +0 -23
  95. package/react-native/boost/boost/config/platform/win32.hpp +0 -90
  96. package/react-native/boost/boost/config/platform/zos.hpp +0 -32
  97. package/react-native/boost/boost/config/pragma_message.hpp +0 -31
  98. package/react-native/boost/boost/config/requires_threads.hpp +0 -92
  99. package/react-native/boost/boost/config/stdlib/dinkumware.hpp +0 -324
  100. package/react-native/boost/boost/config/stdlib/libcomo.hpp +0 -93
  101. package/react-native/boost/boost/config/stdlib/libcpp.hpp +0 -180
  102. package/react-native/boost/boost/config/stdlib/libstdcpp3.hpp +0 -482
  103. package/react-native/boost/boost/config/stdlib/modena.hpp +0 -79
  104. package/react-native/boost/boost/config/stdlib/msl.hpp +0 -98
  105. package/react-native/boost/boost/config/stdlib/roguewave.hpp +0 -208
  106. package/react-native/boost/boost/config/stdlib/sgi.hpp +0 -168
  107. package/react-native/boost/boost/config/stdlib/stlport.hpp +0 -258
  108. package/react-native/boost/boost/config/stdlib/vacpp.hpp +0 -74
  109. package/react-native/boost/boost/config/stdlib/xlcpp_zos.hpp +0 -61
  110. package/react-native/boost/boost/config/user.hpp +0 -133
  111. package/react-native/boost/boost/config/warning_disable.hpp +0 -47
  112. package/react-native/boost/boost/config/workaround.hpp +0 -305
  113. package/react-native/boost/boost/config.hpp +0 -67
  114. package/react-native/boost/boost/cstdint.hpp +0 -556
  115. package/react-native/boost/boost/intrusive_ptr.hpp +0 -18
  116. package/react-native/boost/boost/smart_ptr/detail/atomic_count.hpp +0 -103
  117. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  118. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  119. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  120. package/react-native/boost/boost/smart_ptr/detail/atomic_count_nt.hpp +0 -66
  121. package/react-native/boost/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  122. package/react-native/boost/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  123. package/react-native/boost/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +0 -67
  124. package/react-native/boost/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  125. package/react-native/boost/boost/smart_ptr/detail/atomic_count_win32.hpp +0 -70
  126. package/react-native/boost/boost/smart_ptr/detail/local_counted_base.hpp +0 -148
  127. package/react-native/boost/boost/smart_ptr/detail/local_sp_deleter.hpp +0 -91
  128. package/react-native/boost/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  129. package/react-native/boost/boost/smart_ptr/detail/requires_cxx11.hpp +0 -23
  130. package/react-native/boost/boost/smart_ptr/detail/shared_count.hpp +0 -707
  131. package/react-native/boost/boost/smart_ptr/detail/sp_convertible.hpp +0 -92
  132. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base.hpp +0 -92
  133. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  134. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  135. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  136. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  137. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  138. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  139. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  140. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  141. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  142. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp +0 -119
  143. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  144. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  145. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  146. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +0 -147
  147. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  148. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  149. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp +0 -140
  150. package/react-native/boost/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -309
  151. package/react-native/boost/boost/smart_ptr/detail/sp_disable_deprecated.hpp +0 -40
  152. package/react-native/boost/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  153. package/react-native/boost/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -27
  154. package/react-native/boost/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  155. package/react-native/boost/boost/smart_ptr/detail/sp_interlocked.hpp +0 -173
  156. package/react-native/boost/boost/smart_ptr/detail/sp_noexcept.hpp +0 -48
  157. package/react-native/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  158. package/react-native/boost/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
  159. package/react-native/boost/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  160. package/react-native/boost/boost/smart_ptr/detail/sp_thread_sleep.hpp +0 -104
  161. package/react-native/boost/boost/smart_ptr/detail/sp_thread_yield.hpp +0 -100
  162. package/react-native/boost/boost/smart_ptr/detail/sp_typeinfo_.hpp +0 -58
  163. package/react-native/boost/boost/smart_ptr/detail/sp_win32_sleep.hpp +0 -49
  164. package/react-native/boost/boost/smart_ptr/intrusive_ptr.hpp +0 -409
  165. package/react-native/boost/boost/smart_ptr/intrusive_ref_counter.hpp +0 -188
  166. package/react-native/cpp/include/Attachment.h +0 -16
  167. package/react-native/cpp/include/Authentication.h +0 -23
  168. package/react-native/cpp/include/Collection.h +0 -13
  169. package/react-native/cpp/include/DQL.h +0 -21
  170. package/react-native/cpp/include/Document.h +0 -17
  171. package/react-native/cpp/include/Identity.h +0 -17
  172. package/react-native/cpp/include/Lifecycle.h +0 -16
  173. package/react-native/cpp/include/LiveQuery.h +0 -17
  174. package/react-native/cpp/include/Logger.h +0 -22
  175. package/react-native/cpp/include/Misc.h +0 -26
  176. package/react-native/cpp/include/Presence.h +0 -14
  177. package/react-native/cpp/include/RetainableState.h +0 -24
  178. package/react-native/cpp/include/SmallPeerInfo.h +0 -17
  179. package/react-native/cpp/include/Transports.h +0 -25
  180. package/react-native/cpp/include/TypedArray.hpp +0 -167
  181. package/react-native/cpp/include/Utils.h +0 -61
  182. package/react-native/cpp/include/main.h +0 -10
  183. package/react-native/cpp/src/Attachment.cpp +0 -86
  184. package/react-native/cpp/src/Authentication.cpp +0 -224
  185. package/react-native/cpp/src/Collection.cpp +0 -54
  186. package/react-native/cpp/src/DQL.cpp +0 -254
  187. package/react-native/cpp/src/Document.cpp +0 -146
  188. package/react-native/cpp/src/Identity.cpp +0 -123
  189. package/react-native/cpp/src/Lifecycle.cpp +0 -75
  190. package/react-native/cpp/src/LiveQuery.cpp +0 -64
  191. package/react-native/cpp/src/Logger.cpp +0 -200
  192. package/react-native/cpp/src/Misc.cpp +0 -271
  193. package/react-native/cpp/src/Presence.cpp +0 -77
  194. package/react-native/cpp/src/RetainableState.cpp +0 -15
  195. package/react-native/cpp/src/SmallPeerInfo.cpp +0 -108
  196. package/react-native/cpp/src/Transports.cpp +0 -270
  197. package/react-native/cpp/src/TypedArray.cpp +0 -303
  198. package/react-native/cpp/src/Utils.cpp +0 -138
  199. package/react-native/cpp/src/main.cpp +0 -149
  200. package/react-native/dittoffi/dittoffi.h +0 -4698
  201. package/react-native/dittoffi/ifaddrs.cpp +0 -385
  202. package/react-native/dittoffi/ifaddrs.h +0 -206
  203. package/react-native/ios/DittoRNSDK.h +0 -7
  204. package/react-native/ios/DittoRNSDK.mm +0 -107
  205. package/react-native/ios/YeetJSIUtils.h +0 -60
  206. package/react-native/ios/YeetJSIUtils.mm +0 -196
  207. package/react-native/lib/commonjs/ditto.rn.js +0 -93
  208. package/react-native/lib/commonjs/ditto.rn.js.map +0 -1
  209. package/react-native/lib/commonjs/index.js +0 -14
  210. package/react-native/lib/commonjs/index.js.map +0 -1
  211. package/react-native/lib/module/ditto.rn.js +0 -83
  212. package/react-native/lib/module/ditto.rn.js.map +0 -1
  213. package/react-native/lib/module/index.js +0 -13
  214. package/react-native/lib/module/index.js.map +0 -1
  215. package/react-native/lib/typescript/ditto.rn.d.ts +0 -15
  216. package/react-native/lib/typescript/ditto.rn.d.ts.map +0 -1
  217. package/react-native/lib/typescript/index.d.ts +0 -1
  218. package/react-native/lib/typescript/index.d.ts.map +0 -1
  219. package/react-native/scripts/ruby/include_local_boost.rb +0 -78
  220. package/react-native/src/ditto.rn.ts +0 -91
  221. package/react-native/src/environment/environment.fallback.ts +0 -4
  222. package/react-native/src/index.ts +0 -26
  223. package/react-native/src/sources/@cbor-redux.ts +0 -2
  224. package/react-native/src/sources/@ditto.core.ts +0 -1
  225. package/react-native/src/sources/@environment.ts +0 -2
  226. package/react-native/src/sources/attachment-fetch-event.ts +0 -54
  227. package/react-native/src/sources/attachment-fetcher-manager.ts +0 -129
  228. package/react-native/src/sources/attachment-fetcher.ts +0 -124
  229. package/react-native/src/sources/attachment-token.ts +0 -48
  230. package/react-native/src/sources/attachment.ts +0 -59
  231. package/react-native/src/sources/augment.ts +0 -89
  232. package/react-native/src/sources/authenticator.ts +0 -314
  233. package/react-native/src/sources/base-pending-cursor-operation.ts +0 -237
  234. package/react-native/src/sources/base-pending-id-specific-operation.ts +0 -109
  235. package/react-native/src/sources/bridge.ts +0 -549
  236. package/react-native/src/sources/build-time-constants.ts +0 -4
  237. package/react-native/src/sources/cbor.ts +0 -35
  238. package/react-native/src/sources/collection-interface.ts +0 -67
  239. package/react-native/src/sources/collection.ts +0 -212
  240. package/react-native/src/sources/collections-event.ts +0 -99
  241. package/react-native/src/sources/counter.ts +0 -77
  242. package/react-native/src/sources/ditto.ts +0 -945
  243. package/react-native/src/sources/document-id.ts +0 -159
  244. package/react-native/src/sources/document-path.ts +0 -303
  245. package/react-native/src/sources/document.ts +0 -192
  246. package/react-native/src/sources/epilogue.ts +0 -24
  247. package/react-native/src/sources/error-codes.ts +0 -52
  248. package/react-native/src/sources/error.ts +0 -203
  249. package/react-native/src/sources/essentials.ts +0 -53
  250. package/react-native/src/sources/ffi-error.ts +0 -117
  251. package/react-native/src/sources/ffi.ts +0 -1972
  252. package/react-native/src/sources/identity.ts +0 -163
  253. package/react-native/src/sources/init.ts +0 -70
  254. package/react-native/src/sources/internal.ts +0 -113
  255. package/react-native/src/sources/keep-alive.ts +0 -69
  256. package/react-native/src/sources/key-path.ts +0 -195
  257. package/react-native/src/sources/live-query-event.ts +0 -208
  258. package/react-native/src/sources/live-query-manager.ts +0 -101
  259. package/react-native/src/sources/live-query.ts +0 -164
  260. package/react-native/src/sources/logger.ts +0 -196
  261. package/react-native/src/sources/observer-manager.ts +0 -175
  262. package/react-native/src/sources/observer.ts +0 -77
  263. package/react-native/src/sources/pending-collections-operation.ts +0 -232
  264. package/react-native/src/sources/pending-cursor-operation.ts +0 -218
  265. package/react-native/src/sources/pending-id-specific-operation.ts +0 -216
  266. package/react-native/src/sources/presence-manager.ts +0 -160
  267. package/react-native/src/sources/presence.ts +0 -238
  268. package/react-native/src/sources/query-result-item.ts +0 -116
  269. package/react-native/src/sources/query-result.ts +0 -55
  270. package/react-native/src/sources/register.ts +0 -92
  271. package/react-native/src/sources/small-peer-info.ts +0 -176
  272. package/react-native/src/sources/static-tcp-client.ts +0 -6
  273. package/react-native/src/sources/store-observer.ts +0 -176
  274. package/react-native/src/sources/store.ts +0 -365
  275. package/react-native/src/sources/subscription-manager.ts +0 -98
  276. package/react-native/src/sources/subscription.ts +0 -88
  277. package/react-native/src/sources/sync-subscription.ts +0 -90
  278. package/react-native/src/sources/sync.ts +0 -495
  279. package/react-native/src/sources/test-helpers.ts +0 -24
  280. package/react-native/src/sources/transport-conditions-manager.ts +0 -104
  281. package/react-native/src/sources/transport-config.ts +0 -428
  282. package/react-native/src/sources/update-result.ts +0 -66
  283. package/react-native/src/sources/update-results-map.ts +0 -57
  284. package/react-native/src/sources/websocket-client.ts +0 -6
  285. package/react-native/src/sources/write-transaction-collection.ts +0 -122
  286. package/react-native/src/sources/write-transaction-pending-cursor-operation.ts +0 -101
  287. package/react-native/src/sources/write-transaction-pending-id-specific-operation.ts +0 -72
  288. package/react-native/src/sources/write-transaction.ts +0 -119
  289. package/react-native.config.js +0 -9
@@ -1,79 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_gcc.hpp
6
- //
7
- // atomic_count for GNU libstdc++ v3
8
- //
9
- // http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html
10
- //
11
- // Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
12
- // Copyright (c) 2002 Lars Gullik Bjønnes <larsbj@lyx.org>
13
- // Copyright 2003-2005 Peter Dimov
14
- //
15
- // Distributed under the Boost Software License, Version 1.0. (See
16
- // accompanying file LICENSE_1_0.txt or copy at
17
- // http://www.boost.org/LICENSE_1_0.txt)
18
- //
19
-
20
- #if __GNUC__ * 100 + __GNUC_MINOR__ >= 402
21
- # include <ext/atomicity.h>
22
- #else
23
- # include <bits/atomicity.h>
24
- #endif
25
-
26
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
27
-
28
- #include <boost/config/pragma_message.hpp>
29
- BOOST_PRAGMA_MESSAGE("Using libstdc++ atomic_count")
30
-
31
- #endif
32
-
33
- namespace boost
34
- {
35
-
36
- namespace detail
37
- {
38
-
39
- #if defined(__GLIBCXX__) // g++ 3.4+
40
-
41
- using __gnu_cxx::__atomic_add;
42
- using __gnu_cxx::__exchange_and_add;
43
-
44
- #endif
45
-
46
- class atomic_count
47
- {
48
- public:
49
-
50
- explicit atomic_count( long v ) : value_( v ) {}
51
-
52
- long operator++()
53
- {
54
- return __exchange_and_add( &value_, +1 ) + 1;
55
- }
56
-
57
- long operator--()
58
- {
59
- return __exchange_and_add( &value_, -1 ) - 1;
60
- }
61
-
62
- operator long() const
63
- {
64
- return __exchange_and_add( &value_, 0 );
65
- }
66
-
67
- private:
68
-
69
- atomic_count(atomic_count const &);
70
- atomic_count & operator=(atomic_count const &);
71
-
72
- mutable _Atomic_word value_;
73
- };
74
-
75
- } // namespace detail
76
-
77
- } // namespace boost
78
-
79
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
@@ -1,63 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_ATOMIC_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_ATOMIC_HPP_INCLUDED
3
-
4
- // boost/detail/atomic_count_gcc_atomic.hpp
5
- //
6
- // atomic_count for g++ 4.7+
7
- //
8
- // Copyright 2007, 2020 Peter Dimov
9
- //
10
- // Distributed under the Boost Software License, Version 1.0.
11
- // https://www.boost.org/LICENSE_1_0.txt
12
-
13
- #include <boost/cstdint.hpp>
14
-
15
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
16
-
17
- #include <boost/config/pragma_message.hpp>
18
- BOOST_PRAGMA_MESSAGE("Using __atomic atomic_count")
19
-
20
- #endif
21
-
22
- namespace boost
23
- {
24
-
25
- namespace detail
26
- {
27
-
28
- class atomic_count
29
- {
30
- public:
31
-
32
- explicit atomic_count( long v ): value_( static_cast< boost::int_least32_t >( v ) )
33
- {
34
- }
35
-
36
- long operator++()
37
- {
38
- return __atomic_add_fetch( &value_, +1, __ATOMIC_ACQ_REL );
39
- }
40
-
41
- long operator--()
42
- {
43
- return __atomic_add_fetch( &value_, -1, __ATOMIC_ACQ_REL );
44
- }
45
-
46
- operator long() const
47
- {
48
- return __atomic_load_n( &value_, __ATOMIC_ACQUIRE );
49
- }
50
-
51
- private:
52
-
53
- atomic_count(atomic_count const &);
54
- atomic_count & operator=(atomic_count const &);
55
-
56
- boost::int_least32_t value_;
57
- };
58
-
59
- } // namespace detail
60
-
61
- } // namespace boost
62
-
63
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_ATOMIC_HPP_INCLUDED
@@ -1,88 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_gcc_x86.hpp
6
- //
7
- // atomic_count for g++ on 486+/AMD64
8
- //
9
- // Copyright 2007 Peter Dimov
10
- //
11
- // Distributed under the Boost Software License, Version 1.0. (See
12
- // accompanying file LICENSE_1_0.txt or copy at
13
- // http://www.boost.org/LICENSE_1_0.txt)
14
- //
15
-
16
- #include <boost/smart_ptr/detail/sp_obsolete.hpp>
17
-
18
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
19
-
20
- #include <boost/config/pragma_message.hpp>
21
- BOOST_PRAGMA_MESSAGE("Using g++/x86 atomic_count")
22
-
23
- #endif
24
-
25
- BOOST_SP_OBSOLETE()
26
-
27
- namespace boost
28
- {
29
-
30
- namespace detail
31
- {
32
-
33
- class atomic_count
34
- {
35
- public:
36
-
37
- explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}
38
-
39
- long operator++()
40
- {
41
- return atomic_exchange_and_add( &value_, +1 ) + 1;
42
- }
43
-
44
- long operator--()
45
- {
46
- return atomic_exchange_and_add( &value_, -1 ) - 1;
47
- }
48
-
49
- operator long() const
50
- {
51
- return atomic_exchange_and_add( &value_, 0 );
52
- }
53
-
54
- private:
55
-
56
- atomic_count(atomic_count const &);
57
- atomic_count & operator=(atomic_count const &);
58
-
59
- mutable int value_;
60
-
61
- private:
62
-
63
- static int atomic_exchange_and_add( int * pw, int dv )
64
- {
65
- // int r = *pw;
66
- // *pw += dv;
67
- // return r;
68
-
69
- int r;
70
-
71
- __asm__ __volatile__
72
- (
73
- "lock\n\t"
74
- "xadd %1, %0":
75
- "+m"( *pw ), "=r"( r ): // outputs (%0, %1)
76
- "1"( dv ): // inputs (%2 == %1)
77
- "memory", "cc" // clobbers
78
- );
79
-
80
- return r;
81
- }
82
- };
83
-
84
- } // namespace detail
85
-
86
- } // namespace boost
87
-
88
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
@@ -1,66 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_nt.hpp
6
- //
7
- // Trivial atomic_count for the single-threaded case
8
- //
9
- // http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html
10
- //
11
- // Copyright 2013 Peter Dimov
12
- //
13
- // Distributed under the Boost Software License, Version 1.0.
14
- // See accompanying file LICENSE_1_0.txt or copy at
15
- // http://www.boost.org/LICENSE_1_0.txt
16
- //
17
-
18
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
19
-
20
- #include <boost/config/pragma_message.hpp>
21
- BOOST_PRAGMA_MESSAGE("Using single-threaded, non-atomic atomic_count")
22
-
23
- #endif
24
-
25
- namespace boost
26
- {
27
-
28
- namespace detail
29
- {
30
-
31
- class atomic_count
32
- {
33
- public:
34
-
35
- explicit atomic_count( long v ): value_( v )
36
- {
37
- }
38
-
39
- long operator++()
40
- {
41
- return ++value_;
42
- }
43
-
44
- long operator--()
45
- {
46
- return --value_;
47
- }
48
-
49
- operator long() const
50
- {
51
- return value_;
52
- }
53
-
54
- private:
55
-
56
- atomic_count(atomic_count const &);
57
- atomic_count & operator=(atomic_count const &);
58
-
59
- long value_;
60
- };
61
-
62
- } // namespace detail
63
-
64
- } // namespace boost
65
-
66
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED
@@ -1,104 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_pthreads.hpp
6
- //
7
- // Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
8
- //
9
- // Distributed under the Boost Software License, Version 1.0. (See
10
- // accompanying file LICENSE_1_0.txt or copy at
11
- // http://www.boost.org/LICENSE_1_0.txt)
12
- //
13
-
14
- #include <boost/assert.hpp>
15
- #include <pthread.h>
16
-
17
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
18
-
19
- #include <boost/config/pragma_message.hpp>
20
- BOOST_PRAGMA_MESSAGE("Using pthread_mutex atomic_count")
21
-
22
- #endif
23
-
24
- //
25
- // The generic pthread_mutex-based implementation sometimes leads to
26
- // inefficiencies. Example: a class with two atomic_count members
27
- // can get away with a single mutex.
28
- //
29
- // Users can detect this situation by checking BOOST_AC_USE_PTHREADS.
30
- //
31
-
32
- namespace boost
33
- {
34
-
35
- namespace detail
36
- {
37
-
38
- class atomic_count
39
- {
40
- private:
41
-
42
- class scoped_lock
43
- {
44
- public:
45
-
46
- scoped_lock(pthread_mutex_t & m): m_(m)
47
- {
48
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
49
- }
50
-
51
- ~scoped_lock()
52
- {
53
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
54
- }
55
-
56
- private:
57
-
58
- pthread_mutex_t & m_;
59
- };
60
-
61
- public:
62
-
63
- explicit atomic_count(long v): value_(v)
64
- {
65
- BOOST_VERIFY( pthread_mutex_init( &mutex_, 0 ) == 0 );
66
- }
67
-
68
- ~atomic_count()
69
- {
70
- BOOST_VERIFY( pthread_mutex_destroy( &mutex_ ) == 0 );
71
- }
72
-
73
- long operator++()
74
- {
75
- scoped_lock lock(mutex_);
76
- return ++value_;
77
- }
78
-
79
- long operator--()
80
- {
81
- scoped_lock lock(mutex_);
82
- return --value_;
83
- }
84
-
85
- operator long() const
86
- {
87
- scoped_lock lock(mutex_);
88
- return value_;
89
- }
90
-
91
- private:
92
-
93
- atomic_count(atomic_count const &);
94
- atomic_count & operator=(atomic_count const &);
95
-
96
- mutable pthread_mutex_t mutex_;
97
- long value_;
98
- };
99
-
100
- } // namespace detail
101
-
102
- } // namespace boost
103
-
104
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
@@ -1,69 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_spin.hpp
6
- //
7
- // Copyright (c) 2013 Peter Dimov
8
- //
9
- // Distributed under the Boost Software License, Version 1.0.
10
- // See accompanying file LICENSE_1_0.txt or copy at
11
- // http://www.boost.org/LICENSE_1_0.txt
12
- //
13
-
14
- #include <boost/smart_ptr/detail/spinlock_pool.hpp>
15
-
16
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
17
-
18
- #include <boost/config/pragma_message.hpp>
19
- BOOST_PRAGMA_MESSAGE("Using spinlock-based atomic_count")
20
-
21
- #endif
22
-
23
- namespace boost
24
- {
25
-
26
- namespace detail
27
- {
28
-
29
- class atomic_count
30
- {
31
- private:
32
-
33
- public:
34
-
35
- explicit atomic_count( long v ): value_( v )
36
- {
37
- }
38
-
39
- long operator++()
40
- {
41
- spinlock_pool<0>::scoped_lock lock( &value_ );
42
- return ++value_;
43
- }
44
-
45
- long operator--()
46
- {
47
- spinlock_pool<0>::scoped_lock lock( &value_ );
48
- return --value_;
49
- }
50
-
51
- operator long() const
52
- {
53
- spinlock_pool<0>::scoped_lock lock( &value_ );
54
- return value_;
55
- }
56
-
57
- private:
58
-
59
- atomic_count(atomic_count const &);
60
- atomic_count & operator=(atomic_count const &);
61
-
62
- long value_;
63
- };
64
-
65
- } // namespace detail
66
-
67
- } // namespace boost
68
-
69
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED
@@ -1,67 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_std_atomic.hpp
6
- //
7
- // atomic_count for std::atomic
8
- //
9
- // Copyright 2013 Peter Dimov
10
- //
11
- // Distributed under the Boost Software License, Version 1.0.
12
- // See accompanying file LICENSE_1_0.txt or copy at
13
- // http://www.boost.org/LICENSE_1_0.txt
14
- //
15
-
16
- #include <atomic>
17
- #include <cstdint>
18
-
19
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
20
-
21
- #include <boost/config/pragma_message.hpp>
22
- BOOST_PRAGMA_MESSAGE("Using std::atomic atomic_count")
23
-
24
- #endif
25
-
26
- namespace boost
27
- {
28
-
29
- namespace detail
30
- {
31
-
32
- class atomic_count
33
- {
34
- public:
35
-
36
- explicit atomic_count( long v ): value_( static_cast< std::int_least32_t >( v ) )
37
- {
38
- }
39
-
40
- long operator++()
41
- {
42
- return value_.fetch_add( 1, std::memory_order_acq_rel ) + 1;
43
- }
44
-
45
- long operator--()
46
- {
47
- return value_.fetch_sub( 1, std::memory_order_acq_rel ) - 1;
48
- }
49
-
50
- operator long() const
51
- {
52
- return value_.load( std::memory_order_acquire );
53
- }
54
-
55
- private:
56
-
57
- atomic_count(atomic_count const &);
58
- atomic_count & operator=(atomic_count const &);
59
-
60
- std::atomic_int_least32_t value_;
61
- };
62
-
63
- } // namespace detail
64
-
65
- } // namespace boost
66
-
67
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED
@@ -1,72 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
3
-
4
- //
5
- // boost/detail/atomic_count_sync.hpp
6
- //
7
- // atomic_count for g++ 4.1+
8
- //
9
- // http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html
10
- //
11
- // Copyright 2007 Peter Dimov
12
- //
13
- // Distributed under the Boost Software License, Version 1.0. (See
14
- // accompanying file LICENSE_1_0.txt or copy at
15
- // http://www.boost.org/LICENSE_1_0.txt)
16
- //
17
-
18
- #include <boost/cstdint.hpp>
19
-
20
- #if defined( __ia64__ ) && defined( __INTEL_COMPILER )
21
- # include <ia64intrin.h>
22
- #endif
23
-
24
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
25
-
26
- #include <boost/config/pragma_message.hpp>
27
- BOOST_PRAGMA_MESSAGE("Using __sync atomic_count")
28
-
29
- #endif
30
-
31
- namespace boost
32
- {
33
-
34
- namespace detail
35
- {
36
-
37
- class atomic_count
38
- {
39
- public:
40
-
41
- explicit atomic_count( long v ): value_( static_cast< boost::int_least32_t >( v ) )
42
- {
43
- }
44
-
45
- long operator++()
46
- {
47
- return __sync_add_and_fetch( &value_, 1 );
48
- }
49
-
50
- long operator--()
51
- {
52
- return __sync_add_and_fetch( &value_, -1 );
53
- }
54
-
55
- operator long() const
56
- {
57
- return __sync_fetch_and_add( &value_, 0 );
58
- }
59
-
60
- private:
61
-
62
- atomic_count(atomic_count const &);
63
- atomic_count & operator=(atomic_count const &);
64
-
65
- mutable boost::int_least32_t value_;
66
- };
67
-
68
- } // namespace detail
69
-
70
- } // namespace boost
71
-
72
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
@@ -1,70 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
3
-
4
- // MS compatible compilers support #pragma once
5
-
6
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7
- # pragma once
8
- #endif
9
-
10
- //
11
- // boost/detail/atomic_count_win32.hpp
12
- //
13
- // Copyright (c) 2001-2005 Peter Dimov
14
- //
15
- // Distributed under the Boost Software License, Version 1.0. (See
16
- // accompanying file LICENSE_1_0.txt or copy at
17
- // http://www.boost.org/LICENSE_1_0.txt)
18
- //
19
-
20
- #include <boost/smart_ptr/detail/sp_interlocked.hpp>
21
-
22
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
23
-
24
- #include <boost/config/pragma_message.hpp>
25
- BOOST_PRAGMA_MESSAGE("Using Win32 atomic_count")
26
-
27
- #endif
28
-
29
- namespace boost
30
- {
31
-
32
- namespace detail
33
- {
34
-
35
- class atomic_count
36
- {
37
- public:
38
-
39
- explicit atomic_count( long v ): value_( v )
40
- {
41
- }
42
-
43
- long operator++()
44
- {
45
- return BOOST_SP_INTERLOCKED_INCREMENT( &value_ );
46
- }
47
-
48
- long operator--()
49
- {
50
- return BOOST_SP_INTERLOCKED_DECREMENT( &value_ );
51
- }
52
-
53
- operator long() const
54
- {
55
- return static_cast<long const volatile &>( value_ );
56
- }
57
-
58
- private:
59
-
60
- atomic_count( atomic_count const & );
61
- atomic_count & operator=( atomic_count const & );
62
-
63
- long value_;
64
- };
65
-
66
- } // namespace detail
67
-
68
- } // namespace boost
69
-
70
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED