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
@@ -26,11 +26,9 @@
26
26
 
27
27
  #define COMMAND_SETTER_BOILERPLATE "\n\nNot all headers are processed by AMPS for all commands. See the AMPS Command Reference for which headers are used by AMPS for a specific command.\n\n:param value: The new value to set for the header.\n\n:returns: This command."
28
28
 
29
- // #define COMMAND_SETTER_BOILERPLATE "\nNot all headers are processed by AMPS for all commands. See the AMPS Command Reference\nfor which headers are used by AMPS for a specific command.\n\n:param value: The new value to set for the header.\n\n:returns: This command.\n";
30
29
 
31
-
32
- static const char* command_class_doc = R"docstring(
33
- AMPS.Command represents a single message (or *command*) sent to the
30
+ static const char* command_class_doc = R"docstring(Command(command_name)
31
+ ``AMPS.Command`` represents a single message (or *command*) sent to the
34
32
  AMPS server. The class provides methods for headers that are used
35
33
  for commands to the server. Applications typically use this class
36
34
  to create outgoing requests to AMPS. The responses to requests,
@@ -49,6 +47,11 @@ Command, set options as described in the Command Cookbook in the
49
47
  Python Developer Guide or the AMPS Command Reference, and then use
50
48
  :func:`AMPS.Client.execute_async()` to process messages asynchronously,
51
49
  or :func:`AMPS.Client.execute()` to process messages synchronously.
50
+
51
+ **Constructor Arguments:**
52
+
53
+ :param command_name: The name of the command to send to the server.
54
+ For example, ``sow``, ``sow_and_subscribe`` or ``publish``.
52
55
  )docstring";
53
56
 
54
57
 
@@ -142,7 +145,7 @@ static const char* set_bookmark_doc = R"docstring(set_bookmark(value)
142
145
  Sets the value of the bookmark header. For a subscription, this identifies the point in the
143
146
  transaction log at which to begin the replay. For a ``sow_delete`` (queue acknowledgment), this
144
147
  indicates the message or messages to acknowledge. For a query on a SOW topic with
145
- History configured, this indicates the point at which to query the topic.
148
+ ``History`` configured, this indicates the point at which to query the topic.
146
149
  )docstring"
147
150
  COMMAND_SETTER_BOILERPLATE;
148
151
 
@@ -265,5 +268,7 @@ static const char* get_sequence_doc = R"docstring(get_sequence()
265
268
  Gets the sequence of self for ``publish``, ``delta_publish``, or ``sow_delete`` commands.
266
269
  This can be checked after calling ``execute`` or ``executeAsync`` to query the sequence
267
270
  number that was used, if any.
271
+
272
+ :returns: The sequence number used in the last ``publish``, ``delta_publish``, or ``sow_delete`` command.
268
273
  )docstring";
269
274
 
@@ -42,9 +42,6 @@
42
42
  #include <sys/timeb.h>
43
43
  #else
44
44
  #include <sys/time.h>
45
- #if AMPS_SSE_42
46
- #include <cpuid.h>
47
- #endif
48
45
  #endif
49
46
  #include <iostream>
50
47
 
@@ -40,9 +40,6 @@
40
40
  #include <sys/timeb.h>
41
41
  #else
42
42
  #include <sys/time.h>
43
- #if AMPS_SSE_42
44
- #include <cpuid.h>
45
- #endif
46
43
  #endif
47
44
  #include <iostream>
48
45
 
@@ -163,7 +163,7 @@ namespace AMPS
163
163
  {
164
164
  return (!_data && !rhs_);
165
165
  }
166
- return ::strncmp(_data, rhs_, _len) == 0 && rhs_[_len] == '\0';
166
+ return (_len == strlen(rhs_)) && (::strncmp(_data, rhs_, _len) == 0);
167
167
  }
168
168
 
169
169
  bool operator<(const Field& rhs) const;
@@ -189,7 +189,7 @@ namespace AMPS
189
189
  ///
190
190
  bool operator!=(const char* rhs_) const
