amps-python-client 5.3.4.2__zip → 5.3.4.3__zip

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 (507) hide show
  1. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/LICENSE +50 -39
  2. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/PKG-INFO +1 -1
  3. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/.buildinfo +1 -1
  4. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/code.html +717 -482
  5. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/genindex.html +4 -4
  6. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/index.html +4 -4
  7. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/py-modindex.html +4 -4
  8. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/search.html +4 -4
  9. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/searchindex.js +1 -1
  10. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspyver.h +1 -1
  11. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/index.html +1 -1
  12. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/setup.py +4 -4
  13. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/setup_amps.py +3 -3
  14. amps-python-client-5.3.4.3/src/client_docs.h +1210 -0
  15. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/command_docs.h +10 -5
  16. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BlockPublishStore.hpp +0 -3
  17. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BlockStore.hpp +0 -3
  18. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Field.hpp +6 -2
  19. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MMapStoreBuffer.hpp +21 -14
  20. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryStoreBuffer.hpp +4 -1
  21. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Message.hpp +8 -0
  22. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ServerChooser.hpp +15 -4
  23. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps.h +12 -0
  24. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_impl.h +12 -0
  25. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampscrc.hpp +2 -4
  26. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsplusplus.hpp +13 -17
  27. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsver.h +2 -2
  28. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/util.hpp +4 -4
  29. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_ssl.c +87 -11
  30. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/atfork.c +33 -0
  31. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/tcp.c +210 -44
  32. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/tcps.c +168 -48
  33. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/unix.c +88 -27
  34. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/exponentialdelaystrategy.cpp +23 -29
  35. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixeddelaystrategy.cpp +13 -12
  36. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/haclient_docs.h +34 -20
  37. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixbuilder.cpp +3 -3
  38. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixbuilder_docs.h +3 -3
  39. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixshredder_docs.h +3 -3
  40. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/serverchooser_docs.h +4 -4
  41. amps-python-client-5.3.4.2/src/client_docs.h +0 -956
  42. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/HISTORY +0 -0
  43. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/README.md +0 -0
  44. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  45. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  46. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  47. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  48. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  49. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  50. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  51. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  52. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  53. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  54. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/environment.pickle +0 -0
  55. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/index.doctree +0 -0
  56. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/.buildinfo +0 -0
  57. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -0
  58. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -0
  59. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -0
  60. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -0
  61. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -0
  62. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -0
  63. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -0
  64. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -0
  65. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -0
  66. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -0
  67. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/index.rst.txt +0 -0
  68. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  69. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/alabaster.css +0 -0
  70. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/basic.css +0 -0
  71. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-bright.png +0 -0
  72. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-close.png +0 -0
  73. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment.png +0 -0
  74. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/custom.css +0 -0
  75. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/doctools.js +0 -0
  76. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down-pressed.png +0 -0
  77. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down.png +0 -0
  78. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/file.png +0 -0
  79. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.png +0 -0
  80. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  81. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  82. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery.js +0 -0
  83. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/minus.png +0 -0
  84. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/plus.png +0 -0
  85. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/pygments.css +0 -0
  86. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/searchtools.js +0 -0
  87. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  88. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore.js +0 -0
  89. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up-pressed.png +0 -0
  90. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up.png +0 -0
  91. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/websupport.js +0 -0
  92. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/ack-messages.html +0 -0
  93. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/content-messages.html +0 -0
  94. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/intro.html +0 -0
  95. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/logon.html +0 -0
  96. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/protocol-reference.html +0 -0
  97. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/publishing.html +0 -0
  98. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/query-delimiters.html +0 -0
  99. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/query-subscribe.html +0 -0
  100. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/removing.html +0 -0
  101. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/utilities.html +0 -0
  102. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/genindex.html +0 -0
  103. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/index.html +0 -0
  104. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/objects.inv +0 -0
  105. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/search.html +0 -0
  106. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/searchindex.js +0 -0
  107. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_sources/code.rst.txt +0 -0
  108. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_sources/index.rst.txt +0 -0
  109. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/ajax-loader.gif +0 -0
  110. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/basic.css +0 -0
  111. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/classic.css +0 -0
  112. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment-bright.png +0 -0
  113. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment-close.png +0 -0
  114. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment.png +0 -0
  115. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/default.css +0 -0
  116. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/doctools.js +0 -0
  117. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/down-pressed.png +0 -0
  118. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/down.png +0 -0
  119. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/file.png +0 -0
  120. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/jquery-3.1.0.js +0 -0
  121. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/jquery.js +0 -0
  122. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/minus.png +0 -0
  123. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/plus.png +0 -0
  124. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/pygments.css +0 -0
  125. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/searchtools.js +0 -0
  126. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/sidebar.js +0 -0
  127. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/underscore-1.3.1.js +0 -0
  128. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/underscore.js +0 -0
  129. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/up-pressed.png +0 -0
  130. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/up.png +0 -0
  131. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/websupport.js +0 -0
  132. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/objects.inv +0 -0
  133. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  134. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  135. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  136. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  137. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/deltas.doctree +0 -0
  138. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  139. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  140. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/first-program.doctree +0 -0
  141. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  142. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/installing.doctree +0 -0
  143. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/introduction.doctree +0 -0
  144. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  145. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  146. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/queues.doctree +0 -0
  147. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/sow.doctree +0 -0
  148. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  149. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/utilities.doctree +0 -0
  150. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/environment.pickle +0 -0
  151. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/index.doctree +0 -0
  152. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/.buildinfo +0 -0
  153. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.png +0 -0
  154. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.svg +0 -0
  155. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/connection_string.svg +0 -0
  156. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.png +0 -0
  157. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.svg +0 -0
  158. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.png +0 -0
  159. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.svg +0 -0
  160. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/warning.png +0 -0
  161. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -0
  162. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  163. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -0
  164. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -0
  165. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/deltas.rst.txt +0 -0
  166. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -0
  167. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -0
  168. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/first-program.rst.txt +0 -0
  169. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -0
  170. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/installing.rst.txt +0 -0
  171. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/introduction.rst.txt +0 -0
  172. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -0
  173. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -0
  174. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/queues.rst.txt +0 -0
  175. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/sow.rst.txt +0 -0
  176. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -0
  177. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/utilities.rst.txt +0 -0
  178. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/index.rst.txt +0 -0
  179. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/ajax-loader.gif +0 -0
  180. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/alabaster.css +0 -0
  181. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/basic.css +0 -0
  182. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-bright.png +0 -0
  183. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-close.png +0 -0
  184. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment.png +0 -0
  185. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/custom.css +0 -0
  186. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/doctools.js +0 -0
  187. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/down-pressed.png +0 -0
  188. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/down.png +0 -0
  189. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/file.png +0 -0
  190. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.png +0 -0
  191. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.svg +0 -0
  192. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  193. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery.js +0 -0
  194. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/minus.png +0 -0
  195. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/plus.png +0 -0
  196. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/pygments.css +0 -0
  197. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/searchtools.js +0 -0
  198. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  199. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore.js +0 -0
  200. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/up-pressed.png +0 -0
  201. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/up.png +0 -0
  202. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/websupport.js +0 -0
  203. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/advanced-topics.html +0 -0
  204. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/cpp-compiler-list.html +0 -0
  205. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/cpp-feature-table.html +0 -0
  206. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/creating-commands.html +0 -0
  207. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/deltas.html +0 -0
  208. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/error-handling.html +0 -0
  209. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/exceptions.html +0 -0
  210. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/first-program.html +0 -0
  211. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/high-availability.html +0 -0
  212. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/installing.html +0 -0
  213. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/introduction.html +0 -0
  214. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/moving-from-python-lite.html +0 -0
  215. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/performance-tips.html +0 -0
  216. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/queues.html +0 -0
  217. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/sow.html +0 -0
  218. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/subscriptions.html +0 -0
  219. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/utilities.html +0 -0
  220. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/genindex.html +0 -0
  221. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/index.html +0 -0
  222. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/objects.inv +0 -0
  223. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/search.html +0 -0
  224. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/searchindex.js +0 -0
  225. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  226. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  227. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/environment.pickle +0 -0
  228. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/index.doctree +0 -0
  229. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/.buildinfo +0 -0
  230. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  231. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  232. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  233. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  234. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  235. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/basic.css +0 -0
  236. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  237. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  238. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment.png +0 -0
  239. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/custom.css +0 -0
  240. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/doctools.js +0 -0
  241. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  242. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down.png +0 -0
  243. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/file.png +0 -0
  244. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  245. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  246. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  247. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery.js +0 -0
  248. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/minus.png +0 -0
  249. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/plus.png +0 -0
  250. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/pygments.css +0 -0
  251. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  252. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  253. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore.js +0 -0
  254. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  255. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up.png +0 -0
  256. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/websupport.js +0 -0
  257. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/chapters/crankitup.html +0 -0
  258. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/chapters/equipment.html +0 -0
  259. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/genindex.html +0 -0
  260. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/index.html +0 -0
  261. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/objects.inv +0 -0
  262. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/search.html +0 -0
  263. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/searchindex.js +0 -0
  264. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/resources/custom.css +0 -0
  265. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/resources/flag_logo.svg +0 -0
  266. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  267. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  268. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  269. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  270. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  271. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  272. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  273. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  274. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  275. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  276. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  277. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  278. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  279. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  280. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  281. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  282. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  283. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  284. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  285. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  286. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  287. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  288. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  289. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  290. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  291. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  292. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  293. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  294. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  295. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  296. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  297. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  298. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  299. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  300. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  301. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  302. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  303. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/environment.pickle +0 -0
  304. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/index.doctree +0 -0
  305. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/.buildinfo +0 -0
  306. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -0
  307. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -0
  308. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -0
  309. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -0
  310. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -0
  311. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -0
  312. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -0
  313. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -0
  314. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -0
  315. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -0
  316. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -0
  317. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -0
  318. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -0
  319. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -0
  320. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -0
  321. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -0
  322. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -0
  323. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -0
  324. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -0
  325. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -0
  326. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -0
  327. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -0
  328. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -0
  329. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -0
  330. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -0
  331. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -0
  332. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -0
  333. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -0
  334. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -0
  335. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -0
  336. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  337. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -0
  338. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -0
  339. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -0
  340. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -0
  341. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -0
  342. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -0
  343. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/index.rst.txt +0 -0
  344. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  345. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/alabaster.css +0 -0
  346. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/basic.css +0 -0
  347. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-bright.png +0 -0
  348. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-close.png +0 -0
  349. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment.png +0 -0
  350. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/custom.css +0 -0
  351. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/doctools.js +0 -0
  352. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down-pressed.png +0 -0
  353. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down.png +0 -0
  354. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/file.png +0 -0
  355. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.png +0 -0
  356. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  357. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  358. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery.js +0 -0
  359. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/minus.png +0 -0
  360. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/plus.png +0 -0
  361. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/pygments.css +0 -0
  362. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/searchtools.js +0 -0
  363. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  364. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore.js +0 -0
  365. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up-pressed.png +0 -0
  366. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up.png +0 -0
  367. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/websupport.js +0 -0
  368. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/acks.html +0 -0
  369. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/actions.html +0 -0
  370. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps-statistics.html +0 -0
  371. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps_expressions.html +0 -0
  372. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps_functions.html +0 -0
  373. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/auxiliary_modules.html +0 -0
  374. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -0
  375. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/conflated_topics.html +0 -0
  376. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/constructing-fields.html +0 -0
  377. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/daemon.html +0 -0
  378. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/delta.html +0 -0
  379. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/distribution.html +0 -0
  380. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/enrichment.html +0 -0
  381. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/events.html +0 -0
  382. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/file_format_versions.html +0 -0
  383. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/glossary.html +0 -0
  384. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/ha.html +0 -0
  385. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/installing_and_starting.html +0 -0
  386. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/intro.html +0 -0
  387. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/logging.html +0 -0
  388. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/messageTypes.html +0 -0
  389. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/monitoring.html +0 -0
  390. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/oof.html +0 -0
  391. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/operation.html +0 -0
  392. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/pub_sub.html +0 -0
  393. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/queues.html +0 -0
  394. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/replication.html +0 -0
  395. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/securing.html +0 -0
  396. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/sow.html +0 -0
  397. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/sow_queries.html +0 -0
  398. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/spark.html +0 -0
  399. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/transports.html +0 -0
  400. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/troubleshooting.html +0 -0
  401. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/txlog.html +0 -0
  402. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/usecases.html +0 -0
  403. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/utilities.html +0 -0
  404. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/views.html +0 -0
  405. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/genindex.html +0 -0
  406. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/index.html +0 -0
  407. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/objects.inv +0 -0
  408. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/search.html +0 -0
  409. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/searchindex.js +0 -0
  410. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_bookmarkstore.hpp +0 -0
  411. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_compat.h +0 -0
  412. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_defs.hpp +0 -0
  413. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_recoverypointadapter.hpp +0 -0
  414. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_shims.hpp +0 -0
  415. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_type_object.hpp +0 -0
  416. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_types.hpp +0 -0
  417. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSConsolePublisher.py +0 -0
  418. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSConsoleSubscriber.py +0 -0
  419. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSFIXBuilderPublisher.py +0 -0
  420. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSFIXShredderSubscriber.py +0 -0
  421. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSNVFIXBuilderPublisher.py +0 -0
  422. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSNVFIXShredderSubscriber.py +0 -0
  423. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSPublishForReplay.py +0 -0
  424. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSQueueConsumer.py +0 -0
  425. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSQueuePublisher.py +0 -0
  426. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWConsolePublisher.py +0 -0
  427. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWConsoleSubscriber.py +0 -0
  428. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -0
  429. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWandSubscribeWithOOF.py +0 -0
  430. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSubscribeForReplay.py +0 -0
  431. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSUpdateForOOF.py +0 -0
  432. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/CompositeMessagePublisher.py +0 -0
  433. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/CompositeMessageSubscriber.py +0 -0
  434. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/RandomServerChooser.py +0 -0
  435. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/sample.xml +0 -0
  436. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ampspy_shims.cpp +0 -0
  437. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ampspy_type_object.cpp +0 -0
  438. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/authenticator.cpp +0 -0
  439. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/bookmarkstore.cpp +0 -0
  440. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/client.cpp +0 -0
  441. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cmessagehandler.cpp +0 -0
  442. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/command.cpp +0 -0
  443. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/compositemessagebuilder.cpp +0 -0
  444. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/compositemessageparser.cpp +0 -0
  445. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/conflatingrecoverypointadapter.cpp +0 -0
  446. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BookmarkStore.hpp +0 -0
  447. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Buffer.hpp +0 -0
  448. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -0
  449. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/CompositeMessageParser.hpp +0 -0
  450. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/DefaultServerChooser.hpp +0 -0
  451. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HAClient.hpp +0 -0
  452. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HAClientImpl.hpp +0 -0
  453. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HybridPublishStore.hpp +0 -0
  454. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -0
  455. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -0
  456. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -0
  457. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryPublishStore.hpp +0 -0
  458. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -0
  459. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MessageRouter.hpp +0 -0
  460. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/PublishStore.hpp +0 -0
  461. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -0
  462. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -0
  463. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RecoveryPoint.hpp +0 -0
  464. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -0
  465. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RingBookmarkStore.hpp +0 -0
  466. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -0
  467. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ServerChooserImpl.hpp +0 -0
  468. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_generated.h +0 -0
  469. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_ssl.h +0 -0
  470. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsuri.h +0 -0
  471. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsver.h.in +0 -0
  472. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/constants.hpp +0 -0
  473. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol.c +0 -0
  474. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol_generated.h +0 -0
  475. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/client.c +0 -0
  476. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/makefile +0 -0
  477. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/message.c +0 -0
  478. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/message_generated.h +0 -0
  479. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/transports.c +0 -0
  480. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/uri.c +0 -0
  481. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/failedwritehandler.cpp +0 -0
  482. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixbuilder.cpp +0 -0
  483. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixshredder.cpp +0 -0
  484. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixshredder_docs.h +0 -0
  485. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/haclient.cpp +0 -0
  486. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/hybridpublishstore.cpp +0 -0
  487. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/hybridpublishstore_docs.h +0 -0
  488. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorybookmarkstore.cpp +0 -0
  489. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorybookmarkstore_docs.h +0 -0
  490. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorypublishstore.cpp +0 -0
  491. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorypublishstore_docs.h +0 -0
  492. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/message.cpp +0 -0
  493. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/message_docs.h +0 -0
  494. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/messagestream.cpp +0 -0
  495. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/messagestream_docs.h +0 -0
  496. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/mmapbookmarkstore.cpp +0 -0
  497. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixshredder.cpp +0 -0
  498. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/publishstore.cpp +0 -0
  499. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/raw_wrapper.cpp +0 -0
  500. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/reason.cpp +0 -0
  501. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/recoverypoint.cpp +0 -0
  502. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/recoverypointadapter.cpp +0 -0
  503. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ringbookmarkstore.cpp +0 -0
  504. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/serverchooser.cpp +0 -0
  505. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/sowrecoverypointadapter.cpp +0 -0
  506. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/store.cpp +0 -0
  507. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/versioninfo.cpp +0 -0
