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,360 @@
|
|
|
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
|
+
|
|
26
|
+
#define PY_SSIZE_T_CLEAN 1
|
|
27
|
+
#include <Python.h>
|
|
28
|
+
#include <amps/ampsplusplus.hpp>
|
|
29
|
+
#include <ampspy_types.hpp>
|
|
30
|
+
#include <ampspy_defs.hpp>
|
|
31
|
+
|
|
32
|
+
using namespace AMPS;
|
|
33
|
+
namespace ampspy
|
|
34
|
+
{
|
|
35
|
+
namespace ringbookmarkstore
|
|
36
|
+
{
|
|
37
|
+
|
|
38
|
+
static void* __ctor(obj* self, PyObject* args, PyObject* kwds)
|
|
39
|
+
{
|
|
40
|
+
char* filename;
|
|
41
|
+
if (!PyArg_ParseTuple(args, "s", &filename))
|
|
42
|
+
{
|
|
43
|
+
return NULL;
|
|
44
|
+
}
|
|
45
|
+
self->impl = 0;
|
|
46
|
+
try
|
|
47
|
+
{
|
|
48
|
+
self->impl = new BookmarkStore(new RingBookmarkStore(filename));
|
|
49
|
+
} DISPATCH_EXCEPTION;
|
|
50
|
+
return (void*)filename;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// def __init__(self, name):
|
|
54
|
+
static int _ctor(obj* self, PyObject* args, PyObject* kwds)
|
|
55
|
+
{
|
|
56
|
+
if (__ctor(self, args, kwds) == NULL)
|
|
57
|
+
{
|
|
58
|
+
return -1;
|
|
59
|
+
}
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static void _dtor(obj* self)
|
|
64
|
+
{
|
|
65
|
+
{
|
|
66
|
+
UNLOCKGIL;
|
|
67
|
+
delete self->impl;
|
|
68
|
+
}
|
|
69
|
+
Py_XDECREF(self->resizeHandler);
|
|
70
|
+
shims::free(self);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static PyObject*
|
|
74
|
+
log(obj* self, PyObject* args)
|
|
75
|
+
{
|
|
76
|
+
ampspy::message::obj* pPythonMessage = NULL;
|
|
77
|
+
if (!PyArg_ParseTuple(args, "O!",
|
|
78
|
+
ampspy::message::message_type.pPyObject(),
|
|
79
|
+
&pPythonMessage))
|
|
80
|
+
{
|
|
81
|
+
return NULL;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
AMPS::Message* pMessage = pPythonMessage->pMessage;
|
|
85
|
+
|
|
86
|
+
CALL_RETURN_SIZE_T(self->impl->log(*pMessage));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static PyObject*
|
|
90
|
+
discard_message(obj* self, PyObject* args)
|
|
91
|
+
{
|
|
92
|
+
ampspy::message::obj* pPythonMessage = NULL;
|
|
93
|
+
if (!PyArg_ParseTuple(args, "O!",
|
|
94
|
+
ampspy::message::message_type.pPyObject(),
|
|
95
|
+
&pPythonMessage))
|
|
96
|
+
{
|
|
97
|
+
return NULL;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
AMPS::Message* pMessage = pPythonMessage->pMessage;
|
|
101
|
+
|
|
102
|
+
CALL_RETURN_NONE(self->impl->discard(*pMessage));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static PyObject*
|
|
106
|
+
discard(obj* self, PyObject* args)
|
|
107
|
+
{
|
|
108
|
+
const char* subId = NULL;
|
|
109
|
+
Py_ssize_t subIdLength = 0;
|
|
110
|
+
unsigned PY_LONG_LONG sequence = 0;
|
|
111
|
+
|
|
112
|
+
if (!PyArg_ParseTuple(args, "s#K",
|
|
113
|
+
&subId,
|
|
114
|
+
&subIdLength,
|
|
115
|
+
&sequence))
|
|
116
|
+
{
|
|
117
|
+
return NULL;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
CALL_RETURN_NONE(self->impl->discard(AMPS::Field(subId, subIdLength),
|
|
121
|
+
(size_t)sequence));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
static PyObject*
|
|
125
|
+
get_most_recent(obj* self, PyObject* args)
|
|
126
|
+
{
|
|
127
|
+
const char* subId = NULL;
|
|
128
|
+
Py_ssize_t subIdLength = 0;
|
|
129
|
+
|
|
130
|
+
if (!PyArg_ParseTuple(args, "s#",
|
|
131
|
+
&subId,
|
|
132
|
+
&subIdLength))
|
|
133
|
+
{
|
|
134
|
+
return NULL;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
CALL_RETURN_FIELD(self->impl->getMostRecent(
|
|
138
|
+
AMPS::Field(subId, subIdLength)));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
static PyObject*
|
|
142
|
+
is_discarded(obj* self, PyObject* args)
|
|
143
|
+
{
|
|
144
|
+
ampspy::message::obj* pPythonMessage = NULL;
|
|
145
|
+
if (!PyArg_ParseTuple(args, "O!",
|
|
146
|
+
ampspy::message::message_type.pPyObject(),
|
|
147
|
+
&pPythonMessage))
|
|
148
|
+
{
|
|
149
|
+
return NULL;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
AMPS::Message* pMessage = pPythonMessage->pMessage;
|
|
153
|
+
CALL_RETURN_BOOL(self->impl->isDiscarded(*pMessage));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
static PyObject*
|
|
157
|
+
persisted(obj* self, PyObject* args)
|
|
158
|
+
{
|
|
159
|
+
const char* subId = NULL;
|
|
160
|
+
Py_ssize_t subIdLength = 0;
|
|
161
|
+
const char* bookmark = NULL;
|
|
162
|
+
Py_ssize_t bookmarkLength = 0;
|
|
163
|
+
|
|
164
|
+
if (!PyArg_ParseTuple(args, "s#s#",
|
|
165
|
+
&subId,
|
|
166
|
+
&subIdLength,
|
|
167
|
+
&bookmark,
|
|
168
|
+
&bookmarkLength))
|
|
169
|
+
{
|
|
170
|
+
return NULL;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
CALL_RETURN_NONE(self->impl->persisted(
|
|
174
|
+
AMPS::Field(subId, subIdLength),
|
|
175
|
+
AMPS::Field(bookmark, bookmarkLength)));
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static PyObject*
|
|
179
|
+
persisted_index(obj* self, PyObject* args)
|
|
180
|
+
{
|
|
181
|
+
const char* subId = NULL;
|
|
182
|
+
Py_ssize_t subIdLength = 0;
|
|
183
|
+
unsigned PY_LONG_LONG bookmark = 0;
|
|
184
|
+
|
|
185
|
+
if (!PyArg_ParseTuple(args, "s#K",
|
|
186
|
+
&subId,
|
|
187
|
+
&subIdLength,
|
|
188
|
+
&bookmark))
|
|
189
|
+
{
|
|
190
|
+
return NULL;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
CALL_RETURN_NONE(self->impl->persisted(
|
|
194
|
+
AMPS::Field(subId, subIdLength),
|
|
195
|
+
(size_t)bookmark));
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
static PyObject*
|
|
199
|
+
purge(obj* self, PyObject* args)
|
|
200
|
+
{
|
|
201
|
+
CALL_RETURN_NONE(self->impl->purge());
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
static PyObject*
|
|
205
|
+
purge_sub_id(obj* self, PyObject* args)
|
|
206
|
+
{
|
|
207
|
+
const char* subId = NULL;
|
|
208
|
+
Py_ssize_t subIdLength = 0;
|
|
209
|
+
|
|
210
|
+
if (!PyArg_ParseTuple(args, "s#",
|
|
211
|
+
&subId,
|
|
212
|
+
&subIdLength))
|
|
213
|
+
{
|
|
214
|
+
return NULL;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
CALL_RETURN_NONE(self->impl->purge(AMPS::Field(subId, subIdLength)));
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
static PyObject*
|
|
221
|
+
get_oldest_bookmark_seq(obj* self, PyObject* args)
|
|
222
|
+
{
|
|
223
|
+
const char* subId = NULL;
|
|
224
|
+
Py_ssize_t subIdLength = 0;
|
|
225
|
+
|
|
226
|
+
if (!PyArg_ParseTuple(args, "s#",
|
|
227
|
+
&subId,
|
|
228
|
+
&subIdLength))
|
|
229
|
+
{
|
|
230
|
+
return NULL;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
CALL_RETURN_SIZE_T(self->impl->getOldestBookmarkSeq(
|
|
234
|
+
AMPS::Field(subId, subIdLength)));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static PyObject*
|
|
238
|
+
set_server_version(obj* self, PyObject* args)
|
|
239
|
+
{
|
|
240
|
+
unsigned PY_LONG_LONG version = 0;
|
|
241
|
+
|
|
242
|
+
if (!PyArg_ParseTuple(args, "K",
|
|
243
|
+
&version))
|
|
244
|
+
{
|
|
245
|
+
return NULL;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
CALL_RETURN_NONE(self->impl->setServerVersion((size_t)version));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
bool
|
|
252
|
+
call_resize_handler(BookmarkStoreImpl* store, const Message::Field& subId, size_t size, void* vp)
|
|
253
|
+
{
|
|
254
|
+
LOCKGIL;
|
|
255
|
+
obj* s = (obj*)vp;
|
|
256
|
+
PyObject* pySubId = PyString_FromStringAndSize(subId.data(), subId.len());
|
|
257
|
+
#if defined(_WIN32) && !defined(_WIN64)
|
|
258
|
+
PyObject* args = Py_BuildValue("(OiO)", s, size, pySubId);
|
|
259
|
+
#else
|
|
260
|
+
PyObject* args = Py_BuildValue("(OlO)", s, size, pySubId);
|
|
261
|
+
#endif
|
|
262
|
+
PyObject* pyRet = PyObject_Call(s->resizeHandler, args, (PyObject*)NULL);
|
|
263
|
+
Py_DECREF(args);
|
|
264
|
+
if (pyRet == NULL || PyErr_Occurred())
|
|
265
|
+
{
|
|
266
|
+
Py_XDECREF(pyRet);
|
|
267
|
+
if (PyErr_ExceptionMatches(PyExc_SystemExit))
|
|
268
|
+
{
|
|
269
|
+
ampspy::unhandled_exception();
|
|
270
|
+
}
|
|
271
|
+
throw StoreException("The bookmark resize handler threw an exception");
|
|
272
|
+
}
|
|
273
|
+
bool ret = (PyObject_IsTrue(pyRet) != 0);
|
|
274
|
+
Py_DECREF(pyRet);
|
|
275
|
+
return ret;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
static PyObject* set_resize_handler(obj* self, PyObject* args)
|
|
279
|
+
{
|
|
280
|
+
PyObject* callable;
|
|
281
|
+
if (!PyArg_ParseTuple(args, "O", &callable))
|
|
282
|
+
{
|
|
283
|
+
return NULL;
|
|
284
|
+
}
|
|
285
|
+
if (!PyCallable_Check(callable))
|
|
286
|
+
{
|
|
287
|
+
PyErr_SetString(PyExc_TypeError, "argument must be callable.");
|
|
288
|
+
return NULL;
|
|
289
|
+
}
|
|
290
|
+
Py_INCREF(callable);
|
|
291
|
+
Py_XDECREF(self->resizeHandler);
|
|
292
|
+
self->resizeHandler = callable;
|
|
293
|
+
CALL_RETURN_NONE(self->impl->setResizeHandler((AMPS::BookmarkStoreResizeHandler)call_resize_handler, self));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
AMPSDLL ampspy::ampspy_type_object ringbookmarkstore_type;
|
|
297
|
+
|
|
298
|
+
void add_types(PyObject* module_)
|
|
299
|
+
{
|
|
300
|
+
ringbookmarkstore_type.setName("AMPS.RingBookmarkStore")
|
|
301
|
+
.setBasicSize(sizeof(obj))
|
|
302
|
+
.setDestructorFunction(_dtor)
|
|
303
|
+
.setConstructorFunction(_ctor)
|
|
304
|
+
.setBaseType()
|
|
305
|
+
.setDoc("AMPS RingBookmarkStore Object")
|
|
306
|
+
.notCopyable()
|
|
307
|
+
.addMethod("log", log,
|
|
308
|
+
"log(message)\n\n"
|
|
309
|
+
"Log a bookmark to the log and return the corresponding sequence "
|
|
310
|
+
"number.\n")
|
|
311
|
+
.addMethod("discard_message", discard_message,
|
|
312
|
+
"discard_message(message)\n\n"
|
|
313
|
+
"Log a message as discarded from the store.\n")
|
|
314
|
+
.addMethod("discard", discard,
|
|
315
|
+
"discard(subid,sequence)\n\n"
|
|
316
|
+
"Log a discard-bookmark entry to the persisted log.")
|
|
317
|
+
.addMethod("get_most_recent", get_most_recent,
|
|
318
|
+
"get_most_recent(subid)\n\n"
|
|
319
|
+
"Returns the most recent bookmark from the log that ought to be used\n"
|
|
320
|
+
"for (re-)subscriptions.\n")
|
|
321
|
+
.addMethod("is_discarded", is_discarded,
|
|
322
|
+
"is_discarded(message)\n\n"
|
|
323
|
+
"Called for each arriving message to determine if the application has\n"
|
|
324
|
+
"already seen this bookmark and should not be reprocessed. Returns\n"
|
|
325
|
+
"True if the bookmark is in the log and should not be re-processed,\n"
|
|
326
|
+
"False otherwise.\n")
|
|
327
|
+
.addMethod("persisted", persisted,
|
|
328
|
+
"persisted(subid, bookmark)\n\n"
|
|
329
|
+
"Mark all bookmarks up to the provided one as replicated to all\n"
|
|
330
|
+
"replication destinations for the given subscription.\n")
|
|
331
|
+
.addMethod("persisted_index", persisted_index,
|
|
332
|
+
"persisted(subid, bookmark_index)\n\n"
|
|
333
|
+
"Mark all bookmarks up to the provided index as replicated to all\n"
|
|
334
|
+
"replication destinations for the given subscription.\n")
|
|
335
|
+
.addMethod("purge", purge,
|
|
336
|
+
"purge()\n\n"
|
|
337
|
+
"Called to purge the contents of this store. Removes any tracking\n"
|
|
338
|
+
"history associated with publishers and received messages, and may\n"
|
|
339
|
+
"delete or truncate on-disk representations as well.\n")
|
|
340
|
+
.addMethod("purge_sub_id", purge_sub_id,
|
|
341
|
+
"purge_sub_id()\n\n"
|
|
342
|
+
"Called to purge the contents of this store for a given subscription\n"
|
|
343
|
+
"id. Removes any tracking history associated with publishers and \n"
|
|
344
|
+
"received messages, and may delete or truncate on-disk representations\n"
|
|
345
|
+
"as well.\n")
|
|
346
|
+
.addMethod("get_oldest_bookmark_seq", get_oldest_bookmark_seq,
|
|
347
|
+
"get_oldest_bookmark_seq(subid)\n\n"
|
|
348
|
+
"Called to find the oldest bookmark sequence in the store.\n")
|
|
349
|
+
.addMethod("set_server_version", set_server_version,
|
|
350
|
+
"set_server_version(version)\n\n"
|
|
351
|
+
"Internally used to set the server version so the store knows how to\n"
|
|
352
|
+
"deal with persisted acks and calls to get_most_recent().\n")
|
|
353
|
+
.addMethod("set_resize_handler", set_resize_handler, "set_resize_handler()\n\nSets the object to call when the store needs to resize.\n")
|
|
354
|
+
.createType()
|
|
355
|
+
.registerType("RingBookmarkStore", module_);
|
|
356
|
+
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
} // namespace ringbookmarkstore
|
|
360
|
+
} // namespace ampspy
|
|
@@ -0,0 +1,245 @@
|
|
|
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
|
+
|
|
26
|
+
#define PY_SSIZE_T_CLEAN 1
|
|
27
|
+
#include <Python.h>
|
|
28
|
+
#include <amps/ampsplusplus.hpp>
|
|
29
|
+
#include <ampspy_types.hpp>
|
|
30
|
+
#include <ampspy_defs.hpp>
|
|
31
|
+
|
|
32
|
+
#include "serverchooser_docs.h"
|
|
33
|
+
|
|
34
|
+
using namespace AMPS;
|
|
35
|
+
namespace ampspy
|
|
36
|
+
{
|
|
37
|
+
namespace serverchooser
|
|
38
|
+
{
|
|
39
|
+
|
|
40
|
+
// def __init__(self, name):
|
|
41
|
+
static int ctor(obj* self, PyObject* args, PyObject* kwds)
|
|
42
|
+
{
|
|
43
|
+
self->impl = new AMPS::DefaultServerChooser();
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
static void dtor(obj* self)
|
|
47
|
+
{
|
|
48
|
+
delete self->impl;
|
|
49
|
+
shims::free(self);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
#define M(x,desc) { #x, (PyCFunction)&x,METH_VARARGS, desc}
|
|
53
|
+
#define M2(x,x2,desc) { x2, (PyCFunction)&x,METH_VARARGS, desc}
|
|
54
|
+
#define MK(x,desc) { #x, (PyCFunction)&x,METH_VARARGS|METH_KEYWORDS, desc}
|
|
55
|
+
#define MK2(x,x2,desc) { x2, (PyCFunction)&x,METH_VARARGS|METH_KEYWORDS, desc}
|
|
56
|
+
|
|
57
|
+
static PyObject* add(obj* self, PyObject* args)
|
|
58
|
+
{
|
|
59
|
+
const char* uri;
|
|
60
|
+
if (!PyArg_ParseTuple(args, "s", &uri))
|
|
61
|
+
{
|
|
62
|
+
return NULL;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
self->impl->add(uri);
|
|
66
|
+
NONE;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
class PyListContainer
|
|
70
|
+
{
|
|
71
|
+
public:
|
|
72
|
+
class const_iterator
|
|
73
|
+
{
|
|
74
|
+
public:
|
|
75
|
+
const char* operator*()
|
|
76
|
+
{
|
|
77
|
+
PyObject* strObj = PyList_GetItem(_list, _next);
|
|
78
|
+
if (PyString_Check(strObj))
|
|
79
|
+
{
|
|
80
|
+
return PyString_AsString(strObj);
|
|
81
|
+
}
|
|
82
|
+
return NULL;
|
|
83
|
+
}
|
|
84
|
+
const_iterator& operator++()
|
|
85
|
+
{
|
|
86
|
+
++_next;
|
|
87
|
+
return *this;
|
|
88
|
+
}
|
|
89
|
+
bool operator!=(const const_iterator& rhs_) const
|
|
90
|
+
{
|
|
91
|
+
return _next != rhs_._next || _list != rhs_._list;
|
|
92
|
+
}
|
|
93
|
+
bool operator==(const const_iterator& rhs_) const
|
|
94
|
+
{
|
|
95
|
+
return _next == rhs_._next && _list == rhs_._list;
|
|
96
|
+
}
|
|
97
|
+
const_iterator(PyObject* list_, bool end_ = false)
|
|
98
|
+
: _list(list_), _next(0)
|
|
99
|
+
{
|
|
100
|
+
if (end_)
|
|
101
|
+
{
|
|
102
|
+
_next = PyList_Size(_list);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
private:
|
|
106
|
+
PyObject* _list;
|
|
107
|
+
size_t _next;
|
|
108
|
+
};
|
|
109
|
+
PyListContainer(PyObject* list_) : _list(list_) {}
|
|
110
|
+
const_iterator begin() const
|
|
111
|
+
{
|
|
112
|
+
return const_iterator(_list);
|
|
113
|
+
}
|
|
114
|
+
const_iterator end() const
|
|
115
|
+
{
|
|
116
|
+
return const_iterator(_list, true);
|
|
117
|
+
}
|
|
118
|
+
private:
|
|
119
|
+
PyObject* _list;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
static PyObject* add_all(obj* self, PyObject* args)
|
|
123
|
+
{
|
|
124
|
+
PyObject* list;
|
|
125
|
+
if (!PyArg_ParseTuple(args, "O", &list))
|
|
126
|
+
{
|
|
127
|
+
return NULL;
|
|
128
|
+
}
|
|
129
|
+
if (!PyList_Check(list))
|
|
130
|
+
{
|
|
131
|
+
PyErr_SetString(PyExc_TypeError, "list required for argument.");
|
|
132
|
+
return NULL;
|
|
133
|
+
}
|
|
134
|
+
PyListContainer container(list);
|
|
135
|
+
self->impl->addAll(container);
|
|
136
|
+
NONE;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static PyObject* get_current_uri(obj* self, PyObject* args)
|
|
140
|
+
{
|
|
141
|
+
return ret(self->impl->getCurrentURI());
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static PyObject* get_current_authenticator(obj* self, PyObject* args)
|
|
145
|
+
{
|
|
146
|
+
NONE;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
std::map<std::string, std::string>
|
|
150
|
+
string_map_from_dictionary(PyObject* dictionary)
|
|
151
|
+
{
|
|
152
|
+
std::map<std::string, std::string> returnValue;
|
|
153
|
+
Py_ssize_t pos = 0;
|
|
154
|
+
PyObject* key, *value;
|
|
155
|
+
while (PyDict_Next(dictionary, &pos, &key, &value))
|
|
156
|
+
{
|
|
157
|
+
returnValue[PyString_AsString(key)] = PyString_AsString(value);
|
|
158
|
+
}
|
|
159
|
+
return returnValue;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
static PyObject* report_failure(obj* self, PyObject* args)
|
|
164
|
+
{
|
|
165
|
+
PyObject* ex, *dict;
|
|
166
|
+
if (!PyArg_ParseTuple(args, "OO", &ex, &dict))
|
|
167
|
+
{
|
|
168
|
+
return NULL;
|
|
169
|
+
}
|
|
170
|
+
if (!PyDict_Check(dict))
|
|
171
|
+
{
|
|
172
|
+
PyErr_SetString(PyExc_TypeError, "dictionary required for argument 2.");
|
|
173
|
+
return NULL;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
PyObject* ex_as_string = PyObject_Str(ex);
|
|
177
|
+
std::string message(PyString_AsString(ex_as_string));
|
|
178
|
+
Py_XDECREF(ex_as_string);
|
|
179
|
+
|
|
180
|
+
// map the python dictionary to a ConnectionInfo
|
|
181
|
+
ConnectionInfo ci = string_map_from_dictionary(dict);
|
|
182
|
+
|
|
183
|
+
self->impl->reportFailure(ConnectionException(message, AMPS_E_CONNECTION), ci);
|
|
184
|
+
NONE;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static PyObject* get_error(obj* self, PyObject* args)
|
|
188
|
+
{
|
|
189
|
+
return ret(self->impl->getError());
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
static PyObject* report_success(obj* self, PyObject* args)
|
|
193
|
+
{
|
|
194
|
+
PyObject* dict;
|
|
195
|
+
if (!PyArg_ParseTuple(args, "O", &dict))
|
|
196
|
+
{
|
|
197
|
+
return NULL;
|
|
198
|
+
}
|
|
199
|
+
if (!PyDict_Check(dict))
|
|
200
|
+
{
|
|
201
|
+
PyErr_SetString(PyExc_TypeError, "dictionary required for argument 2.");
|
|
202
|
+
return NULL;
|
|
203
|
+
}
|
|
204
|
+
self->impl->reportSuccess( string_map_from_dictionary( dict ) );
|
|
205
|
+
|
|
206
|
+
NONE;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
static PyObject* next(obj* self, PyObject* args)
|
|
210
|
+
{
|
|
211
|
+
self->impl->next();
|
|
212
|
+
NONE;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
ampspy::ampspy_type_object defaultserverchooser_type;
|
|
216
|
+
|
|
217
|
+
void add_types(PyObject* module_)
|
|
218
|
+
{
|
|
219
|
+
defaultserverchooser_type.setName("AMPS.DefaultServerChooser")
|
|
220
|
+
.setBasicSize(sizeof(obj))
|
|
221
|
+
.setDestructorFunction(dtor)
|
|
222
|
+
.setConstructorFunction(ctor)
|
|
223
|
+
.setBaseType()
|
|
224
|
+
.setDoc(serverchooser_class_doc)
|
|
225
|
+
.notCopyable()
|
|
226
|
+
.addMethod("add", add, "add(uri)\n\nAdds a URI to this server chooser.\n\n:param uri: The URI of an AMPS instance that may be chosen.\n:type uri: str")
|
|
227
|
+
.addMethod("add_all", add_all, "add_all(uris)\n\nAdds a list of URIs to this server chooser.\n\n:param uris: The list of URIs of AMPS instances that may be chosen.\n:type uri: list")
|
|
228
|
+
.addMethod("get_current_uri", get_current_uri,
|
|
229
|
+
"get_current_uri()\n\nCalled by the :class:`HAClient` to retrieve the current URI to connect to.\n\n:returns: A URI to connect to, or None if no server should be connected to.")
|
|
230
|
+
.addMethod("get_current_authenticator", get_current_authenticator,
|
|
231
|
+
"get_current_authenticator()\n\nCalled by :class:`HAClient` to retrieve an :class:`Authenticator` to use for authentication with the current server.\n\n:returns: The current :class:`Authenticator`.")
|
|
232
|
+
.addMethod("report_failure", report_failure,
|
|
233
|
+
"report_failure(exception, connectionInfo)\n\nInvoked by :class:`HAClient` to indicate a connection failure occurred.\n\n:param exception: An exception object containing an error message.\n:type exception: :class:`Exception`\n:param connectionInfo: A dictionary of properties associated with the failed connection.\n:type connectionInfo: dict(str, str)\n")
|
|
234
|
+
.addMethod("get_error", get_error,
|
|
235
|
+
"get_error()\n\nProvides additional detail to be included in an exception thrown by when the AMPS instance(s) are not available. Called by the :class:`HAClient` when creating an exception.\n\n:returns: A string with information about the connection that failed and the reason for the failure. When no further information is available, returns an empty string.")
|
|
236
|
+
.addMethod("report_success", report_success,
|
|
237
|
+
"report_success(connectionInfo)\n\nInvoked by :class:`HAClient` to indicate a connection attempt was successful.\n\n:param connectionInfo: A dictionary of properties associated with the successful connection.\n:type connectionInfo: dict(str, str)\n")
|
|
238
|
+
.addMethod("next", next, "next()\n\nInvoked to advance to the next server.")
|
|
239
|
+
.createType()
|
|
240
|
+
.registerType("DefaultServerChooser", module_);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
} // namespace serverchooser
|
|
244
|
+
|
|
245
|
+
} // namespace ampspy
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
|
|
26
|
+
static const char* serverchooser_class_doc =
|
|
27
|
+
" A simple ServerChooser that keeps a list of AMPS instances and "
|
|
28
|
+
"Authenticators, and advances to the next one when failure occurs.\n\n"
|
|
29
|
+
"To use the DefaultServerChooser, you add the URIs for the server to "
|
|
30
|
+
"choose from, then set the server for the HAClient as shown below::\n\n"
|
|
31
|
+
" client = AMPS.HAClient(\"showchooser\")\n"
|
|
32
|
+
" chooser = AMPS.DefaultServerChooser()\n"
|
|
33
|
+
" chooser.add(\"tcp://server:9005/nvfix\")\n"
|
|
34
|
+
" chooser.add(\"tcp://server-two:9005/nvfix\")\n"
|
|
35
|
+
" client.set_server_chooser(chooser)\n"
|
|
36
|
+
" client.connect_and_logon()\n"
|
|
37
|
+
"\n"
|
|
38
|
+
"You can add any number of URIs to the DefaultServerChooser."
|
|
39
|
+
"\n\n";
|