191
191
  {
192
- return strncmp(_data, rhs_, _len) != 0 || rhs_[_len] != '\0';
192
+ return (_len != strlen(rhs_)) || (::memcmp(_data, rhs_, _len) != 0);
193
193
  }
194
194
 
195
195
  ///
@@ -365,6 +365,10 @@ namespace AMPS
365
365
  amps_uint64_t& sequenceNumber_)
366
366
  {
367
367
  publisherId_ = sequenceNumber_ = (amps_uint64_t)0;
368
+ if (field_.empty())
369
+ {
370
+ return;
371
+ }
368
372
  const char* data = field_.data();
369
373
  size_t len = field_.len();
370
374
  // Can't parse a timestamp
@@ -79,8 +79,8 @@ namespace AMPS
79
79
  #else
80
80
  size_t fileSize = liFileSize.LowPart;
81
81
  #endif
82
- _setSize( AMPS_MEMORYBUFFER_DEFAULT_LENGTH > fileSize ?
83
- AMPS_MEMORYBUFFER_DEFAULT_LENGTH : fileSize);
82
+ _setSize(AMPS_MEMORYBUFFER_DEFAULT_LENGTH > fileSize
83
+ ? AMPS_MEMORYBUFFER_DEFAULT_LENGTH : fileSize);
84
84
  #else
85
85
  {
86
86
  _fd = ::open(fileName_.c_str(), O_CREAT | O_RDWR, (mode_t)0644);
@@ -92,9 +92,10 @@ namespace AMPS
92
92
  os << "Failed to stat file " << fileName_ << " for MMapStoreBuffer";
93
93
  error(os.str());
94
94
  }
95
- _bufferLen = (size_t)statBuf.st_size;
96
- _setSize(statBuf.st_size > (ssize_t)AMPS_MEMORYBUFFER_DEFAULT_LENGTH
97
- ? (size_t)statBuf.st_size : AMPS_MEMORYBUFFER_DEFAULT_LENGTH);
95
+ bool recovery = statBuf.st_size >= (ssize_t)AMPS_MEMORYBUFFER_DEFAULT_LENGTH;
96
+ _setSize(recovery ? (size_t)statBuf.st_size
97
+ : AMPS_MEMORYBUFFER_DEFAULT_LENGTH,
98
+ recovery);
98
99
  #endif
99
100
  }
100
101
 
@@ -127,7 +128,7 @@ namespace AMPS
127
128
 
128
129
  void sync()
129
130
  {
130
- if (_buffer != NULL)
131
+ if (_buffer != NULL && _bufferLen)
131
132
  {
132
133
  #ifdef _WIN32
133
134
  if (!FlushViewOfFile(_buffer, _bufferPos))
@@ -148,7 +149,7 @@ namespace AMPS
148
149
  _setSize(newSize_);
149
150
  }
150
151
 
151
- void _setSize(size_t newSize_)
152
+ void _setSize(size_t newSize_, bool recovery_ = false)
152
153
  {
153
154
  if (_bufferLen > 0)
154
155
  {
@@ -202,13 +203,16 @@ namespace AMPS
202
203
  << " requested new size: " << newSize_;
203
204
  error(os.str());
204
205
  }
205
- if (::write(_fd, "", 1) == -1)
206
+ if (!recovery_)
206
207
  {
207
- std::ostringstream os;
208
- os << "Failed to grow buffer; buffer: " << (size_t)_buffer << " length: "
209
- << _bufferLen << " pos: " << _bufferPos << " requested new size: "
210
- << newSize_;
211
- error(os.str());
208
+ if (::write(_fd, "", 1) == -1)
209
+ {
210
+ std::ostringstream os;
211
+ os << "Failed to grow buffer; buffer: " << (size_t)_buffer << " length: "
212
+ << _bufferLen << " pos: " << _bufferPos << " requested new size: "
213
+ << newSize_;
214
+ error(os.str());
215
+ }
212
216
  }
213
217
  }
214
218
 
@@ -236,7 +240,10 @@ namespace AMPS
236
240
  _bufferLen = 0;
237
241
  error(os.str());
238
242
  }