@@ -80,7 +80,62 @@ int amps_win_spin_lock(LPCRITICAL_SECTION x);
80
80
  #define AMPS_SPIN_LOCK_UNLIMITED(x) EnterCriticalSection(x)
81
81
  #define AMPS_UNLOCK(x) LeaveCriticalSection(x)
82
82
  #define AMPS_KILLLOCK(x) DeleteCriticalSection(x)
83
+ #else
84
+ #define GET_ERRNO (errno)
85
+ #define SOCK_ERRORCODE(x) x
86
+ #include <pthread.h>
87
+
88
+ static pthread_mutexattr_t _mutexattr_recursive;
89
+ #define AMPS_INITLOCK(x) { \
90
+ pthread_mutexattr_init(&_mutexattr_recursive); \
91
+ pthread_mutexattr_settype(&_mutexattr_recursive, PTHREAD_MUTEX_RECURSIVE);\
92
+ pthread_mutex_init(x, &_mutexattr_recursive); }
93
+ #define AMPS_LOCK(x) pthread_mutex_lock(x)
94
+ #define AMPS_SPIN_LOCK(x) amps_spin_lock_counted(x)
95
+ #define AMPS_SPIN_LOCK_UNLIMITED(x) amps_spin_lock_unlimited(x)
96
+ #define AMPS_UNLOCK(x) pthread_mutex_unlock(x)
97
+ #define AMPS_KILLLOCK(x) pthread_mutex_destroy(x)
98
+ #endif
99
+
100
+ #ifdef AMPS_CPP_COUNT_THREADS
101
+ #define AMPS_INC_THREAD_COUNT(x) AMPS_FETCH_ADD(x, 1)
102
+ #else
103
+ #define AMPS_INC_THREAD_COUNT(x)
104
+ #endif
105
+
106
+ #ifdef _WIN32
107
+ INIT_ONCE ampsTcpsThreadKeyOnce = INIT_ONCE_STATIC_INIT;
108
+ DWORD ampsTcpsThreadKey = TLS_OUT_OF_INDEXES;
109
+
110
+ void amps_tcps_delete_key(void)
111
+ {
112
+ TlsFree(ampsTcpsThreadKey);
113
+ }
114
+
115
+ BOOL CALLBACK amps_tcps_init_key(PINIT_ONCE pKeyOnce, PVOID unused, PVOID* unused2)
116
+ {
117
+ if ((ampsTcpsThreadKey = TlsAlloc()) == TLS_OUT_OF_INDEXES)
118
+ {
119
+ return FALSE;
120
+ }
121
+ atexit(amps_tcps_delete_key);
122
+ return TRUE;
123
+ }
124
+
125
+ DWORD amps_tcps_get_thread_key(void)
126
+ {
127
+ InitOnceExecuteOnce(&ampsTcpsThreadKeyOnce, amps_tcps_init_key, NULL, NULL);
128
+ return ampsTcpsThreadKey;
129
+ }
130
+
131
+ void amps_tcps_set_thread_key(void* pVal)
132
+ {
133
+ InitOnceExecuteOnce(&ampsTcpsThreadKeyOnce, amps_tcps_init_key, NULL, NULL);
134
+ TlsSetValue(ampsTcpsThreadKey, pVal);
135
+ }
136
+
83
137
  int tcpsThreadTimeoutMillis = 10000;
138
+
84
139
  #define AMPS_JOIN_DECLARE() \
85
140
  DWORD tid = (DWORD)0; \
86
141
  HANDLE tidH = (HANDLE)0
@@ -92,51 +147,90 @@ int tcpsThreadTimeoutMillis = 10000;
92
147
  { \
93
148
  if (tid != GetCurrentThreadId()) \
94
149
  { \
95
- if(WAIT_TIMEOUT == WaitForSingleObject(tidH, tcpsThreadTimeoutMillis)) \
96
- { \
97
- TerminateThread(tidH, -1); \
98
- } \
150
+ AMPS_INC_THREAD_COUNT(&amps_thread_join_count); \
151
+ WaitForSingleObject(tidH, tcpsThreadTimeoutMillis); \
152
+ CloseHandle(tidH); \
153
+ } \
154
+ else \
155
+ { \
156
+ amps_tcps_set_thread_key((void*)tidH); \
99
157
  } \
100
- CloseHandle(tidH); \
101
158
  }
102
159
  #define AMPS_SLEEP(x) \
103
160
  Sleep(x)
104
161
  #define SHUT_RDWR SD_BOTH
105
162
  #else
106
- #define GET_ERRNO (errno)
107
- #define SOCK_ERRORCODE(x) x
108
- #include <pthread.h>
163
+ pthread_once_t ampsTcpsThreadKeyOnce = PTHREAD_ONCE_INIT;
164
+ pthread_key_t ampsTcpsThreadKey;
109
165
 
