@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,179 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_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
- // detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
11
- //
12
- // Copyright (c) 2006 Piotr Wyderski
13
- // Copyright (c) 2006 Tomas Puverle
14
- // Copyright (c) 2006 Peter Dimov
15
- //
16
- // Distributed under the Boost Software License, Version 1.0.
17
- // See accompanying file LICENSE_1_0.txt or copy at
18
- // http://www.boost.org/LICENSE_1_0.txt
19
- //
20
- // Thanks to Michael van der Westhuizen
21
-
22
- #include <boost/smart_ptr/detail/sp_typeinfo_.hpp>
23
- #include <boost/smart_ptr/detail/sp_obsolete.hpp>
24
- #include <boost/config.hpp>
25
- #include <inttypes.h> // int32_t
26
-
27
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
28
-
29
- #include <boost/config/pragma_message.hpp>
30
- BOOST_PRAGMA_MESSAGE("Using g++/Sparc sp_counted_base")
31
-
32
- #endif
33
-
34
- BOOST_SP_OBSOLETE()
35
-
36
- namespace boost
37
- {
38
-
39
- namespace detail
40
- {
41
-
42
- inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )
43
- {
44
- __asm__ __volatile__( "cas [%1], %2, %0"
45
- : "+r" (swap_)
46
- : "r" (dest_), "r" (compare_)
47
- : "memory" );
48
-
49
- return swap_;
50
- }
51
-
52
- inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )
53
- {
54
- // long r = *pw;
55
- // *pw += dv;
56
- // return r;
57
-
58
- for( ;; )
59
- {
60
- int32_t r = *pw;
61
-
62
- if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
63
- {
64
- return r;
65
- }
66
- }
67
- }
68
-
69
- inline void atomic_increment( int32_t * pw )
70
- {
71
- atomic_fetch_and_add( pw, 1 );
72
- }
73
-
74
- inline int32_t atomic_decrement( int32_t * pw )
75
- {
76
- return atomic_fetch_and_add( pw, -1 );
77
- }
78
-
79
- inline int32_t atomic_conditional_increment( int32_t * pw )
80
- {
81
- // long r = *pw;
82
- // if( r != 0 ) ++*pw;
83
- // return r;
84
-
85
- for( ;; )
86
- {
87
- int32_t r = *pw;
88
-
89
- if( r == 0 )
90
- {
91
- return r;
92
- }
93
-
94
- if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
95
- {
96
- return r;
97
- }
98
- }
99
- }
100
-
101
- class BOOST_SYMBOL_VISIBLE sp_counted_base
102
- {
103
- private:
104
-
105
- sp_counted_base( sp_counted_base const & );
106
- sp_counted_base & operator= ( sp_counted_base const & );
107
-
108
- int32_t use_count_; // #shared
109
- int32_t weak_count_; // #weak + (#shared != 0)
110
-
111
- public:
112
-
113
- sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
114
- {
115
- }
116
-
117
- virtual ~sp_counted_base() // nothrow
118
- {
119
- }
120
-
121
- // dispose() is called when use_count_ drops to zero, to release
122
- // the resources managed by *this.
123
-
124
- virtual void dispose() = 0; // nothrow
125
-
126
- // destroy() is called when weak_count_ drops to zero.
127
-
128
- virtual void destroy() // nothrow
129
- {
130
- delete this;
131
- }
132
-
133
- virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0;
134
- virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0;
135
- virtual void * get_untyped_deleter() = 0;
136
-
137
- void add_ref_copy()
138
- {
139
- atomic_increment( &use_count_ );
140
- }
141
-
142
- bool add_ref_lock() // true on success
143
- {
144
- return atomic_conditional_increment( &use_count_ ) != 0;
145
- }
146
-
147
- void release() // nothrow
148
- {
149
- if( atomic_decrement( &use_count_ ) == 1 )
150
- {
151
- dispose();
152
- weak_release();
153
- }
154
- }
155
-
156
- void weak_add_ref() // nothrow
157
- {
158
- atomic_increment( &weak_count_ );
159
- }
160
-
161
- void weak_release() // nothrow
162
- {
163
- if( atomic_decrement( &weak_count_ ) == 1 )
164
- {
165
- destroy();
166
- }
167
- }
168
-
169
- long use_count() const // nothrow
170
- {
171
- return const_cast< int32_t const volatile & >( use_count_ );
172
- }
173
- };
174
-
175
- } // namespace detail
176
-
177
- } // namespace boost
178
-
179
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
@@ -1,186 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_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
- // detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64
12
- //
13
- // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
14
- // Copyright 2004-2005 Peter Dimov
15
- //
16
- // Distributed under the Boost Software License, Version 1.0. (See
17
- // accompanying file LICENSE_1_0.txt or copy at
18
- // http://www.boost.org/LICENSE_1_0.txt)
19
- //
20
- //
21
- // Lock-free algorithm by Alexander Terekhov
22
- //
23
- // Thanks to Ben Hitchings for the #weak + (#shared != 0)
24
- // formulation
25
- //
26
-
27
- #include <boost/smart_ptr/detail/sp_typeinfo_.hpp>
28
- #include <boost/smart_ptr/detail/sp_obsolete.hpp>
29
- #include <boost/config.hpp>
30
-
31
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
32
-
33
- #include <boost/config/pragma_message.hpp>
34
- BOOST_PRAGMA_MESSAGE("Using g++/x86 sp_counted_base")
35
-
36
- #endif
37
-
38
- BOOST_SP_OBSOLETE()
39
-
40
- namespace boost
41
- {
42
-
43
- namespace detail
44
- {
45
-
46
- inline int atomic_exchange_and_add( int * pw, int dv )
47
- {
48
- // int r = *pw;
49
- // *pw += dv;
50
- // return r;
51
-
52
- int r;
53
-
54
- __asm__ __volatile__
55
- (
56
- "lock\n\t"
57
- "xadd %1, %0":
58
- "=m"( *pw ), "=r"( r ): // outputs (%0, %1)
59
- "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)
60
- "memory", "cc" // clobbers
61
- );
62
-
63
- return r;
64
- }
65
-
66
- inline void atomic_increment( int * pw )
67
- {
68
- //atomic_exchange_and_add( pw, 1 );
69
-
70
- __asm__
71
- (
72
- "lock\n\t"
73
- "incl %0":
74
- "=m"( *pw ): // output (%0)
75
- "m"( *pw ): // input (%1)
76
- "cc" // clobbers
77
- );
78
- }
79
-
80
- inline int atomic_conditional_increment( int * pw )
81
- {
82
- // int rv = *pw;
83
- // if( rv != 0 ) ++*pw;
84
- // return rv;
85
-
86
- int rv, tmp;
87
-
88
- __asm__
89
- (
90
- "movl %0, %%eax\n\t"
91
- "0:\n\t"
92
- "test %%eax, %%eax\n\t"
93
- "je 1f\n\t"
94
- "movl %%eax, %2\n\t"
95
- "incl %2\n\t"
96
- "lock\n\t"
97
- "cmpxchgl %2, %0\n\t"
98
- "jne 0b\n\t"
99
- "1:":
100
- "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)
101
- "m"( *pw ): // input (%3)
102
- "cc" // clobbers
103
- );
104
-
105
- return rv;
106
- }
107
-
108
- class BOOST_SYMBOL_VISIBLE sp_counted_base
109
- {
110
- private:
111
-
112
- sp_counted_base( sp_counted_base const & );
113
- sp_counted_base & operator= ( sp_counted_base const & );
114
-
115
- int use_count_; // #shared
116
- int weak_count_; // #weak + (#shared != 0)
117
-
118
- public:
119
-
120
- sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
121
- {
122
- }
123
-
124
- virtual ~sp_counted_base() // nothrow
125
- {
126
- }
127
-
128
- // dispose() is called when use_count_ drops to zero, to release
129
- // the resources managed by *this.
130
-
131
- virtual void dispose() = 0; // nothrow
132
-
133
- // destroy() is called when weak_count_ drops to zero.
134
-
135
- virtual void destroy() // nothrow
136
- {
137
- delete this;
138
- }
139
-
140
- virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0;
141
- virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0;
142
- virtual void * get_untyped_deleter() = 0;
143
-
144
- void add_ref_copy()
145
- {
146
- atomic_increment( &use_count_ );
147
- }
148
-
149
- bool add_ref_lock() // true on success
150
- {
151
- return atomic_conditional_increment( &use_count_ ) != 0;
152
- }
153
-
154
- void release() // nothrow
155
- {
156
- if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
157
- {
158
- dispose();
159
- weak_release();
160
- }
161
- }
162
-
163
- void weak_add_ref() // nothrow
164
- {
165
- atomic_increment( &weak_count_ );
166
- }
167
-
168
- void weak_release() // nothrow
169
- {
170
- if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
171
- {
172
- destroy();
173
- }
174
- }
175
-
176
- long use_count() const // nothrow
177
- {
178
- return static_cast<int const volatile &>( use_count_ );
179
- }
180
- };
181
-
182
- } // namespace detail
183
-
184
- } // namespace boost
185
-
186
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
@@ -1,119 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_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
- // detail/sp_counted_base_nt.hpp
12
- //
13
- // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
14
- // Copyright 2004-2005 Peter Dimov
15
- //
16
- // Distributed under the Boost Software License, Version 1.0. (See
17
- // accompanying file LICENSE_1_0.txt or copy at
18
- // http://www.boost.org/LICENSE_1_0.txt)
19
- //
20
-
21
- #include <boost/smart_ptr/detail/sp_typeinfo_.hpp>
22
- #include <boost/smart_ptr/detail/sp_noexcept.hpp>
23
- #include <boost/config.hpp>
24
- #include <boost/cstdint.hpp>
25
-
26
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
27
-
28
- #include <boost/config/pragma_message.hpp>
29
- BOOST_PRAGMA_MESSAGE("Using single-threaded, non-atomic sp_counted_base")
30
-
31
- #endif
32
-
33
- namespace boost
34
- {
35
-
36
- namespace detail
37
- {
38
-
39
- class BOOST_SYMBOL_VISIBLE sp_counted_base
40
- {
41
- private:
42
-
43
- sp_counted_base( sp_counted_base const & );
44
- sp_counted_base & operator= ( sp_counted_base const & );
45
-
46
- boost::int_least32_t use_count_; // #shared
47
- boost::int_least32_t weak_count_; // #weak + (#shared != 0)
48
-
49
- public:
50
-
51
- sp_counted_base() BOOST_SP_NOEXCEPT: use_count_( 1 ), weak_count_( 1 )
52
- {
53
- }
54
-
55
- virtual ~sp_counted_base() /*BOOST_SP_NOEXCEPT*/
56
- {
57
- }
58
-
59
- // dispose() is called when use_count_ drops to zero, to release
60
- // the resources managed by *this.
61
-
62
- virtual void dispose() BOOST_SP_NOEXCEPT = 0; // nothrow
63
-
64
- // destroy() is called when weak_count_ drops to zero.
65
-
66
- virtual void destroy() BOOST_SP_NOEXCEPT // nothrow
67
- {
68
- delete this;
69
- }
70
-
71
- virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0;
72
- virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0;
73
- virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT = 0;
74
-
75
- void add_ref_copy() BOOST_SP_NOEXCEPT
76
- {
77
- ++use_count_;
78
- }
79
-
80
- bool add_ref_lock() BOOST_SP_NOEXCEPT // true on success
81
- {
82
- if( use_count_ == 0 ) return false;
83
- ++use_count_;
84
- return true;
85
- }
86
-
87
- void release() BOOST_SP_NOEXCEPT
88
- {
89
- if( --use_count_ == 0 )
90
- {
91
- dispose();
92
- weak_release();
93
- }
94
- }
95
-
96
- void weak_add_ref() BOOST_SP_NOEXCEPT
97
- {
98
- ++weak_count_;
99
- }
100
-
101
- void weak_release() BOOST_SP_NOEXCEPT
102
- {
103
- if( --weak_count_ == 0 )
104
- {
105
- destroy();
106
- }
107
- }
108
-
109
- long use_count() const BOOST_SP_NOEXCEPT
110
- {
111
- return use_count_;
112
- }
113
- };
114
-
115
- } // namespace detail
116
-
117
- } // namespace boost
118
-
119
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
@@ -1,147 +0,0 @@
1
- #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
2
- #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_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
- // detail/sp_counted_base_pt.hpp
12
- //
13
- // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
14
- // Copyright 2004-2005 Peter Dimov
15
- //
16
- // Distributed under the Boost Software License, Version 1.0. (See
17
- // accompanying file LICENSE_1_0.txt or copy at
18
- // http://www.boost.org/LICENSE_1_0.txt)
19
- //
20
-
21
- #include <boost/smart_ptr/detail/sp_typeinfo_.hpp>
22
- #include <boost/assert.hpp>
23
- #include <boost/config.hpp>
24
- #include <boost/cstdint.hpp>
25
- #include <pthread.h>
26
-
27
- #if defined(BOOST_SP_REPORT_IMPLEMENTATION)
28
-
29
- #include <boost/config/pragma_message.hpp>
30
- BOOST_PRAGMA_MESSAGE("Using pthread_mutex sp_counted_base")
31
-
32
- #endif
33
-
34
- namespace boost
35
- {
36
-
37
- namespace detail
38
- {
39
-
40
- class BOOST_SYMBOL_VISIBLE sp_counted_base
41
- {
42
- private:
43
-
44
- sp_counted_base( sp_counted_base const & );
45
- sp_counted_base & operator= ( sp_counted_base const & );
46
-
47
- boost::int_least32_t use_count_; // #shared
48
- boost::int_least32_t weak_count_; // #weak + (#shared != 0)
49
-
50
- mutable pthread_mutex_t m_;
51
-
52
- public:
53
-
54
- sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
55
- {
56
- // HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
57
-
58
- #if defined(__hpux) && defined(_DECTHREADS_)
59
- BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 );
60
- #else
61
- BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 );
62
- #endif
63
- }
64
-
65
- virtual ~sp_counted_base() // nothrow
66
- {
67
- BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 );
68
- }
69
-
70
- // dispose() is called when use_count_ drops to zero, to release
71
- // the resources managed by *this.
72
-
73
- virtual void dispose() = 0; // nothrow
74
-
75
- // destroy() is called when weak_count_ drops to zero.
76
-
77
- virtual void destroy() // nothrow
78
- {
79
- delete this;
80
- }
81
-
82
- virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0;
83
- virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0;
84
- virtual void * get_untyped_deleter() = 0;
85
-
86
- void add_ref_copy()
87
- {
88
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
89
- ++use_count_;
90
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
91
- }
92
-
93
- bool add_ref_lock() // true on success
94
- {
95
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
96
- bool r = use_count_ == 0? false: ( ++use_count_, true );
97
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
98
- return r;
99
- }
100
-
101
- void release() // nothrow
102
- {
103
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
104
- boost::int_least32_t new_use_count = --use_count_;
105
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
106
-
107
- if( new_use_count == 0 )
108
- {
109
- dispose();
110
- weak_release();
111
- }
112
- }
113
-
114
- void weak_add_ref() // nothrow
115
- {
116
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
117
- ++weak_count_;
118
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
119
- }
120
-
121
- void weak_release() // nothrow
122
- {
123
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
124
- boost::int_least32_t new_weak_count = --weak_count_;
125
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
126
-
127
- if( new_weak_count == 0 )
128
- {
129
- destroy();
130
- }
131
- }
132
-
133
- long use_count() const // nothrow
134
- {
135
- BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
136
- boost::int_least32_t r = use_count_;
137
- BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
138
-
139
- return r;
140
- }
141
- };
142
-
143
- } // namespace detail
144
-
145
- } // namespace boost
146
-
147
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED