amps-python-client 5.3.4.1__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.1/HISTORY +7 -0
- amps-python-client-5.3.4.1/LICENSE +157 -0
- amps-python-client-5.3.4.1/PKG-INFO +112 -0
- amps-python-client-5.3.4.1/README.md +96 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +4 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_images/caution.svg +25 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +32 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +27 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +43 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +231 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +1474 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +25 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +12 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +23 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +6 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +13 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +56 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/ajax-loader.gif +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/alabaster.css +699 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/basic.css +632 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/comment-bright.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/comment-close.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/comment.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +192 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +161 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/doctools.js +287 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/down-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/down.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/file.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/flag_logo.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/flag_logo.svg +153 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/jquery-3.1.0.js +10074 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/jquery.js +4 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/minus.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/plus.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/pygments.css +74 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/searchtools.js +758 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/underscore-1.3.1.js +999 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/underscore.js +31 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/up-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/up.png +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/websupport.js +808 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +417 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +417 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +126 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +295 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +1190 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +436 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +173 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +2123 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +299 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +287 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +97 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/index.html +138 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/search.html +107 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +1 -0
- amps-python-client-5.3.4.1/docs/html/.buildinfo +4 -0
- amps-python-client-5.3.4.1/docs/html/_sources/code.rst.txt +6 -0
- amps-python-client-5.3.4.1/docs/html/_sources/index.rst.txt +29 -0
- amps-python-client-5.3.4.1/docs/html/_static/ajax-loader.gif +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/basic.css +632 -0
- amps-python-client-5.3.4.1/docs/html/_static/classic.css +261 -0
- amps-python-client-5.3.4.1/docs/html/_static/comment-bright.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/comment-close.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/comment.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/default.css +1 -0
- amps-python-client-5.3.4.1/docs/html/_static/doctools.js +287 -0
- amps-python-client-5.3.4.1/docs/html/_static/down-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/down.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/file.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/jquery-3.1.0.js +10074 -0
- amps-python-client-5.3.4.1/docs/html/_static/jquery.js +4 -0
- amps-python-client-5.3.4.1/docs/html/_static/minus.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/plus.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/pygments.css +74 -0
- amps-python-client-5.3.4.1/docs/html/_static/searchtools.js +758 -0
- amps-python-client-5.3.4.1/docs/html/_static/sidebar.js +159 -0
- amps-python-client-5.3.4.1/docs/html/_static/underscore-1.3.1.js +999 -0
- amps-python-client-5.3.4.1/docs/html/_static/underscore.js +31 -0
- amps-python-client-5.3.4.1/docs/html/_static/up-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/up.png +0 -0
- amps-python-client-5.3.4.1/docs/html/_static/websupport.js +808 -0
- amps-python-client-5.3.4.1/docs/html/code.html +6503 -0
- amps-python-client-5.3.4.1/docs/html/genindex.html +1361 -0
- amps-python-client-5.3.4.1/docs/html/index.html +131 -0
- amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/html/py-modindex.html +111 -0
- amps-python-client-5.3.4.1/docs/html/search.html +107 -0
- amps-python-client-5.3.4.1/docs/html/searchindex.js +1 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/html/.buildinfo +4 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/caution.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +25 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/connection_string.svg +461 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/important.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/important.svg +25 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/tip.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/tip.svg +31 -0
- amps-python-client-5.3.4.1/docs/python/html/_images/warning.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +6 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +482 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +128 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +142 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +876 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +434 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +292 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
- amps-python-client-5.3.4.1/docs/python/html/_sources/index.rst.txt +44 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/ajax-loader.gif +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/alabaster.css +699 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/basic.css +632 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/comment-bright.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/comment-close.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/comment.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +192 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +161 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/doctools.js +287 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/down-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/down.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/file.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/flag_logo.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/flag_logo.svg +153 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/jquery-3.1.0.js +10074 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/jquery.js +4 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/minus.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/plus.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/pygments.css +74 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/searchtools.js +758 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/underscore-1.3.1.js +999 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/underscore.js +31 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/up-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/up.png +0 -0
- amps-python-client-5.3.4.1/docs/python/html/_static/websupport.js +808 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +447 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +92 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +156 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +2837 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +169 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +746 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +272 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +499 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +1014 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +264 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +245 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +118 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +499 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +352 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +381 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +535 -0
- amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +302 -0
- amps-python-client-5.3.4.1/docs/python/html/genindex.html +351 -0
- amps-python-client-5.3.4.1/docs/python/html/index.html +380 -0
- amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/python/html/search.html +107 -0
- amps-python-client-5.3.4.1/docs/python/html/searchindex.js +1 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +4 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +155 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +19 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_sources/index.rst.txt +20 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/alabaster.css +699 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/basic.css +632 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/comment-bright.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/comment-close.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/comment.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +192 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +161 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/doctools.js +287 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/down-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/down.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/file.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/flag_logo.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/flag_logo.svg +153 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/jquery-3.1.0.js +10074 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/jquery.js +4 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/minus.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/plus.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/pygments.css +74 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/searchtools.js +758 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/underscore-1.3.1.js +999 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/underscore.js +31 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/up-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/up.png +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/websupport.js +808 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +271 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +105 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +97 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +382 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +107 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +1 -0
- amps-python-client-5.3.4.1/docs/resources/custom.css +9 -0
- amps-python-client-5.3.4.1/docs/resources/flag_logo.svg +153 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +4 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +1330 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +235 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +684 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +402 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +505 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +25 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +25 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +627 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +248 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +183 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +1 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +31 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +23 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +232 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +111 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +358 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +83 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +11 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +86 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +9 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +111 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +269 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +232 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +556 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +186 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +191 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +39 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +203 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +101 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +465 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +23 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +116 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +34 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +1398 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +326 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +312 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +27 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +49 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +1351 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +1228 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +657 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +57 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +25 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/spark.rst.txt +824 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +291 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +517 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +62 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +21 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +62 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +175 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +110 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/ajax-loader.gif +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/alabaster.css +695 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/basic.css +632 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/comment-bright.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/comment-close.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/comment.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +192 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +161 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/doctools.js +287 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/down-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/down.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/file.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/flag_logo.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/flag_logo.svg +153 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/jquery-3.1.0.js +10074 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/jquery.js +4 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/minus.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/plus.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/pygments.css +74 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/searchtools.js +758 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/underscore-1.3.1.js +999 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/underscore.js +31 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/up-pressed.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/up.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/websupport.js +808 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +289 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +3782 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +439 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +1552 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +1626 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +2548 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +508 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +328 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +447 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +295 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +609 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +246 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +264 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +449 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +229 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +215 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +978 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +357 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +572 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +972 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +1280 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +718 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +341 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +1515 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +934 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +1767 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +1777 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +697 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +1038 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +621 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +819 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +352 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +530 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +1013 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +288 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +133 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +1120 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +1261 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/index.html +163 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/search.html +106 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +1 -0
- amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +63 -0
- amps-python-client-5.3.4.1/include/ampspy_compat.h +63 -0
- amps-python-client-5.3.4.1/include/ampspy_defs.hpp +181 -0
- amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +52 -0
- amps-python-client-5.3.4.1/include/ampspy_shims.hpp +113 -0
- amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +242 -0
- amps-python-client-5.3.4.1/include/ampspy_types.hpp +1139 -0
- amps-python-client-5.3.4.1/include/ampspyver.h +30 -0
- amps-python-client-5.3.4.1/index.html +66 -0
- amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +59 -0
- amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +63 -0
- amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +69 -0
- amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +67 -0
- amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +81 -0
- amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +69 -0
- amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +59 -0
- amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +67 -0
- amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +77 -0
- amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
- amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
- amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +128 -0
- amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +123 -0
- amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +84 -0
- amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +87 -0
- amps-python-client-5.3.4.1/samples/RandomServerChooser.py +41 -0
- amps-python-client-5.3.4.1/samples/sample.xml +335 -0
- amps-python-client-5.3.4.1/setup.py +209 -0
- amps-python-client-5.3.4.1/setup_amps.py +94 -0
- amps-python-client-5.3.4.1/src/ampspy_shims.cpp +203 -0
- amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +484 -0
- amps-python-client-5.3.4.1/src/authenticator.cpp +128 -0
- amps-python-client-5.3.4.1/src/bookmarkstore.cpp +238 -0
- amps-python-client-5.3.4.1/src/client.cpp +2430 -0
- amps-python-client-5.3.4.1/src/client_docs.h +956 -0
- amps-python-client-5.3.4.1/src/cmessagehandler.cpp +151 -0
- amps-python-client-5.3.4.1/src/command.cpp +164 -0
- amps-python-client-5.3.4.1/src/command_docs.h +194 -0
- amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +111 -0
- amps-python-client-5.3.4.1/src/compositemessageparser.cpp +146 -0
- amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +194 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +2053 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +677 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +542 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +214 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +719 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +370 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +460 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +1255 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +290 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +1622 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +244 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +1819 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +618 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +158 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +490 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +145 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +775 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps_generated.h +46 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +204 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +78 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +210 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +8817 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +84 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +41 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +41 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +194 -0
- amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +1692 -0
- amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +688 -0
- amps-python-client-5.3.4.1/src/cpp/src/amps_protocol_generated.h +80 -0
- amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +489 -0
- amps-python-client-5.3.4.1/src/cpp/src/atfork.c +446 -0
- amps-python-client-5.3.4.1/src/cpp/src/client.c +483 -0
- amps-python-client-5.3.4.1/src/cpp/src/makefile +92 -0
- amps-python-client-5.3.4.1/src/cpp/src/message.c +837 -0
- amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +611 -0
- amps-python-client-5.3.4.1/src/cpp/src/tcp.c +1489 -0
- amps-python-client-5.3.4.1/src/cpp/src/tcps.c +1894 -0
- amps-python-client-5.3.4.1/src/cpp/src/transports.c +123 -0
- amps-python-client-5.3.4.1/src/cpp/src/unix.c +984 -0
- amps-python-client-5.3.4.1/src/cpp/src/uri.c +301 -0
- amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +137 -0
- amps-python-client-5.3.4.1/src/failedwritehandler.cpp +116 -0
- amps-python-client-5.3.4.1/src/fixbuilder.cpp +146 -0
- amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +114 -0
- amps-python-client-5.3.4.1/src/fixshredder.cpp +105 -0
- amps-python-client-5.3.4.1/src/fixshredder_docs.h +38 -0
- amps-python-client-5.3.4.1/src/haclient.cpp +691 -0
- amps-python-client-5.3.4.1/src/haclient_docs.h +132 -0
- amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +137 -0
- amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +31 -0
- amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +373 -0
- amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +39 -0
- amps-python-client-5.3.4.1/src/memorypublishstore.cpp +160 -0
- amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +32 -0
- amps-python-client-5.3.4.1/src/message.cpp +765 -0
- amps-python-client-5.3.4.1/src/message_docs.h +306 -0
- amps-python-client-5.3.4.1/src/messagestream.cpp +623 -0
- amps-python-client-5.3.4.1/src/messagestream_docs.h +45 -0
- amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +422 -0
- amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +160 -0
- amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +33 -0
- amps-python-client-5.3.4.1/src/nvfixshredder.cpp +99 -0
- amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +39 -0
- amps-python-client-5.3.4.1/src/publishstore.cpp +183 -0
- amps-python-client-5.3.4.1/src/raw_wrapper.cpp +756 -0
- amps-python-client-5.3.4.1/src/reason.cpp +71 -0
- amps-python-client-5.3.4.1/src/recoverypoint.cpp +135 -0
- amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +171 -0
- amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +360 -0
- amps-python-client-5.3.4.1/src/serverchooser.cpp +245 -0
- amps-python-client-5.3.4.1/src/serverchooser_docs.h +39 -0
- amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +248 -0
- amps-python-client-5.3.4.1/src/store.cpp +62 -0
- amps-python-client-5.3.4.1/src/versioninfo.cpp +175 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
############################################################################
|
|
3
|
+
##
|
|
4
|
+
## Copyright (c) 2012-2023 60East Technologies Inc., All Rights Reserved.
|
|
5
|
+
##
|
|
6
|
+
## This computer software is owned by 60East Technologies Inc. and is
|
|
7
|
+
## protected by U.S. copyright laws and other laws and by international
|
|
8
|
+
## treaties. This computer software is furnished by 60East Technologies
|
|
9
|
+
## Inc. pursuant to a written license agreement and may be used, copied,
|
|
10
|
+
## transmitted, and stored only in accordance with the terms of such
|
|
11
|
+
## license agreement and with the inclusion of the above copyright notice.
|
|
12
|
+
## This computer software or any other copies thereof may not be provided
|
|
13
|
+
## or otherwise made available to any other person.
|
|
14
|
+
##
|
|
15
|
+
## U.S. Government Restricted Rights. This computer software: (a) was
|
|
16
|
+
## 5.3.4.1ed at private expense and is in all respects the proprietary
|
|
17
|
+
## information of 60East Technologies Inc.; (b) was not 5.3.4.1ed with
|
|
18
|
+
## government funds; (c) is a trade secret of 60East Technologies Inc.
|
|
19
|
+
## for all purposes of the Freedom of Information Act; and (d) is a
|
|
20
|
+
## commercial item and thus, pursuant to Section 12.212 of the Federal
|
|
21
|
+
## Acquisition Regulations (FAR) and DFAR Supplement Section 227.7202,
|
|
22
|
+
## Government's use, duplication or disclosure of the computer software
|
|
23
|
+
## is subject to the restrictions set forth by 60East Technologies Inc..
|
|
24
|
+
##
|
|
25
|
+
############################################################################
|
|
26
|
+
import os, glob, sys
|
|
27
|
+
is_setuptools = False
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# Upgrade wheel, pip if required.
|
|
31
|
+
if sys.argv[1] == "bdist_wheel":
|
|
32
|
+
import wheel
|
|
33
|
+
version_tuple = wheel.__version__.split(".")
|
|
34
|
+
if int(version_tuple[0]) == 0 and int(version_tuple[1]) < 30:
|
|
35
|
+
import subprocess, site
|
|
36
|
+
if sys.version_info.major >= 3:
|
|
37
|
+
from importlib import reload
|
|
38
|
+
subprocess.check_call([sys.executable, "-m", "pip", "install", "--user", "--upgrade", "pip"])
|
|
39
|
+
subprocess.check_call([sys.executable, "-m", "pip", "install", "--user", "--upgrade", "setuptools"])
|
|
40
|
+
subprocess.check_call([sys.executable, "-m", "pip", "install", "--user", "--upgrade", "wheel"])
|
|
41
|
+
sys.path.insert(0, site.getusersitepackages())
|
|
42
|
+
reload(wheel)
|
|
43
|
+
|
|
44
|
+
try:
|
|
45
|
+
from setuptools import setup, Extension
|
|
46
|
+
is_setuptools = True
|
|
47
|
+
except:
|
|
48
|
+
sys.stderr.write("NOTE: setuptools is unavailable; falling back to distutils.\n")
|
|
49
|
+
from distutils.core import setup
|
|
50
|
+
from distutils.extension import Extension
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
from distutils.sysconfig import get_config_var
|
|
54
|
+
#import mybuild as build
|
|
55
|
+
|
|
56
|
+
# Remove the "-Wstrict-prototypes" compiler option, which isn't valid for C++.
|
|
57
|
+
import distutils.sysconfig
|
|
58
|
+
cfg_vars = distutils.sysconfig.get_config_vars()
|
|
59
|
+
for key, value in cfg_vars.items():
|
|
60
|
+
if type(value) == str:
|
|
61
|
+
cfg_vars[key] = value.replace("-Wstrict-prototypes", "")
|
|
62
|
+
|
|
63
|
+
# check for AMPS_CPP_DIR set
|
|
64
|
+
if "AMPS_CPP_DIR" not in os.environ:
|
|
65
|
+
# use the included cpp client.
|
|
66
|
+
amps_cpp_dir = os.path.join(os.path.dirname(os.path.relpath(__file__)), "src","cpp")
|
|
67
|
+
else:
|
|
68
|
+
amps_cpp_dir = os.environ["AMPS_CPP_DIR"]
|
|
69
|
+
sys.stderr.write("AMPS_CPP_DIR is set. Using alternate C++ client in %s\n"%amps_cpp_dir)
|
|
70
|
+
|
|
71
|
+
if not os.path.exists(os.path.join(amps_cpp_dir, 'include', 'amps', 'ampsplusplus.hpp')):
|
|
72
|
+
sys.stderr.write("No ampsplusplus.hpp found in an include directory under %s\n"%amps_cpp_dir)
|
|
73
|
+
# If the current directory has a .gitmodules, we're probably being called from a git clone, not a package.
|
|
74
|
+
# Advise the user to run git submodule update --init to fetch the src/cpp directory.
|
|
75
|
+
if(os.path.exists(os.path.join(os.path.dirname(os.path.relpath(__file__)), ".gitmodules"))):
|
|
76
|
+
sys.stderr.write("""
|
|
77
|
+
It looks like this client is a git clone, not a packaged client build.
|
|
78
|
+
To download the necessary AMPS C++ client files, issue a `git submodule` command, such as:
|
|
79
|
+
|
|
80
|
+
git submodule update --init
|
|
81
|
+
|
|
82
|
+
For more information, check the README.md.\n""")
|
|
83
|
+
exit(-1)
|
|
84
|
+
|
|
85
|
+
extension_sources = glob.glob(os.path.join('src','*.cpp'))
|
|
86
|
+
|
|
87
|
+
amps_client_sources=glob.glob(os.path.join(amps_cpp_dir, 'src','*.c'))
|
|
88
|
+
|
|
89
|
+
libraries_list = []
|
|
90
|
+
extra_args = []
|
|
91
|
+
link_args = []
|
|
92
|
+
PY_LIMITED_API_version = "Py_LIMITED_API=0x03040000"
|
|
93
|
+
if sys.platform != "win32":
|
|
94
|
+
libraries_list.append("amps")
|
|
95
|
+
if sys.platform[:5] == "linux":
|
|
96
|
+
libraries_list.append("rt")
|
|
97
|
+
import subprocess
|
|
98
|
+
f = open("foo.cpp", "w+")
|
|
99
|
+
f.write("#include <atomic>");
|
|
100
|
+
f.close()
|
|
101
|
+
try:
|
|
102
|
+
subprocess.check_call("g++ -std=c++11 -c foo.cpp -o foo.o", shell=True)
|
|
103
|
+
extra_args.append("-std=c++11")
|
|
104
|
+
except Exception as e:
|
|
105
|
+
print("Exception %s using 0x" % (e))
|
|
106
|
+
extra_args.append("-std=c++0x")
|
|
107
|
+
os.remove("foo.cpp")
|
|
108
|
+
try:
|
|
109
|
+
os.remove("foo.o")
|
|
110
|
+
except:
|
|
111
|
+
pass
|
|
112
|
+
extra_args.append("-Wall")
|
|
113
|
+
if "AMPS_DEBUG" in os.environ:
|
|
114
|
+
extra_args.append("-O0")
|
|
115
|
+
extra_args.append("-g")
|
|
116
|
+
else:
|
|
117
|
+
extra_args.append("-O3")
|
|
118
|
+
|
|
119
|
+
extra_args.append("-D" + PY_LIMITED_API_version) # the minimum version we want to support
|
|
120
|
+
import subprocess
|
|
121
|
+
subprocess.check_call(['{1} setup_amps.py build -b {0} -t {0} '.format(os.path.join(amps_cpp_dir, 'lib'), sys.executable) ], shell=True)
|
|
122
|
+
os.environ['CFLAGS'] = ""
|
|
123
|
+
|
|
124
|
+
else:
|
|
125
|
+
if sys.version_info[0] < 3 and "VS90COMNTOOLS" not in os.environ:
|
|
126
|
+
if "AMPS_VC_VERSION" in os.environ:
|
|
127
|
+
os.environ["VS90COMNTOOLS"] = os.environ["VS{0}COMNTOOLS".format(os.environ["AMPS_VC_VERSION"])]
|
|
128
|
+
else:
|
|
129
|
+
import re
|
|
130
|
+
comntools = re.compile("VS(\d+)COMNTOOLS")
|
|
131
|
+
matches = [ ]
|
|
132
|
+
for env_var in os.environ:
|
|
133
|
+
match = comntools.match(env_var)
|
|
134
|
+
if match:
|
|
135
|
+
matches.append(int(match.group(1)))
|
|
136
|
+
maxver = 0
|
|
137
|
+
if len(matches) > 0:
|
|
138
|
+
for ver in matches:
|
|
139
|
+
if ver > maxver:
|
|
140
|
+
maxver = ver
|
|
141
|
+
os.environ["VS90COMNTOOLS"] = os.environ["VS{0}COMNTOOLS".format(maxver)]
|
|
142
|
+
else:
|
|
143
|
+
sys.stderr.write("The Visual Studio environment variables do not appear to be set. Re-run this setup script from a Visual Studio Command Prompt.")
|
|
144
|
+
exit(-1)
|
|
145
|
+
|
|
146
|
+
libraries_list.append("ws2_32")
|
|
147
|
+
extra_args.append("/EHs")
|
|
148
|
+
extra_args.append("/WX")
|
|
149
|
+
extra_args.append("/D_CRT_SECURE_NO_WARNINGS")
|
|
150
|
+
extra_args.append("/D" + PY_LIMITED_API_version)
|
|
151
|
+
if "shared" in sys.argv or ("AMPS_SHARED" in os.environ and os.environ["AMPS_SHARED"] != "0"):
|
|
152
|
+
extra_args.append("/DAMPS_SHARED")
|
|
153
|
+
extra_args.append("/DAMPS_BUILD")
|
|
154
|
+
extra_args.append("/LD")
|
|
155
|
+
extra_args.append("/D_USRDLL")
|
|
156
|
+
extra_args.append("/D_WINDLL")
|
|
157
|
+
if "shared" in sys.argv:
|
|
158
|
+
sys.argv.remove("shared")
|
|
159
|
+
extension_sources = extension_sources + amps_client_sources
|
|
160
|
+
if 'amps_old_windows' in os.environ:
|
|
161
|
+
extra_args.append("/D_WIN32_WINNT=0x0501")
|
|
162
|
+
|
|
163
|
+
AMPSModule = Extension('AMPS',
|
|
164
|
+
extension_sources,
|
|
165
|
+
[ os.path.join(amps_cpp_dir, 'src'), os.path.join(amps_cpp_dir, 'include'), 'include'],
|
|
166
|
+
libraries=libraries_list,
|
|
167
|
+
extra_compile_args=extra_args,
|
|
168
|
+
extra_link_args=link_args,
|
|
169
|
+
library_dirs=[os.path.join(amps_cpp_dir, 'lib')]
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# Do this here so that we avoid the warning from distutils.
|
|
173
|
+
AMPSModule.py_limited_api = True
|
|
174
|
+
|
|
175
|
+
# Will be replaced with the actual version number by build.xml
|
|
176
|
+
module_version="5.3.4.1"
|
|
177
|
+
|
|
178
|
+
if module_version.startswith('@'):
|
|
179
|
+
# Running this on a bare repository or source tree; try finding the branch name.
|
|
180
|
+
try:
|
|
181
|
+
import subprocess
|
|
182
|
+
process = subprocess.Popen(["git","rev-parse","--abbrev-ref","HEAD"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
183
|
+
result = process.communicate()
|
|
184
|
+
module_version = result[0].decode('utf-8').strip()
|
|
185
|
+
if module_version == "5.3.4.1" or module_version[:5] == "auto-":
|
|
186
|
+
module_version = "99.99.99.99"
|
|
187
|
+
print("VERSION %s"%module_version)
|
|
188
|
+
except:
|
|
189
|
+
#Branch name unknown and the version is unset, so default to UNKNOWN.
|
|
190
|
+
#import traceback
|
|
191
|
+
#traceback.print_exc()
|
|
192
|
+
module_version = "UNKNOWN"
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
setup(name='amps-python-client',
|
|
196
|
+
description='AMPS Python Client',
|
|
197
|
+
maintainer='60East Technologies, Incorporated',
|
|
198
|
+
maintainer_email='support@crankuptheamps.com',
|
|
199
|
+
url='https://crankuptheamps.com',
|
|
200
|
+
version=module_version,
|
|
201
|
+
long_description=open("README.md").read(),
|
|
202
|
+
long_description_content_type="text/markdown",
|
|
203
|
+
classifiers=["License :: Other/Proprietary License"],
|
|
204
|
+
license="Commercial/Proprietary :: see LICENSE",
|
|
205
|
+
platforms=["Linux","Windows"],
|
|
206
|
+
ext_modules=[AMPSModule,]
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
############################################################################
|
|
3
|
+
##
|
|
4
|
+
## Copyright (c) 2012-2023 60East Technologies Inc., All Rights Reserved.
|
|
5
|
+
##
|
|
6
|
+
## This computer software is owned by 60East Technologies Inc. and is
|
|
7
|
+
## protected by U.S. copyright laws and other laws and by international
|
|
8
|
+
## treaties. This computer software is furnished by 60East Technologies
|
|
9
|
+
## Inc. pursuant to a written license agreement and may be used, copied,
|
|
10
|
+
## transmitted, and stored only in accordance with the terms of such
|
|
11
|
+
## license agreement and with the inclusion of the above copyright notice.
|
|
12
|
+
## This computer software or any other copies thereof may not be provided
|
|
13
|
+
## or otherwise made available to any other person.
|
|
14
|
+
##
|
|
15
|
+
## U.S. Government Restricted Rights. This computer software: (a) was
|
|
16
|
+
## 5.3.4.1ed at private expense and is in all respects the proprietary
|
|
17
|
+
## information of 60East Technologies Inc.; (b) was not 5.3.4.1ed with
|
|
18
|
+
## government funds; (c) is a trade secret of 60East Technologies Inc.
|
|
19
|
+
## for all purposes of the Freedom of Information Act; and (d) is a
|
|
20
|
+
## commercial item and thus, pursuant to Section 12.212 of the Federal
|
|
21
|
+
## Acquisition Regulations (FAR) and DFAR Supplement Section 227.7202,
|
|
22
|
+
## Government's use, duplication or disclosure of the computer software
|
|
23
|
+
## is subject to the restrictions set forth by 60East Technologies Inc..
|
|
24
|
+
##
|
|
25
|
+
############################################################################
|
|
26
|
+
import os, glob, sys
|
|
27
|
+
if "bdist_egg" in sys.argv:
|
|
28
|
+
from setuptools import setup
|
|
29
|
+
else:
|
|
30
|
+
from distutils.core import setup
|
|
31
|
+
from distutils.extension import Extension
|
|
32
|
+
from distutils.sysconfig import get_config_var
|
|
33
|
+
#import mybuild as build
|
|
34
|
+
|
|
35
|
+
if get_config_var("OPT") is not None:
|
|
36
|
+
os.environ["OPT"] = get_config_var("OPT").replace("-Wstrict-prototypes","")
|
|
37
|
+
|
|
38
|
+
# check for AMPS_CPP_DIR set
|
|
39
|
+
if "AMPS_CPP_DIR" not in os.environ:
|
|
40
|
+
# use the included cpp client.
|
|
41
|
+
amps_cpp_dir = os.path.join(os.path.dirname(os.path.relpath(__file__)), "src","cpp")
|
|
42
|
+
else:
|
|
43
|
+
amps_cpp_dir = os.environ["AMPS_CPP_DIR"]
|
|
44
|
+
sys.stderr.write("AMPS_CPP_DIR is set. Using alternate C++ client in %s\n"%amps_cpp_dir)
|
|
45
|
+
|
|
46
|
+
if not os.path.exists(os.path.join(amps_cpp_dir, 'include', 'amps', 'ampsplusplus.hpp')):
|
|
47
|
+
sys.stderr.write("No ampsplusplus.hpp found in an include directory under %s\n"%amps_cpp_dir)
|
|
48
|
+
# If the current directory has a .gitmodules, we're probably being called from a git clone, not a package.
|
|
49
|
+
# Advise the user to run git submodule update --init to fetch the src/cpp directory.
|
|
50
|
+
if(os.path.exists(os.path.join(os.path.dirname(os.path.relpath(__file__)), ".gitmodules"))):
|
|
51
|
+
sys.stderr.write("""
|
|
52
|
+
It looks like this client is a git clone, not a packaged client build.
|
|
53
|
+
To download the necessary AMPS C++ client files, issue a `git submodule` command, such as:
|
|
54
|
+
|
|
55
|
+
git submodule update --init
|
|
56
|
+
|
|
57
|
+
For more information, check the README.md.\n""")
|
|
58
|
+
exit(-1)
|
|
59
|
+
|
|
60
|
+
amps_client_sources=glob.glob(os.path.join(amps_cpp_dir, 'src','*.c'))
|
|
61
|
+
|
|
62
|
+
if sys.platform != "win32":
|
|
63
|
+
if os.path.exists('src/cpp/lib/libamps.a'):
|
|
64
|
+
sys.exit(0)
|
|
65
|
+
import subprocess
|
|
66
|
+
f = open("foo.c", "w+")
|
|
67
|
+
f.write("#include <stdatomic.h>");
|
|
68
|
+
f.close()
|
|
69
|
+
try:
|
|
70
|
+
subprocess.check_call("gcc -std=gnu11 -c foo.c -o foo.o", shell=True)
|
|
71
|
+
os.environ['CFLAGS'] = "-std=gnu11 -Wall"
|
|
72
|
+
except Exception as e:
|
|
73
|
+
print("Exception %s using 99" % (e))
|
|
74
|
+
os.environ['CFLAGS'] = "-std=gnu99 -Wall"
|
|
75
|
+
os.remove("foo.c")
|
|
76
|
+
try:
|
|
77
|
+
os.remove("foo.o")
|
|
78
|
+
except:
|
|
79
|
+
pass
|
|
80
|
+
elif "shared" in sys.argv or "AMPS_SHARED" in os.environ:
|
|
81
|
+
os.environ['CFLAGS'] = "/LD /DAMPS_SHARED /DAMPS_BUILD"
|
|
82
|
+
if "shared" in sys.argv:
|
|
83
|
+
sys.argv.remove("shared")
|
|
84
|
+
|
|
85
|
+
setup(name='amps-c-client',
|
|
86
|
+
description='AMPS C Client',
|
|
87
|
+
version='5.3.4.1',
|
|
88
|
+
maintainer='60East Technologies, Incorporated',
|
|
89
|
+
maintainer_email='support@crankuptheamps.com',
|
|
90
|
+
url='https://crankuptheamps.com',
|
|
91
|
+
libraries = [('amps',{'sources':amps_client_sources, 'include_dirs':[ os.path.join(amps_cpp_dir, 'src'), os.path.join(amps_cpp_dir, 'include'), 'include'] })],
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2010-2023 60East Technologies Inc., All Rights Reserved.
|
|
4
|
+
//
|
|
5
|
+
// This computer software is owned by 60East Technologies Inc. and is
|
|
6
|
+
// protected by U.S. copyright laws and other laws and by international
|
|
7
|
+
// treaties. This computer software is furnished by 60East Technologies
|
|
8
|
+
// Inc. pursuant to a written license agreement and may be used, copied,
|
|
9
|
+
// transmitted, and stored only in accordance with the terms of such
|
|
10
|
+
// license agreement and with the inclusion of the above copyright notice.
|
|
11
|
+
// This computer software or any other copies thereof may not be provided
|
|
12
|
+
// or otherwise made available to any other person.
|
|
13
|
+
//
|
|
14
|
+
// U.S. Government Restricted Rights. This computer software: (a) was
|
|
15
|
+
// developed at private expense and is in all respects the proprietary
|
|
16
|
+
// information of 60East Technologies Inc.; (b) was not developed with
|
|
17
|
+
// government funds; (c) is a trade secret of 60East Technologies Inc.
|
|
18
|
+
// for all purposes of the Freedom of Information Act; and (d) is a
|
|
19
|
+
// commercial item and thus, pursuant to Section 12.212 of the Federal
|
|
20
|
+
// Acquisition Regulations (FAR) and DFAR Supplement Section 227.7202,
|
|
21
|
+
// Government's use, duplication or disclosure of the computer software
|
|
22
|
+
// is subject to the restrictions set forth by 60East Technologies Inc..
|
|
23
|
+
//
|
|
24
|
+
////////////////////////////////////////////////////////////////////////////
|
|
25
|
+
#include <ampspy_shims.hpp>
|
|
26
|
+
|
|
27
|
+
#ifdef _WIN32
|
|
28
|
+
#include <Windows.h>
|
|
29
|
+
#include <psapi.h>
|
|
30
|
+
#include <vector>
|
|
31
|
+
#else
|
|
32
|
+
|
|
33
|
+
#include <dlfcn.h>
|
|
34
|
+
#endif
|
|
35
|
+
|
|
36
|
+
namespace ampspy
|
|
37
|
+
{
|
|
38
|
+
namespace shims
|
|
39
|
+
{
|
|
40
|
+
const char* g_shimExitFuncName = "_exiter";
|
|
41
|
+
Py_IsFinalizing_t Py_IsFinalizing = 0;
|
|
42
|
+
PyUnicode_AsUTF8AndSize_t PyUnicode_AsUTF8AndSize;
|
|
43
|
+
PyThreadState_UncheckedGet_t PyThreadState_UncheckedGet = 0;
|
|
44
|
+
int* Py_Finalizing_36 = 0;
|
|
45
|
+
|
|
46
|
+
#if PY_MAJOR_VERSION < 3
|
|
47
|
+
static volatile bool g_isFinalizing = false;
|
|
48
|
+
static PyObject* g_previousExitFunc = 0;
|
|
49
|
+
PyObject* _shimExitFunc(void)
|
|
50
|
+
{
|
|
51
|
+
g_isFinalizing = true;
|
|
52
|
+
if (g_previousExitFunc)
|
|
53
|
+
{
|
|
54
|
+
PyObject_CallFunction(g_previousExitFunc, NULL);
|
|
55
|
+
Py_DECREF(g_previousExitFunc);
|
|
56
|
+
g_previousExitFunc = NULL;
|
|
57
|
+
}
|
|
58
|
+
Py_INCREF(Py_None);
|
|
59
|
+
return Py_None;
|
|
60
|
+
}
|
|
61
|
+
bool ampspy2IsFinalizing(void)
|
|
62
|
+
{
|
|
63
|
+
return g_isFinalizing;
|
|
64
|
+
}
|
|
65
|
+
PyThreadState* ampspy2PyThreadState_UncheckedGet(void)
|
|
66
|
+
{
|
|
67
|
+
return (PyThreadState*)_PyThreadState_Current;
|
|
68
|
+
}
|
|
69
|
+
#else
|
|
70
|
+
bool ampspy36IsFinalizing(void)
|
|
71
|
+
{
|
|
72
|
+
return *(Py_Finalizing_36) != 0;
|
|
73
|
+
}
|
|
74
|
+
PyObject* _shimExitFunc(void)
|
|
75
|
+
{
|
|
76
|
+
Py_INCREF(Py_None);
|
|
77
|
+
return Py_None;
|
|
78
|
+
}
|
|
79
|
+
#endif
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
#ifdef _WIN32
|
|
83
|
+
// Windows: Scan the loaded modules looking for the symbols we need.
|
|
84
|
+
// (You can't just GetProcAddress() here without the HMODULE for the
|
|
85
|
+
// DLL you want to look in. We don't necessarily know which DLL
|
|
86
|
+
// it will be in since the name is version dependent, and symbols
|
|
87
|
+
// might exist only in the unversioned python DLL).
|
|
88
|
+
// Set the environment variable VERBOSE=1 if you're debugging failures
|
|
89
|
+
// here to see more about what we're doing.
|
|
90
|
+
template <class T>
|
|
91
|
+
bool getSymbol(const char* symbol_, T* ppFunction_)
|
|
92
|
+
{
|
|
93
|
+
static const size_t max_modules = 1024;
|
|
94
|
+
const bool isVerbose = getenv("VERBOSE") != 0;
|
|
95
|
+
HANDLE hProcess = GetCurrentProcess();
|
|
96
|
+
std::vector<HMODULE> modules;
|
|
97
|
+
modules.resize(max_modules);
|
|
98
|
+
DWORD returnedByteCount = 0;
|
|
99
|
+
BOOL rc = EnumProcessModules(hProcess, (HMODULE*)modules.data(),
|
|
100
|
+
(DWORD)(sizeof(HMODULE) * modules.size()), &returnedByteCount);
|
|
101
|
+
|
|
102
|
+
if (!rc)
|
|
103
|
+
{
|
|
104
|
+
if (isVerbose)
|
|
105
|
+
{
|
|
106
|
+
fprintf(stderr, "[AMPS] EnumProcessModules() failed: result %x\n", GetLastError());
|
|
107
|
+
}
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (returnedByteCount / sizeof(HMODULE) < modules.size())
|
|
111
|
+
{
|
|
112
|
+
modules.resize(returnedByteCount / sizeof(HMODULE));
|
|
113
|
+
}
|
|
114
|
+
for (HMODULE hModule : modules)
|
|
115
|
+
{
|
|
116
|
+
// Probe for symbol in every module.
|
|
117
|
+
*ppFunction_ = (T)GetProcAddress(hModule, symbol_);
|
|
118
|
+
if (*ppFunction_)
|
|
119
|
+
{
|
|
120
|
+
if (isVerbose)
|
|
121
|
+
{
|
|
122
|
+
char moduleFileName[MAX_PATH];
|
|
123
|
+
GetModuleFileNameA(hModule, moduleFileName, MAX_PATH);
|
|
124
|
+
moduleFileName[MAX_PATH - 1] = '\0';
|
|
125
|
+
fprintf(stderr, "[AMPS] Located %s in %s -> %p\n", symbol_, moduleFileName, *ppFunction_);
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (isVerbose)
|
|
131
|
+
{
|
|
132
|
+
fprintf(stderr, "[AMPS] Could not locate %s; searched %zu modules:\n", symbol_, modules.size());
|
|
133
|
+
for (HMODULE hModule : modules)
|
|
134
|
+
{
|
|
135
|
+
char moduleFileName[MAX_PATH];
|
|
136
|
+
GetModuleFileNameA(hModule, moduleFileName, MAX_PATH);
|
|
137
|
+
moduleFileName[MAX_PATH - 1] = '\0';
|
|
138
|
+
fprintf(stderr, "[AMPS] %s\n", moduleFileName);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
#else
|
|
144
|
+
template <class T>
|
|
145
|
+
bool getSymbol(const char* symbol_, T* ppFunction_)
|
|
146
|
+
{
|
|
147
|
+
*ppFunction_ = (T)::dlsym(RTLD_DEFAULT, symbol_);
|
|
148
|
+
if (getenv("VERBOSE") != 0)
|
|
149
|
+
{
|
|
150
|
+
if (*ppFunction_)
|
|
151
|
+
{
|
|
152
|
+
fprintf(stderr, "[AMPS] dlsym(\"%s\") -> %p\n", symbol_, *ppFunction_);
|
|
153
|
+
}
|
|
154
|
+
else
|
|
155
|
+
{
|
|
156
|
+
const char* errStr = dlerror();
|
|
157
|
+
if (!errStr)
|
|
158
|
+
{
|
|
159
|
+
errStr = "Unknown error";
|
|
160
|
+
}
|
|
161
|
+
fprintf(stderr, "[AMPS] dlsym(\"%s\") -> %p: %s\n", symbol_, *ppFunction_, errStr);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return *ppFunction_;
|
|
165
|
+
}
|
|
166
|
+
#endif
|
|
167
|
+
|
|
168
|
+
bool init(PyObject* module_)
|
|
169
|
+
{
|
|
170
|
+
#if PY_MAJOR_VERSION < 3
|
|
171
|
+
g_previousExitFunc = PySys_GetObject(const_cast<char*>("exitfunc"));
|
|
172
|
+
Py_XINCREF(g_previousExitFunc);
|
|
173
|
+
PySys_SetObject(const_cast<char*>("exitfunc"), PyDict_GetItemString(PyModule_GetDict(module_), const_cast<char*>(g_shimExitFuncName)));
|
|
174
|
+
ampspy::shims::Py_IsFinalizing = &spy2IsFinalizing;
|
|
175
|
+
ampspy::shims::PyThreadState_UncheckedGet = &spy2PyThreadState_UncheckedGet;
|
|
176
|
+
#else
|
|
177
|
+
// Python 3.6: use _Py_Finalizing bool
|
|
178
|
+
if (getSymbol("_Py_Finalizing", &spy::shims::Py_Finalizing_36))
|
|
179
|
+
{
|
|
180
|
+
ampspy::shims::Py_IsFinalizing = &spy36IsFinalizing;
|
|
181
|
+
}
|
|
182
|
+
else if (!getSymbol("_Py_IsFinalizing", &spy::shims::Py_IsFinalizing))
|
|
183
|
+
{
|
|
184
|
+
// Python 3.7+: use _Py_IsFinalizing function
|
|
185
|
+
PyErr_SetString(PyExc_RuntimeError, "Error locating _Py_Finalizing or _Py_IsFinalizing; cannot load AMPS.");
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (!getSymbol("_PyThreadState_UncheckedGet", &spy::shims::PyThreadState_UncheckedGet))
|
|
190
|
+
{
|
|
191
|
+
PyErr_SetString(PyExc_RuntimeError, "Error locating _PyThreadState_UncheckedGet; cannot load AMPS.");
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
if (!getSymbol("PyUnicode_AsUTF8AndSize", &spy::shims::PyUnicode_AsUTF8AndSize))
|
|
195
|
+
{
|
|
196
|
+
PyErr_SetString(PyExc_RuntimeError, "Error locating PyUnicode_AsUTF8AndSize; cannot load AMPS.");
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
#endif
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|