110
- static pthread_mutexattr_t _mutexattr_recursive;
111
- #define AMPS_INITLOCK(x) { \
112
- pthread_mutexattr_init(&_mutexattr_recursive); \
113
- pthread_mutexattr_settype(&_mutexattr_recursive, PTHREAD_MUTEX_RECURSIVE);\
114
- pthread_mutex_init(x, &_mutexattr_recursive); }
115
- #define AMPS_LOCK(x) pthread_mutex_lock(x)
116
- #define AMPS_SPIN_LOCK(x) amps_spin_lock_counted(x)
117
- #define AMPS_SPIN_LOCK_UNLIMITED(x) amps_spin_lock_unlimited(x)
166
+ void amps_tcps_detach_thread(void* vpSelf)
167
+ {
168
+ pthread_detach((pthread_t)vpSelf);
169
+ AMPS_INC_THREAD_COUNT(&amps_thread_detach_count);
170
+ }
171
+
172
+ void amps_tcps_delete_thread_key(void)
173
+ {
174
+ pthread_key_delete(ampsTcpsThreadKey);
175
+ }
176
+
177
+ void amps_tcps_init_thread_key()
178
+ {
179
+ pthread_key_create(&ampsTcpsThreadKey, amps_tcps_detach_thread);
180
+ atexit(amps_tcps_delete_thread_key);
181
+ }
182
+
183
+ void amps_tcps_set_thread_key(void* pVal)
184
+ {
185
+ (void) pthread_once(&ampsTcpsThreadKeyOnce, amps_tcps_init_thread_key);
186
+ pthread_setspecific(ampsTcpsThreadKey, pVal);
187
+ }
118
188
 
119
- #define AMPS_UNLOCK(x) pthread_mutex_unlock(x)
120
- #define AMPS_KILLLOCK(x) pthread_mutex_destroy(x)
121
189
  #define AMPS_JOIN_DECLARE() \
122
190
  pthread_t tid = (pthread_t)0;
123
191
 
124
192
  #if __STDC_VERSION__ >= 201100
125
193
  #define AMPS_JOIN(x) \
126
194
  tid = atomic_exchange((&x), (pthread_t)0); \
127
- if(tid!=(pthread_t)0 && tid!=pthread_self()) \
195
+ if(tid != (pthread_t)0) \
128
196
  { \
129
- pthread_join(tid, NULL); \
197
+ if(tid != pthread_self()) \
198
+ { \
199
+ AMPS_INC_THREAD_COUNT(&amps_thread_join_count); \
200
+ pthread_join(tid, NULL); \
201
+ } \
202
+ else \
203
+ { \
204
+ amps_tcps_set_thread_key((void*)tid); \
205
+ } \
206
+ } \
207
+ else \
208
+ { \
209
+ /* Give recv thread a chance to exit in case it hasn't yet */ \
210
+ usleep(10); \
130
211
  }
131
212
  #else
132
213
  #define AMPS_JOIN(x) \