239
- _buffer = (char*)result;
243
+ else
244
+ {
245
+ _buffer = (char*)result;
246
+ }
240
247
  #endif
241
248
  if (_buffer)
242
249
  {
@@ -230,7 +230,10 @@ namespace AMPS
230
230
 
231
231
  protected:
232
232
  enum CtorFlag { EMPTY };
233
- MemoryStoreBuffer(CtorFlag) : _buffer(0), _bufferLen(0), _bufferPos(0)
233
+ MemoryStoreBuffer(CtorFlag)
234
+ : _buffer(nullptr)
235
+ , _bufferLen(0)
236
+ , _bufferPos(0)
234
237
  {}
235
238
 
236
239
  char* _buffer;
@@ -1811,6 +1811,14 @@ namespace AMPS
1811
1811
  inline bool
1812
1812
  AMPS::Field::operator<(const AMPS::Field& rhs) const
1813
1813
  {
1814
+ if (!data())
1815
+ {
1816
+ return rhs.data() != NULL;
1817
+ }
1818
+ if (!rhs.data())
1819
+ {
1820
+ return false;
1821
+ }
1814
1822
  return std::lexicographical_compare(data(), data() + len(), rhs.data(), rhs.data() + rhs.len());
1815
1823
  }
1816
1824
 
@@ -51,6 +51,8 @@ namespace AMPS
51
51
 
52
52
  ServerChooser(ServerChooserImpl* body_) : _body(body_) {}
53
53
 
54
+ ~ServerChooser() {}
55
+
54
56
  bool isValid()
55
57
  {
56
58
  return _body.isValid();
@@ -127,16 +129,25 @@ namespace AMPS
127
129
  _body.get().remove(uri_);
128
130
  }
129
131
 
130
- ~ServerChooser() {}
132
+ ServerChooser(const ServerChooser& rhs) : _body(rhs._body)
133
+ {
134
+ }
135
+ #if defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
136
+ ServerChooser(ServerChooser&& rhs) : _body(rhs._body)
137
+ {
138
+ }
131
139
 
140
+ ServerChooser& operator=(ServerChooser&& rhs)
141
+ {
142
+ _body = rhs._body;
143
+ return *this;
144
+ }
145
+ #endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
132
146
  ServerChooser& operator=(const ServerChooser& rhs)
133
147
  {
134
148
  _body = rhs._body;
135
149
  return *this;
136
150
  }
137
-
138
- ServerChooser(const ServerChooser& rhs) : _body(rhs._body) {}
139
-
140
151
  };
141
152
 
142
153
  } //namespace AMPS
@@ -41,6 +41,18 @@
41
41
  #include <stdio.h>
42
42
  #include "amps/amps_generated.h"
43
43
 
44
+ #ifdef AMPS_CPP_COUNT_THREADS
45
+ #ifdef __cplusplus
46
+ extern "C" {
47
+ #endif
48
+ size_t amps_get_thread_create_count(void);
49
+ size_t amps_get_thread_join_count(void);
50
+ size_t amps_get_thread_detach_count(void);
51
+ #ifdef __cplusplus
52
+ }
53
+ #endif
54
+ #endif
55
+
44
56
  //Avoid compiler warnings on win
45
57
  #ifdef INVALID_SOCKET
46
58
  #define AMPS_INVALID_SOCKET INVALID_SOCKET
@@ -204,5 +204,17 @@ AMPSDLL void amps_atfork_init(void);
204
204
  AMPSDLL void amps_atfork_add(void*, _amps_atfork_callback_function);
205
205
  AMPSDLL void amps_atfork_remove(void*, _amps_atfork_callback_function);
206
206
 
