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.
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/LICENSE +50 -39
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/PKG-INFO +1 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/.buildinfo +1 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/code.html +717 -482
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/genindex.html +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/index.html +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/py-modindex.html +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/search.html +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/searchindex.js +1 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspyver.h +1 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/index.html +1 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/setup.py +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/setup_amps.py +3 -3
- amps-python-client-5.3.4.3/src/client_docs.h +1210 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/command_docs.h +10 -5
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BlockPublishStore.hpp +0 -3
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BlockStore.hpp +0 -3
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Field.hpp +6 -2
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MMapStoreBuffer.hpp +21 -14
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryStoreBuffer.hpp +4 -1
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Message.hpp +8 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ServerChooser.hpp +15 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps.h +12 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_impl.h +12 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampscrc.hpp +2 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsplusplus.hpp +13 -17
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsver.h +2 -2
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/util.hpp +4 -4
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_ssl.c +87 -11
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/atfork.c +33 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/tcp.c +210 -44
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/tcps.c +168 -48
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/unix.c +88 -27
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/exponentialdelaystrategy.cpp +23 -29
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixeddelaystrategy.cpp +13 -12
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/haclient_docs.h +34 -20
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixbuilder.cpp +3 -3
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixbuilder_docs.h +3 -3
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixshredder_docs.h +3 -3
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/serverchooser_docs.h +4 -4
- amps-python-client-5.3.4.2/src/client_docs.h +0 -956
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/HISTORY +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/README.md +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/environment.pickle +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/doctrees/index.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/.buildinfo +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/custom.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.svg +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/searchtools.js +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/ack-messages.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/content-messages.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/intro.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/logon.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/protocol-reference.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/publishing.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/query-delimiters.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/query-subscribe.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/removing.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/chapters/utilities.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/genindex.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/index.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/objects.inv +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/search.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/command-reference/html/searchindex.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_sources/code.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/classic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/default.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/sidebar.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/html/objects.inv +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/deltas.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/error-handling.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/exceptions.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/first-program.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/high-availability.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/installing.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/introduction.doctree +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/queues.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/sow.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/chapters/utilities.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/environment.pickle +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/doctrees/index.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/.buildinfo +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.svg +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/connection_string.svg +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.svg +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.svg +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_images/warning.png +0 -0
- {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
- {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
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/deltas.rst.txt +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -0
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/installing.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/introduction.rst.txt +0 -0
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/queues.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/sow.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/utilities.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/custom.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.svg +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/searchtools.js +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/advanced-topics.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/cpp-compiler-list.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/cpp-feature-table.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/creating-commands.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/deltas.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/error-handling.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/exceptions.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/first-program.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/high-availability.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/installing.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/introduction.html +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/performance-tips.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/queues.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/sow.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/subscriptions.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/chapters/utilities.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/genindex.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/index.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/objects.inv +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/search.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python/html/searchindex.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/environment.pickle +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/doctrees/index.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/.buildinfo +0 -0
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/custom.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/searchtools.js +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/chapters/crankitup.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/chapters/equipment.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/genindex.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/index.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/objects.inv +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/search.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/searchindex.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/resources/custom.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/resources/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/events.doctree +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/chapters/views.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/environment.pickle +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/doctrees/index.doctree +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/.buildinfo +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/custom.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.svg +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/searchtools.js +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/acks.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/actions.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps-statistics.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps_expressions.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/amps_functions.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/auxiliary_modules.html +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/conflated_topics.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/constructing-fields.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/daemon.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/delta.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/distribution.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/enrichment.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/events.html +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/glossary.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/ha.html +0 -0
- {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
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/intro.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/logging.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/messageTypes.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/monitoring.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/oof.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/operation.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/pub_sub.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/queues.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/replication.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/securing.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/sow.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/sow_queries.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/spark.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/transports.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/troubleshooting.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/txlog.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/usecases.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/utilities.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/chapters/views.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/genindex.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/index.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/objects.inv +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/search.html +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/docs/user-guide/html/searchindex.js +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_bookmarkstore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_compat.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_defs.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_recoverypointadapter.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_shims.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_type_object.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/include/ampspy_types.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSConsolePublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSConsoleSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSFIXBuilderPublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSFIXShredderSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSNVFIXBuilderPublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSNVFIXShredderSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSPublishForReplay.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSQueueConsumer.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSQueuePublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWConsolePublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWConsoleSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSOWandSubscribeWithOOF.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSSubscribeForReplay.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/AMPSUpdateForOOF.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/CompositeMessagePublisher.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/CompositeMessageSubscriber.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/RandomServerChooser.py +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/samples/sample.xml +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ampspy_shims.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ampspy_type_object.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/authenticator.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/bookmarkstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/client.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cmessagehandler.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/command.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/compositemessagebuilder.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/compositemessageparser.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/conflatingrecoverypointadapter.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/BookmarkStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/Buffer.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/CompositeMessageParser.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/DefaultServerChooser.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HAClient.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HAClientImpl.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/HybridPublishStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryPublishStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MessageRouter.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/PublishStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RecoveryPoint.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/RingBookmarkStore.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ServerChooserImpl.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_generated.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_ssl.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsuri.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsver.h.in +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/constants.hpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol.c +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol_generated.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/client.c +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/makefile +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/message.c +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/message_generated.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/transports.c +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/src/uri.c +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/failedwritehandler.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixbuilder.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixshredder.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/fixshredder_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/haclient.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/hybridpublishstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/hybridpublishstore_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorybookmarkstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorybookmarkstore_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorypublishstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/memorypublishstore_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/message.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/message_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/messagestream.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/messagestream_docs.h +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/mmapbookmarkstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/nvfixshredder.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/publishstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/raw_wrapper.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/reason.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/recoverypoint.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/recoverypointadapter.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/ringbookmarkstore.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/serverchooser.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/sowrecoverypointadapter.cpp +0 -0
- {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/store.cpp +0 -0
- {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
|
-
|
|
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
|
|
|
@@ -163,7 +163,7 @@ namespace AMPS
|
|
|
163
163
|
{
|
|
164
164
|
return (!_data && !rhs_);
|
|
165
165
|
}
|
|
166
|
-
return ::strncmp(_data, 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
|
|
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
|
{amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MMapStoreBuffer.hpp
RENAMED
|
@@ -79,8 +79,8 @@ namespace AMPS
|
|
|
79
79
|
#else
|
|
80
80
|
size_t fileSize = liFileSize.LowPart;
|
|
81
81
|
#endif
|
|
82
|
-
_setSize(
|
|
83
|
-
|
|
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
|
-
|
|
96
|
-
_setSize(
|
|
97
|
-
|
|
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 (
|
|
206
|
+
if (!recovery_)
|
|
206
207
|
{
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
243
|
+
else
|
|
244
|
+
{
|
|
245
|
+
_buffer = (char*)result;
|
|
246
|
+
}
|
|
240
247
|
#endif
|
|
241
248
|
if (_buffer)
|
|
242
249
|
{
|
{amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/MemoryStoreBuffer.hpp
RENAMED
|
@@ -230,7 +230,10 @@ namespace AMPS
|
|
|
230
230
|
|
|
231
231
|
protected:
|
|
232
232
|
enum CtorFlag { EMPTY };
|
|
233
|
-
MemoryStoreBuffer(CtorFlag)
|
|
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
|
|
{amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ServerChooser.hpp
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
{amps-python-client-5.3.4.2 → amps-python-client-5.3.4.3}/src/cpp/include/amps/ampsplusplus.hpp
RENAMED
|
@@ -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::
|
|
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
|
-
|
|
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_.
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
!current_.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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_.
|
|
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
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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
|
-
|
|
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
|
|