133
214
  tid = AMPS_FETCH_ADD(&x, (pthread_t)0); \
134
- if(tid!=(pthread_t)0 && tid!=pthread_self()) \
215
+ if(tid != (pthread_t)0) \
135
216
  { \
136
- if(__sync_bool_compare_and_swap(&x, tid, (pthread_t)0)) \
217
+ if(__sync_bool_compare_and_swap(&x, tid, 0)) \
137
218
  { \
138
- pthread_join(tid, NULL); \
219
+ if(tid != pthread_self()) \
220
+ { \
221
+ AMPS_INC_THREAD_COUNT(&amps_thread_join_count); \
222
+ pthread_join(tid, NULL); \
223
+ } \
224
+ else \
225
+ { \
226
+ amps_tcps_set_thread_key((void*)tid); \
227
+ } \
139
228
  } \
229
+ } \
230
+ else \
231
+ { \
232
+ /* Give recv thread a chance to exit in case it hasn't yet */ \
233
+ usleep(10); \
140
234
  }
141
235
  #endif
142
236
 
@@ -904,6 +998,7 @@ amps_result amps_tcps_connect(amps_handle transport, const amps_char* address)
904
998
  * important to do it in two steps, since we use me->thread as a poor-man's cancellation mechanism */
905
999
  if (me->threadH)
906
1000
  {
1001
+ AMPS_INC_THREAD_COUNT(&amps_thread_create_count);
907
1002
  ResumeThread(me->threadH);
908
1003
  }
909
1004
  else
@@ -926,6 +1021,7 @@ amps_result amps_tcps_connect(amps_handle transport, const amps_char* address)
926
1021
  result = AMPS_E_MEMORY;
927
1022
  goto error;
928
1023
  }
1024
+ AMPS_INC_THREAD_COUNT(&amps_thread_create_count);
929
1025
  #endif
930
1026
  for (i = 0; i < AMPS_THREAD_START_TIMEOUT && me->threadCreatedCallbackResult == -1; ++i)
931
1027
  {
@@ -941,6 +1037,7 @@ amps_result amps_tcps_connect(amps_handle transport, const amps_char* address)
941
1037
  {
942
1038
  fd = AMPS_IEX_GET(&me->fd, AMPS_INVALID_SOCKET);
943
1039
  ssl = (_amps_SSL*)AMPS_IEX_GET(&me->ssl, 0);
1040
+ AMPS_JOIN(me->thread);
944
1041
  amps_tcps_set_error(me, "Thread creation callback failed");
945
1042
  }
946
1043
 
@@ -1249,23 +1346,27 @@ amps_result amps_tcps_handle_disconnect(
1249
1346
  goto error;
1250
1347
  }
1251
1348
 
1252
- #ifndef _WIN32
1349
+ #ifdef _WIN32
1350
+ HANDLE tidH = (AMPS_CURRENT_THREAD() == me->thread) ? me->threadH : NULL;
1351
+ #else
1253
1352
  pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancelState);
1353
+ void* vpTid = (void*)(pthread_self());
1254
1354
  #endif
1255
1355
  /* Call the disconect handler. */
1256
1356
  result = me->disconnectHandler(me, me->disconnectHandlerUserData);
1257
- #ifndef _WIN32
1258
- pthread_setcancelstate(cancelState, &unusedCancelState);
1259
- #endif
1260
1357
  if (result == AMPS_E_OK)
1261
1358
  {
1262
- result = AMPS_E_RETRY;
1359
+ #ifdef _WIN32
1360
+ if (tidH)
1361
+ {
1362
+ amps_tcps_set_thread_key(tidH);
1363
+ }
1364
+ #else
1365
+ amps_tcps_set_thread_key(vpTid);
1366
+ #endif
1263
1367
  }
1264
1368
 
1265
1369
  error:
1266
- #ifndef _WIN32
1267
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancelState);
1268
- #endif
1269
1370
  AMPS_UNLOCK(&me->lock);
1270
1371
  #ifndef _WIN32
1271
1372
  pthread_cleanup_pop(0);