207
+ #ifdef AMPS_CPP_COUNT_THREADS
208
+ #if __STDC_VERSION__ >= 201100
209
+ extern _Atomic size_t amps_thread_create_count;
210
+ extern _Atomic size_t amps_thread_join_count;
211
+ extern _Atomic size_t amps_thread_detach_count;
212
+ #else
213
+ extern volatile size_t amps_thread_create_count;
214
+ extern volatile size_t amps_thread_join_count;
215
+ extern volatile size_t amps_thread_detach_count;
216
+ #endif
217
+ #endif
218
+
207
219
 
208
220
  #endif
@@ -48,9 +48,7 @@ namespace AMPS
48
48
  __cpuid(cpuinfo, 1);
49
49
  return (cpuinfo[2] & (1 << 20)) != 0;
50
50
  #else
51
- unsigned int eax, ebx, ecx = 0, edx;
52
- __get_cpuid(1, &eax, &ebx, &ecx, &edx);
53
- return ecx & (1 << 20);
51
+ return true;
54
52
  #endif
55
53
  #else
56
54
  return false;
@@ -87,7 +85,7 @@ namespace AMPS
87
85
  }
88
86
 
89
87
  // process 64 bytes at a time
90
- unsigned int middleLen = (len_ - beginLen) & ~0x3Fl;
88
+ unsigned int middleLen = (unsigned int)((len_ - beginLen) & ~0x3Fl);
91
89
 
92
90
  unsigned int i = 0;
93
91
 
@@ -1724,6 +1724,7 @@ namespace AMPS
1724
1724
  unsigned connectionVersion;
1725
1725
  AckResponseImpl() :
1726
1726
  RefBody(),
1727
+ username(), password(), reason(), status(), bookmark(), options(),
1727
1728
  sequenceNo((amps_uint64_t)0),
1728
1729
  serverVersion(),
1729
1730
  responded(false),
@@ -4407,9 +4408,7 @@ namespace AMPS
4407
4408
  unsigned requestedAcks = message.getAckTypeEnum();
4408
4409
  bool isPublishStore = _publishStore.isValid() && command_.needsSequenceNumber();
4409
4410
  Message::Command::Type commandType = message.getCommandEnum();
4410
- if (commandType == Message::Command::SOWAndSubscribe
4411
- || commandType == Message::Command::SOWAndDeltaSubscribe
4412
- || commandType == Message::Command::StopTimer)
4411
+ if (commandType == Message::Command::StopTimer)
4413
4412
  {
4414
4413
  systemAddedAcks |= Message::AckType::Completed;
4415
4414
  }
@@ -4458,9 +4457,9 @@ namespace AMPS
4458
4457
  _registerHandler(command_, cid, handler_,
4459
4458
  requestedAcks, systemAddedAcks, commandType);
4460
4459
  }
4461
- bool useSyncSend = cid.len() > 0 && command_.hasProcessedAck();
4462
4460
  if (isPublishStore)
4463
4461
  {
4462
+ bool useSyncSend = cid.len() > 0 && command_.hasProcessedAck();
4464
4463
  amps_uint64_t haSequenceNumber = (amps_uint64_t)0;
4465
4464
  message.setAckTypeEnum(requestedAcks | systemAddedAcks);
4466
4465
  {
@@ -4516,15 +4515,8 @@ namespace AMPS
4516
4515
  message.setAckTypeEnum(requestedAcks | systemAddedAcks);
4517
4516
  try
4518
4517
  {
4519
- if (useSyncSend)
4520
- {
4521
- syncAckProcessing((long)command_.getTimeout(), message,
4522
- isHASubscribe_);
4523
- }
4524
- else
4525
- {
4526
- _send(message);
4527
- }
4518
+ syncAckProcessing((long)command_.getTimeout(), message,
4519
+ isHASubscribe_);
4528
4520
  }
4529
4521
  catch (const DisconnectedException&)
4530
4522
  {
@@ -4570,6 +4562,9 @@ namespace AMPS
4570
4562
  }
4571
4563
  else
4572
4564
  {
4565
+ // SOW, Flush, etc. should always be sync. Publish/delete may not be.
4566
+ bool useSyncSend = commandType & ~Message::Command::NoDataCommands
4567
+ || (cid.len() > 0 && command_.hasProcessedAck());
4573
4568
  message.setAckTypeEnum(requestedAcks | systemAddedAcks);
4574
4569
  try
4575
4570
  {
@@ -8500,10 +8495,11 @@ namespace AMPS
8500
8495
  {
8501
8496
  _state = Closed;
8502
8497
  }
8503
- else if (current_.getCommandEnum() == Message::Command::Publish &&
8504
- _client.isValid() && _client.getAutoAck() &&
8505
- !current_.getLeasePeriod().empty() &&
8506
- !current_.getBookmark().empty())
8498
+ else if (current_.isValid()
8499
+ && current_.getCommandEnum() == Message::Command::Publish
8500
+ && _client.isValid() && _client.getAutoAck()
8501
+ && !current_.getLeasePeriod().empty()
8502
+ && !current_.getBookmark().empty())
8507
8503
  {
8508
8504
  _previousTopic = current_.getTopic().deepCopy();
8509
8505
  _previousBookmark = current_.getBookmark().deepCopy();
@@ -32,10 +32,10 @@
32
32
 
33
33
 
34
34
  /// The current version of the AMPS client.
35
- #define AMPS_CLIENT_VERSION "5.3.4.2"
35
+ #define AMPS_CLIENT_VERSION "5.3.4.3"
36
36
 
37
37
  /// The current version of the AMPS client with the language appended.
38
- #define AMPS_CLIENT_VERSION_WITH_LANGUAGE "5.3.4.2.3304e34.540236:python"
38
+ #define AMPS_CLIENT_VERSION_WITH_LANGUAGE "5.3.4.3.1c0da8e.656215:python"
39
39
 
40
40
  #endif
41
41
 
@@ -587,7 +587,7 @@ namespace AMPS
587
587
  rhs._isRef = false;
588
588
  }
589
589
 
590
- const BorrowRefHandle& operator=(BorrowRefHandle&& rhs)
590
+ BorrowRefHandle& operator=(BorrowRefHandle&& rhs)
591
591
  {
592
592
  if (this == &rhs)
593
593
  {
@@ -605,7 +605,7 @@ namespace AMPS
605
605
  }
606
606
  #endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
607
607
 
608
- const BorrowRefHandle& operator=(const BorrowRefHandle& rhs)
608
+ BorrowRefHandle& operator=(const BorrowRefHandle& rhs)
609
609
  {
610
610
  if (this == &rhs)
611
611
  {
@@ -1600,7 +1600,7 @@ namespace AMPS
1600
1600
  return convertVersionToNumber(_versionString.data(), _versionString.length());
1601
1601
  }
1602
1602
 
1603
- const VersionInfo& operator=(const VersionInfo& info_)
1603
+ VersionInfo& operator=(const VersionInfo& info_)
1604
1604
  {
1605
1605
  _versionString = info_._versionString;
1606
1606
  _versionNum = info_._versionNum;
@@ -1655,7 +1655,7 @@ namespace AMPS
1655
1655
  const int MAXDIGITS[] = { 4, 4, 5, 5 };
1656
1656
 
1657
1657
  amps_uint64_t versionNum = 0;
1658
- if (version_.length() == 0 || !isdigit(version_[0]))
1658
+ if (version_.empty() || !isdigit(version_[0]))
1659
1659
  {
1660
1660
  // Start with non-numeric is a special build
1661
1661
  return AMPS_DEFAULT_SERVER_VERSION;
@@ -57,6 +57,7 @@
57
57
  /* function pointers for openssl functions */
58
58
  void (*_amps_SSL_library_init)(void);
59
59
  void (*_amps_SSL_load_error_strings)(void);
60
+ void (*_amps_ERR_free_strings)(void);
60
61
  unsigned long (*_amps_ERR_get_error)(void);
61
62
  void (*_amps_ERR_error_string_n)(unsigned long, char*, size_t);
62
63
  void (*_amps_ERR_clear_error)(void);
@@ -87,8 +88,8 @@ char _amps_ssl_initialization_error[ERROR_BUFFER_LENGTH];
87
88
 
88
89
  #ifdef _WIN32
89
90
  typedef int (*local_proc)(void);
90
- HMODULE _amps_ssl_libeay_handle;
91
- HMODULE _amps_ssl_ssleay_handle;
91
+ HMODULE _amps_ssl_libeay_handle = 0;
92
+ HMODULE _amps_ssl_ssleay_handle = 0;
92
93
  #define AMPS_strcpy strcpy_s
93
94
 
94
95
  void _amps_get_last_error(char* buffer, size_t length)
@@ -226,6 +227,7 @@ int _amps_ssl_load(const char* dllPath_)
226
227
 
227
228
  LOAD_AMPS_SSLEAY_FUNCTION_OPTIONAL(SSL_library_init);
228
229
  LOAD_AMPS_SSLEAY_FUNCTION_OPTIONAL(SSL_load_error_strings);
230
+ LOAD_AMPS_LIBEAY_FUNCTION_OPTIONAL(ERR_free_strings);
229
231
  LOAD_AMPS_LIBEAY_FUNCTION(ERR_get_error);
230
232
  LOAD_AMPS_LIBEAY_FUNCTION(ERR_error_string_n);
231
233
  LOAD_AMPS_LIBEAY_FUNCTION(ERR_clear_error);
@@ -254,6 +256,7 @@ int _amps_ssl_load(const char* dllPath_)
254
256
  #else
255
257
 
256
258
  void* _amps_ssl_library_handle = 0;
259
+ void* _amps_crypto_library_handle = 0;
257
260
 
258
261
  #define AMPS_strcpy(x, y, z) strcpy(x, z)
259
262
  #define LOAD_AMPS_SSL_FUNCTION_OPTIONAL(name) \
@@ -270,6 +273,28 @@ void* _amps_ssl_library_handle = 0;
270
273
  return -1; \
271
274
  }
272
275
 
276
+ #define LOAD_AMPS_CRYPTO_FUNCTION_OPTIONAL(name) \
277
+ _amps_##name = dlsym(_amps_ssl_library_handle,#name); \
278
+ if (_amps_crypto_library_handle && !_amps_##name) \
279
+ { \
280
+ _amps_##name = dlsym(_amps_crypto_library_handle,#name); \
281
+ }
282
+
283
+ #define LOAD_AMPS_CRYPTO_FUNCTION(name) \
284
+ _amps_##name = dlsym(_amps_ssl_library_handle,#name); \
285
+ if (_amps_crypto_library_handle && !_amps_##name) \
286
+ { \
287
+ _amps_##name = dlsym(_amps_crypto_library_handle,#name); \
288
+ } \
289
+ if(!_amps_##name) \
290
+ { \
291
+ _AMPS_SNPRINTF(_amps_ssl_initialization_error, \
292
+ ERROR_BUFFER_LENGTH, \
293
+ "Error loading CRYPTO module: %s", \
294
+ dlerror()); \
295
+ return -1; \
296
+ }
297
+
273
298
  int _amps_ssl_load(const char* dllPath_)
274
299
  {
275
300
  _amps_ssl_initialization_error[0] = '\0';
@@ -284,19 +309,48 @@ int _amps_ssl_load(const char* dllPath_)
284
309
  dlerror());
285
310
  return -1;
286
311
  }
312
+ size_t dllPathLen = strlen(dllPath_);
313
+ const char* ssl = strstr(dllPath_, "ssl");
314
+ if (!ssl)
315
+ {
316
+ _amps_crypto_library_handle = AMPS_RTLD_DEFAULT;
317
+ }
318
+ else
319
+ {
320
+ const char* nextSsl = strstr(ssl+1, "ssl");
321
+ while (nextSsl)
322
+ {
323
+ ssl = nextSsl;
324
+ nextSsl = strstr(ssl+1, "ssl");
325
+ }
326
+ char* cryptoPath = (char*) malloc(dllPathLen + 4);
327
+ size_t offset = (size_t)(ssl - dllPath_);
328
+ memcpy(cryptoPath, dllPath_, offset);
329
+ memcpy(cryptoPath + offset, "crypto", 6);
330
+ memcpy(cryptoPath + offset + 6, ssl + 3, dllPathLen - offset - 3);
331
+ cryptoPath[dllPathLen + 3] = '\0';
332
+ _amps_crypto_library_handle = dlopen(cryptoPath, RTLD_LOCAL | RTLD_LAZY);
333
+ free(cryptoPath);
334
+ if (!_amps_crypto_library_handle)
335
+ {
336
+ _amps_crypto_library_handle = AMPS_RTLD_DEFAULT;
337
+ }
338
+ }
287
339
  }
288
340
  else
289
341
  {
290
342
  _amps_ssl_library_handle = AMPS_RTLD_DEFAULT;
343
+ _amps_crypto_library_handle = AMPS_RTLD_DEFAULT;
291
344
  }
292
345
 
293
346
  LOAD_AMPS_SSL_FUNCTION_OPTIONAL(SSL_library_init);
294
347
  LOAD_AMPS_SSL_FUNCTION_OPTIONAL(SSL_load_error_strings);
295
- LOAD_AMPS_SSL_FUNCTION(ERR_get_error);
296
- LOAD_AMPS_SSL_FUNCTION(ERR_error_string_n);
297
- LOAD_AMPS_SSL_FUNCTION(ERR_clear_error);
298
- LOAD_AMPS_SSL_FUNCTION_OPTIONAL(CRYPTO_num_locks);
299
- LOAD_AMPS_SSL_FUNCTION_OPTIONAL(CRYPTO_set_locking_callback);
348
+ LOAD_AMPS_SSL_FUNCTION_OPTIONAL(ERR_free_strings);
349
+ LOAD_AMPS_CRYPTO_FUNCTION(ERR_get_error);
350
+ LOAD_AMPS_CRYPTO_FUNCTION(ERR_error_string_n);
351
+ LOAD_AMPS_CRYPTO_FUNCTION(ERR_clear_error);
352
+ LOAD_AMPS_CRYPTO_FUNCTION_OPTIONAL(CRYPTO_num_locks);
353
+ LOAD_AMPS_CRYPTO_FUNCTION_OPTIONAL(CRYPTO_set_locking_callback);
300
354
  LOAD_AMPS_SSL_FUNCTION_OPTIONAL(SSLv23_client_method);
301
355
  LOAD_AMPS_SSL_FUNCTION_OPTIONAL(TLS_client_method);
302
356
  LOAD_AMPS_SSL_FUNCTION(SSL_CTX_new);
@@ -320,14 +374,18 @@ int _amps_ssl_load(const char* dllPath_)
320
374
 
321
375
  /****************** THREADING SUPPORT *********************/
322
376
  #ifdef _WIN32
323
- CRITICAL_SECTION* _amps_ssl_mutexes;
377
+ CRITICAL_SECTION* _amps_ssl_mutexes = 0;
324
378
  #else
325
- pthread_mutex_t* _amps_ssl_mutexes;
379
+ pthread_mutex_t* _amps_ssl_mutexes = 0;
326
380
  #endif
327
- size_t _amps_ssl_mutex_count;
381
+ size_t _amps_ssl_mutex_count = 0;
328
382
 
329
383
  void amps_ssl_locking_callback(int mode_, int n_, const char* filename_, int line_)
330
384
  {
385
+ if (!_amps_ssl_mutexes)
386
+ {
387
+ return;
388
+ }
331
389
  if (mode_ & AMPS_CRYPTO_LOCK) /* CRYPTO_LOCK == 0x01 */
332
390
  {
333
391
  #ifdef _WIN32
@@ -416,6 +474,10 @@ AMPSDLL int amps_ssl_init(const char* dllPath_)
416
474
  return -1;
417
475
  }
418
476
  _amps_SSL_load_error_strings();
477
+ if (_amps_ERR_free_strings)
478
+ {
479
+ atexit(_amps_ERR_free_strings);
480
+ }
419
481
  _amps_SSL_library_init();
420
482
  amps_ssl_setup_threading_functions();
421
483
  sslMethod = _amps_SSLv23_client_method();
@@ -484,6 +546,20 @@ AMPSDLL int amps_ssl_load_verify_locations(const char* caFile_, const char* caPa
484
546
 
485
547
  AMPSDLL void amps_ssl_free(void)
486
548
  {
487
- _amps_SSL_CTX_free(_amps_ssl_ctx);
549
+ if (_amps_ssl_ctx)
550
+ {
551
+ _amps_SSL_CTX_free(_amps_ssl_ctx);
552
+ }
488
553
  _amps_ssl_ctx = 0;
554
+ for (size_t i = 0; i < _amps_ssl_mutex_count; ++i)
555
+ {
556
+ #ifdef _WIN32
557
+ DeleteCriticalSection(_amps_ssl_mutexes + i);
558
+ #else
559
+ pthread_mutex_destroy(_amps_ssl_mutexes + i);
560
+ #endif
561
+ }
562
+ free(_amps_ssl_mutexes);
563
+ _amps_ssl_mutexes = 0;
564
+ _amps_ssl_mutex_count = 0;
489
565
  }
@@ -107,9 +107,37 @@ void __amps_atfork_mutex_init(void)
107
107
  #endif
108
108
  }
109
109
 
110
+ void _amps_atfork_cleanup(void)
111
+ {
112
+ if (!_amps_atfork_array)
113
+ {
114
+ return;
115
+ }
116
+ for (size_t h = 0; h < _amps_atfork_array_size; ++h)
117
+ {
118
+ struct _amps_atfork_entry* pEntry = &_amps_atfork_array[h];
119
+ if (!pEntry || !pEntry->capacity || !pEntry->buckets || !pEntry->callback)
120
+ {
121
+ continue;
122
+ }
123
+ for (size_t i = 0; i < pEntry->maxBucket; ++i)
124
+ {
125
+ struct _amps_atfork_bucket* pBucket = &pEntry->buckets[i];
126
+ free(pBucket->_array);
127
+ }
128
+ free(pEntry->buckets);
129
+ }
130
+ free(_amps_atfork_array);
131
+ _amps_atfork_array = 0;
132
+ _amps_atfork_array_size = 0;
133
+ _amps_atfork_array_capacity = 0;
134
+ }
135
+
110
136
  void _amps_atfork_register(void)
111
137
  {
112
138
  pthread_atfork(__amps_prefork, __amps_postfork_parent, __amps_postfork_child);
139
+ // Needed if static items aren't destroyed
140
+ atexit(_amps_atfork_cleanup);
113
141
  }
114
142
 
115
143
  void _amps_atfork_init(void)
@@ -272,6 +300,7 @@ void amps_atfork_add(void* user_data_, _amps_atfork_callback_function callback_)
272
300
  if (!pEntry->callback)
273
301
  {
274
302
  pEntry->callback = callback_;
303
+ free(pEntry->buckets);
275
304
  pEntry->buckets = malloc((_AMPS_ATFORK_DEFAULT_RESIZE - 1) * sizeof(struct _amps_atfork_bucket));
276
305
  memset(pEntry->buckets, 0, (_AMPS_ATFORK_DEFAULT_RESIZE - 1) * sizeof(struct _amps_atfork_bucket));
277
306
  pEntry->capacity = _AMPS_ATFORK_DEFAULT_RESIZE - 1;
@@ -331,6 +360,10 @@ void amps_atfork_add(void* user_data_, _amps_atfork_callback_function callback_)
331
360
 
332
361
  void amps_atfork_remove(void* user_data_, _amps_atfork_callback_function callback_)
333
362
  {
363
+ if (!_amps_atfork_array || !_amps_atfork_array_size)
364
+ {
365
+ return;
366
+ }
334
367
  pthread_mutex_lock(&_amps_atfork_registry_mutex);
335
368
  pthread_cleanup_push(amps_cleanup_unlock_registry_mutex, NULL);
336
369