@@ -1503,12 +1604,12 @@ int amps_tcps_locked_read(amps_tcps_t* me_,
1503
1604
  #ifdef _WIN32
1504
1605
  DWORD amps_tcps_threaded_reader(void* userData)
1505
1606
  {
1506
- DWORD self = GetCurrentThreadId();
1507
- HANDLE selfH = GetCurrentThread();
1607
+ AMPS_THREAD_ID tid = AMPS_CURRENT_THREAD();
1608
+ HANDLE tidH = GetCurrentThread();
1508
1609
  amps_tcps_t* me = (amps_tcps_t*)userData;
1509
1610
  if (me->threadCreatedCallback)
1510
1611
  {
1511
- amps_result result = me->threadCreatedCallback(selfH,
1612
+ amps_result result = me->threadCreatedCallback(tidH,
1512
1613
  me->threadCreatedCallbackUserData);
1513
1614
  AMPS_IEX(&me->threadCreatedCallbackResult, (long)result);
1514
1615
  if (result != AMPS_E_OK)
@@ -1525,8 +1626,9 @@ void* amps_tcps_threaded_reader(void* userData)
1525
1626
  {
1526
1627
  int unusedCancelState = 0;
1527
1628
  amps_tcps_t* me = (amps_tcps_t*)userData;
1629
+ AMPS_THREAD_ID tid = AMPS_CURRENT_THREAD();
1528
1630
  /* Wait for pthread_create to set me->thread */
1529
- while (me->thread != pthread_self()
1631
+ while (me->thread != tid
1530
1632
  && !me->disconnecting
1531
1633
  && !me->destroying)
1532
1634
  {
@@ -1547,17 +1649,18 @@ void* amps_tcps_threaded_reader(void* userData)
1547
1649
  AMPS_IEX(&me->threadCreatedCallbackResult, (long)AMPS_E_OK);
1548
1650
  }
1549
1651
  #endif
1550
- unsigned char* buffer, *newBuffer, *end, *readPoint, *parsePoint;
1652
+ unsigned char* buffer = 0, *newBuffer = 0, *end = 0, *readPoint = 0;
1653
+ unsigned char* parsePoint = 0;
1551
1654
 
1552
- unsigned int msglenN;
1553
- unsigned long msglen, currentPosition, bytesRead = 0;
1554
- int received;
1655
+ unsigned int msglenN = 0;
1656
+ unsigned long msglen = 0, currentPosition = 0, bytesRead = 0;
1657
+ int received = 0;
1555
1658
  int cancelState = 0;
1556
1659
  const size_t BUFFER_SIZE = 16 * 1024;
1557
1660
  const unsigned MAX_MESSAGE_SIZE = 1024 * 1024 * 1024;
1558
1661
  amps_uint64_t lastReadTime = 0;
1559
1662
  amps_uint64_t lastIdleTime = 0;
1560
- amps_handle message;
1663
+ amps_handle message = 0;
1561
1664
 
1562
1665
  /* capture the connection version we are using now. */
1563
1666
  unsigned connectionVersion = me->connectionVersion;
@@ -1757,33 +1860,44 @@ cleanup:
1757
1860
  #endif
1758
1861
  amps_message_destroy(message);
1759
1862
  free(buffer);
1760
- if (me->destroying)
1761
- {
1762
- return 0;
1763
- }
1764
1863
  // If exiting as the reader thread, clear me->thread
1765
1864
  // Unless me-thread is 0, we're not getting joined, so detach
1766
- AMPS_THREAD_ID tid = AMPS_CURRENT_THREAD();
1767
1865
  if (me->threadExitCallback)
1768
1866
  {
1769
1867
  me->threadExitCallback(tid, me->threadExitCallbackUserData);
1770
1868
  }
1771
1869
  #if __STDC_VERSION__ >= 201100
1772
- if (atomic_compare_exchange_strong(&(me->thread), &tid, 0))
1870
+ AMPS_THREAD_ID mytid = tid;
1871
+ bool swapped = atomic_compare_exchange_strong(&(me->thread), &tid, 0);
1872
+ if (swapped || me->thread != 0)
1773
1873
  #elif defined(_WIN32)
1874
+ // This returns the initial value of me->thread
1774
1875
  if (InterlockedCompareExchange((volatile unsigned int*)(&(me->thread)),
1775
- (unsigned int)tid, (unsigned int)0))
1876
+ (unsigned int)tid, (unsigned int)0) != 0)
1776
1877
  #else
1878
+ AMPS_THREAD_ID mytid = tid;
1777
1879
  int swapped = (int)__sync_bool_compare_and_swap(&(me->thread), tid, 0);
1778
1880
  if (swapped || me->thread != 0)
1779
1881
  #endif
1780
1882
  {
1883
+ AMPS_INC_THREAD_COUNT(&amps_thread_detach_count);
1781
1884
  #ifdef _WIN32
1782
1885
  CloseHandle((HANDLE)(AMPS_IEX(&(me->threadH), 0)));
1783
1886
  #else
1784
- pthread_detach(tid);
1887
+ pthread_detach(mytid);
1785
1888
  #endif
1889
+ amps_tcps_set_thread_key(NULL);
1786
1890
  }
1891
+ #ifdef _WIN32
1892
+ else
1893
+ {
1894
+ tidH = TlsGetValue(amps_tcps_get_thread_key());
1895
+ if (tidH != NULL)
1896
+ {
1897
+ CloseHandle(tidH);
1898
+ }
1899
+ }
1900
+ #endif
1787
1901
 
1788
1902
  return 0;
1789
1903
  }
@@ -1798,6 +1912,12 @@ amps_tcps_attempt_reconnect(amps_handle transport, unsigned version)
1798
1912
  version = me->connectionVersion;
1799
1913
  }
1800
1914
  res = amps_tcps_handle_disconnect(me, version);
1915
+ if (res == AMPS_E_OK)
1916
+ {
1917
+ // We don't want non-receive threads detaching
1918
+ amps_tcps_set_thread_key(NULL);
1919
+ res = AMPS_E_RETRY;
1920
+ }
1801
1921
  return res;
1802
1922
  }
1803
1923
 
@@ -42,8 +42,42 @@ static pthread_mutexattr_t _mutexattr_recursive;
42
42
 
43
43
  #define AMPS_UNLOCK(x) pthread_mutex_unlock(x)
44
44
  #define AMPS_KILLLOCK(x) pthread_mutex_destroy(x)
45
+
46
+ #ifdef AMPS_CPP_COUNT_THREADS
47
+ #define AMPS_INC_THREAD_COUNT(x) AMPS_FETCH_ADD(x, 1)
48
+ #else
49
+ #define AMPS_INC_THREAD_COUNT(x)
50
+ #endif
51
+
52
+ pthread_once_t ampsUnixThreadKeyOnce = PTHREAD_ONCE_INIT;
53
+ pthread_key_t ampsUnixThreadKey;
54
+
55
+ void amps_unix_detach_thread(void* vpSelf)
56
+ {
57
+ pthread_detach((pthread_t)vpSelf);
58
+ AMPS_INC_THREAD_COUNT(&amps_thread_detach_count);
59
+ }
60
+
61
+ void amps_unix_delete_thread_key(void)
62
+ {
63
+ pthread_key_delete(ampsUnixThreadKey);
64
+ }
65
+
66
+ void amps_unix_init_thread_key()
67
+ {
68
+ pthread_key_create(&ampsUnixThreadKey, amps_unix_detach_thread);
69
+ atexit(amps_unix_delete_thread_key);
70
+ }
71
+
72
+ void amps_unix_set_thread_key(void* pVal)
73
+ {
74
+ (void) pthread_once(&ampsUnixThreadKeyOnce, amps_unix_init_thread_key);
75
+ pthread_setspecific(ampsUnixThreadKey, pVal);
76
+ }
77
+
45
78
  #if __STDC_VERSION__ >= 201100
46
79
  #include <stdatomic.h>
80
+ #include <stdbool.h>
47
81
  #define AMPS_IEX(ptr, value) atomic_exchange_explicit((ptr), (value), memory_order_acq_rel)
48
82
  #define AMPS_IEX_GET(ptr, value) atomic_exchange_explicit((ptr), (value), memory_order_acq_rel)
49
83
  #define AMPS_IEX_LONG(ptr, value) atomic_exchange_explicit((ptr), (value), memory_order_acq_rel)
@@ -51,9 +85,22 @@ static pthread_mutexattr_t _mutexattr_recursive;
51
85
  #define AMPS_FETCH_SUB(ptr, value) atomic_fetch_sub_explicit((ptr), (value), memory_order_acq_rel)
52
86
  #define AMPS_JOIN(x) \
53
87
  tid = atomic_exchange((&x), (pthread_t)0); \
54
- if(tid!=(pthread_t)0 && tid!=pthread_self()) \
88
+ if(tid != (pthread_t)0) \
89
+ { \
90
+ if(tid != pthread_self()) \
91
+ { \
92
+ AMPS_INC_THREAD_COUNT(&amps_thread_join_count); \
93
+ pthread_join(tid, NULL); \
94
+ } \
95
+ else \
96
+ { \
97
+ amps_unix_set_thread_key((void*)tid); \
98
+ } \
99
+ } \
100
+ else \
55
101
  { \
56
- pthread_join(tid, NULL); \
102
+ /* Give recv thread a chance to exit in case it hasn't yet */ \
103
+ usleep(10); \
57
104
  }
58
105
  #else
59
106
  #define AMPS_IEX(ptr, value) (void)__sync_lock_test_and_set((ptr), (value))
@@ -64,12 +111,25 @@ static pthread_mutexattr_t _mutexattr_recursive;
64
111
 
65
112
  #define AMPS_JOIN(x) \
66
113
  tid = AMPS_FETCH_ADD(&x, (pthread_t)0); \
67
- if(tid!=(pthread_t)0 && tid!=pthread_self()) \
114
+ if(tid != (pthread_t)0) \
68
115
  { \
69
- if(__sync_bool_compare_and_swap(&x, tid, (pthread_t)0)) \
116
+ if(__sync_bool_compare_and_swap(&x, tid, 0)) \
70
117
  { \
71
- pthread_join(tid, NULL); \
118
+ if(tid != pthread_self()) \
119
+ { \
120
+ AMPS_INC_THREAD_COUNT(&amps_thread_join_count); \
121
+ pthread_join(tid, NULL); \
122
+ } \
123
+ else \
124
+ { \
125
+ amps_unix_set_thread_key((void*)tid); \
126
+ } \
72
127
  } \
128
+ } \
129
+ else \
130
+ { \
131
+ /* Give recv thread a chance to exit in case it hasn't yet */ \
132
+ usleep(10); \
73
133
  }
74
134
  #endif
75
135
  #define AMPS_JOIN_DECLARE() \
@@ -425,6 +485,7 @@ amps_result amps_unix_connect(amps_handle transport, amps_char* address)
425
485
  amps_unix_set_error(me, "Failed to create thread for receive");
426
486
  result = AMPS_E_MEMORY; goto error;
427
487
  }
488
+ AMPS_INC_THREAD_COUNT(&amps_thread_create_count);
428
489
  for (int i = 0; i < AMPS_THREAD_START_TIMEOUT && me->threadCreatedCallbackResult == -1; ++i)
429
490
  {
430
491
  AMPS_SLEEP(4);
@@ -444,7 +505,7 @@ error:
444
505
  shutdown(fd, SHUT_RDWR);
445
506
  closesocket(fd);
446
507
  }
447
- me->thread = (pthread_t)0;
508
+ AMPS_JOIN(me->thread);
448
509
  }
449
510
  AMPS_UNLOCK(&me->lock);
450
511
  pthread_cleanup_pop(0);
@@ -570,12 +631,12 @@ amps_result amps_unix_handle_disconnect(
570
631
  }
571
632
 
572
633
  pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancelState);
573
- /* Call the disconect handler. */
634
+ /* Call the disconnect handler. */
574
635
  result = me->disconnectHandler(me, me->disconnectHandlerUserData);
575
636
  pthread_setcancelstate(cancelState, &unusedCancelState);
576
637
  if (result == AMPS_E_OK)
577
638
  {
578
- result = AMPS_E_RETRY;
639
+ amps_unix_set_thread_key((void*)pthread_self());
579
640
  }
580
641
  error:
581
642
  pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancelState);
@@ -692,24 +753,25 @@ void* amps_unix_threaded_reader(void* userData)
692
753
  {
693
754
  int unusedCancelState = 0;
694
755
  amps_unix_t* me = (amps_unix_t*)userData;
695
- unsigned char* buffer, *newBuffer, *end, *readPoint, *parsePoint;
696
- unsigned int msglenN;
697
- unsigned long msglen, currentPosition, bytesRead = 0;
698
- ssize_t received;
699
- ssize_t recv_result;
756
+ pthread_t tid = pthread_self();
757
+ unsigned char* buffer = 0, *newBuffer = 0, *end = 0, *readPoint = 0, *parsePoint = 0;
758
+ unsigned int msglenN = 0;
759
+ unsigned long msglen = 0, currentPosition = 0, bytesRead = 0;
760
+ ssize_t received = 0;
761
+ ssize_t recv_result = 0;
700
762
  int cancelState = 0;
701
763
  const size_t BUFFER_SIZE = 16 * 1024;
702
764
  const unsigned MAX_MESSAGE_SIZE = 1024 * 1024 * 1024;
703
765
  amps_uint64_t lastReadTime = 0;
704
766
  amps_uint64_t lastIdleTime = 0;
705
- amps_handle message;
767
+ amps_handle message = 0;
706
768
 
707
769
  /* capture the connection version we are using now. */
708
770
  unsigned connectionVersion = me->connectionVersion;
709
771
  AMPS_SOCKET fd = me->fd;
710
772
 
711
773
  /* Wait for pthread_create to set me->thread */
712
- while (me->thread != pthread_self()
774
+ while (me->thread != tid
713
775
  && !me->disconnecting
714
776
  && !me->destroying)
715
777
  {
@@ -894,29 +956,23 @@ cleanup:
894
956
  pthread_cleanup_pop(0);
895
957
  amps_message_destroy(message);
896
958
  free(buffer);
897
- if (me->destroying)
898
- {
899
- return 0;
900
- }
901
959
  // If exiting as the reader thread, clear me->thread
902
960
  // Unless me-thread is 0, we're not getting joined, so detach
903
- pthread_t tid = pthread_self();
904
961
  if (me->threadExitCallback)
905
962
  {
906
963
  me->threadExitCallback(tid, me->threadExitCallbackUserData);
907
964
  }
965
+ pthread_t mytid = tid;
908
966
  #if __STDC_VERSION__ >= 201100
909
- if (atomic_compare_exchange_strong(&(me->thread), &tid, (pthread_t)0))
967
+ bool swapped = atomic_compare_exchange_strong(&(me->thread), &tid, 0);
910
968
  #else
911
969
  int swapped = (int)__sync_bool_compare_and_swap(&(me->thread), tid, 0);
912
- if (swapped || me->thread != 0)
913
970
  #endif
971
+ if (swapped || me->thread != 0)
914
972
  {
915
- pthread_detach(tid);
916
- }
917
- else if (me->thread != 0)
918
- {
919
- pthread_detach(tid);
973
+ AMPS_INC_THREAD_COUNT(&amps_thread_detach_count);
974
+ pthread_detach(mytid);
975
+ amps_unix_set_thread_key(NULL);
920
976
  }
921
977
  return 0;
922
978
  }
@@ -931,6 +987,11 @@ amps_unix_attempt_reconnect(amps_handle transport, unsigned version)
931
987
  version = me->connectionVersion;
932
988
  }
933
989
  res = amps_unix_handle_disconnect(transport, version);
990
+ if (res == AMPS_E_OK)
991
+ {
992
+ amps_unix_set_thread_key(NULL);
993
+ res = AMPS_E_RETRY;
994
+ }
934
995
  return res;
935
996
  }
936
997
 
@@ -84,35 +84,29 @@ namespace ampspy
84
84
  NONE;
85
85
  }
86
86
 
87
- static const char* docstring =
88
- "ExponentialDelayStrategy is an implementation that exponentially\n"
89
- "backs off when reconnecting to the same server, with a maximum\n"
90
- "time to retry before it gives up entirely.\n\n"
91
- "By default, an ExponentialDelayStrategy has an initial delay of\n"
92
- "200 ms, a maximum delay of 20 seconds, a backoff exponent of\n"
93
- "2.0, and has no limit to the amount of time to retry the connection.\n"
94
- "\n"
95
- "Constructor parameters:\n\n"
96
- ":param initial_delay: The time (in milliseconds) to wait before\n"
97
- " reconnecting to a server for the first\n"
98
- " time after a failed connection.\n\n"
99
- ":param maximum_delay: The maximum time to wait for any reconnect\n"
100
- " attempt (milliseconds). Exponential\n"
101
- " backoff will not exceed this maximum.\n\n"
102
- ":param backoff_exponent: The exponent to use for calculating the\n"
103
- " next delay time. For example, if the\n"
104
- " initial time is 200ms and the exponent\n"
105
- " is 2.0, the next delay will be 400ms,\n"
106
- " then 800ms, etc.\n\n"
107
- ":param maximum_retry_time: The maximum time (milliseconds) to allow\n"
108
- " reconnect attempts to continue without\n"
109
- " a successful connection, before \"giving\n"
110
- " up\" and abandoning the connection attempt.\n\n"
111
- ":param jitter: The amount of 'jitter' to apply when\n"
112
- " calculating a delay time, measured in multiples\n"
113
- " of the initial delay. Jitter is used to reduce\n"
114
- " the number of simultaneous reconnects that may\n"
115
- " be issued from multiple clients.\n\n\n";
87
+ static const char* docstring = R"docstring(ExponentialDelayStrategy(initial_delay=200, maximum_delay=20000, backoff_exponent=2.0, maximum_retry_time=0, jitter=1.0)
88
+ ``ExponentialDelayStrategy`` is an implementation that exponentially backs off when reconnecting to
89
+ the same server, with a maximum time to retry before it gives up entirely.
90
+
91
+ By default, an ``ExponentialDelayStrategy`` has an initial delay of 200 ms, a maximum delay of 20 seconds,
92
+ a backoff exponent of 2.0, and has no limit to the amount of time to retry the connection.
93
+
94
+ **Constructor Arguments:**
95
+
96
+ :param initial_delay: The time (in milliseconds) to wait before reconnecting to a server for the first
97
+ time after a failed connection.
98
+ :param maximum_delay: The maximum time to wait for any reconnect attempt (milliseconds).
99
+ Exponential backoff will not exceed this maximum.
100
+ :param backoff_exponent: The exponent to use for calculating the next delay time. For example, if the
101
+ initial time is 200ms and the exponent is 2.0, the next delay will be 400ms,
102
+ then 800ms, etc.
103
+ :param maximum_retry_time: The maximum time (milliseconds) to allow reconnect attempts to continue
104
+ without a successful connection, before 'giving up' and abandoning the
105
+ connection attempt.
106
+ :param jitter: The amount of 'jitter' to apply when calculating a delay time, measured in multiples
107
+ of the initial delay. Jitter is used to reduce the number of simultaneous reconnects
108
+ that may be issued from multiple clients.
109
+ )docstring";
116
110
 
117
111
  void add_types(PyObject* module_)
118
112
  {
@@ -78,18 +78,19 @@ namespace ampspy
78
78
  NONE;
79
79
  }
80
80
 
81
- static const char* docstring =
82
- "FixedDelayStrategy is a reconnect delay strategy implementation that\n"
83
- "waits a fixed amount of time before retrying a connection.\n"
84
- "\n"
85
- "By default, a FixedDelayStrategy waits for 200ms between connection attempts\n"
86
- "and does not have a maximum timeout.\n\n"
87
- "Constructor parameters:\n\n"
88
- ":param initial_delay: The time (in milliseconds) to wait before\n"
89
- " reconnecting to a server for the first\n"
90
- " time after a failed connection.\n\n"
91
- ":param maximum: The maximum time (in milliseconds) to keep\n"
92
- " retrying before giving up.\n";
81
+ static const char* docstring = R"docstring(FixedDelayStrategy(initial_delay, maximum)
82
+ ``FixedDelayStrategy`` is a reconnect delay strategy implementation that waits a
83
+ fixed amount of time before retrying a connection.
84
+
85
+ By default, a ``FixedDelayStrategy`` waits for 200ms between connection attempts
86
+ and does not have a maximum timeout.
87
+
88
+ **Constructor Arguments:**
89
+
90
+ :param initial_delay: The time (in milliseconds) to wait before reconnecting to a
91
+ server for the first time after a failed connection.
92
+ :param maximum: The maximum time (in milliseconds) to keep retrying before giving up.
93
+ )docstring";
93
94
 
94
95
  void add_types(PyObject* module_)
95
96
  {