amps-python-client 5.3.4.2__zip → 5.3.4.4__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/LICENSE +50 -39
  2. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/PKG-INFO +1 -1
  3. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/file_format_versions.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  4. amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  5. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/ack-messages.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  6. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  7. amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  8. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/logon.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  9. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  10. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/content-messages.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  11. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/conflated_topics.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  12. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree → amps-python-client-5.3.4.4/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  13. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/doctrees/environment.pickle +0 -0
  14. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/doctrees/index.doctree +0 -0
  15. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/index.html +1 -1
  16. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/searchindex.js +1 -1
  17. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/.buildinfo +1 -1
  18. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/code.html +906 -484
  19. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/genindex.html +62 -10
  20. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/index.html +4 -4
  21. amps-python-client-5.3.4.4/docs/html/objects.inv +0 -0
  22. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/py-modindex.html +4 -4
  23. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/search.html +4 -4
  24. amps-python-client-5.3.4.4/docs/html/searchindex.js +1 -0
  25. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  26. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  27. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  28. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  29. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/deltas.doctree +0 -0
  30. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  31. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  32. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/first-program.doctree +0 -0
  33. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  34. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/installing.doctree +0 -0
  35. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/introduction.doctree +0 -0
  36. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  37. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  38. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/queues.doctree +0 -0
  39. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/sow.doctree +0 -0
  40. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  41. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/chapters/utilities.doctree +0 -0
  42. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/environment.pickle +0 -0
  43. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/doctrees/index.doctree +0 -0
  44. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/index.html +1 -1
  45. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/searchindex.js +1 -1
  46. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  47. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  48. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/doctrees/environment.pickle +0 -0
  49. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/doctrees/index.doctree +0 -0
  50. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/index.html +1 -1
  51. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/searchindex.js +1 -1
  52. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/delta.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  53. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/glossary.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  54. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_expressions.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  55. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/publishing.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  56. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/troubleshooting.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  57. amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  58. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-subscribe.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  59. amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  60. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  61. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/actions.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  62. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/queues.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  63. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/protocol-reference.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  64. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/replication.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  65. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/logging.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  66. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  67. amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  68. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/oof.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  69. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  70. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/events.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  71. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/securing.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  72. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  73. amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  74. amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  75. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/monitoring.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  76. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/usecases.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  77. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/pub_sub.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  78. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/distribution.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  79. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/utilities.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  80. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/acks.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  81. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/intro.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  82. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  83. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow_queries.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  84. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/utilities.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  85. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  86. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/operation.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  87. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/transports.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  88. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/daemon.doctree → amps-python-client-5.3.4.4/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  89. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/environment.pickle +0 -0
  90. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/doctrees/index.doctree +0 -0
  91. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/index.html +1 -1
  92. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/searchindex.js +1 -1
  93. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_defs.hpp +11 -1
  94. amps-python-client-5.3.4.4/include/ampspy_ssl.hpp +31 -0
  95. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspyver.h +1 -1
  96. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/index.html +1 -1
  97. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/setup.py +5 -5
  98. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/setup_amps.py +12 -4
  99. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/ampspy_shims.cpp +15 -5
  100. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/client.cpp +24 -1
  101. amps-python-client-5.3.4.4/src/client_docs.h +1210 -0
  102. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/command_docs.h +10 -5
  103. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/BlockPublishStore.hpp +0 -3
  104. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/BlockStore.hpp +0 -3
  105. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/Field.hpp +6 -2
  106. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/HAClient.hpp +5 -1
  107. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/HAClientImpl.hpp +37 -18
  108. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/LoggedBookmarkStore.hpp +1 -1
  109. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MMapStoreBuffer.hpp +24 -14
  110. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MemoryBookmarkStore.hpp +54 -32
  111. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MemoryStoreBuffer.hpp +4 -1
  112. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/Message.hpp +10 -1
  113. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MessageRouter.hpp +8 -2
  114. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ReconnectDelayStrategy.hpp +2 -2
  115. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/RingBookmarkStore.hpp +5 -2
  116. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +15 -6
  117. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ServerChooser.hpp +15 -4
  118. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/amps.h +14 -0
  119. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/amps_impl.h +14 -1
  120. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ampscrc.hpp +2 -4
  121. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ampsplusplus.hpp +60 -35
  122. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ampsver.h +2 -2
  123. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/util.hpp +77 -10
  124. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/amps_protocol.c +64 -20
  125. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/amps_ssl.c +207 -80
  126. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/atfork.c +33 -0
  127. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/tcp.c +215 -49
  128. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/tcps.c +357 -269
  129. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/unix.c +93 -32
  130. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/exponentialdelaystrategy.cpp +23 -29
  131. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/fixeddelaystrategy.cpp +13 -12
  132. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/haclient.cpp +1 -1
  133. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/haclient_docs.h +34 -20
  134. amps-python-client-5.3.4.4/src/hybridpublishstore.cpp +275 -0
  135. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/memorypublishstore.cpp +141 -4
  136. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/messagestream.cpp +8 -0
  137. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/nvfixbuilder.cpp +3 -3
  138. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/nvfixbuilder_docs.h +3 -3
  139. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/nvfixshredder_docs.h +3 -3
  140. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/publishstore.cpp +128 -2
  141. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/raw_wrapper.cpp +690 -20
  142. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/serverchooser_docs.h +4 -4
  143. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  144. amps-python-client-5.3.4.2/docs/html/objects.inv +0 -0
  145. amps-python-client-5.3.4.2/docs/html/searchindex.js +0 -1
  146. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  147. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  148. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  149. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  150. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  151. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  152. amps-python-client-5.3.4.2/src/client_docs.h +0 -956
  153. amps-python-client-5.3.4.2/src/hybridpublishstore.cpp +0 -137
  154. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/HISTORY +0 -0
  155. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/README.md +0 -0
  156. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/.buildinfo +0 -0
  157. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -0
  158. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -0
  159. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -0
  160. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -0
  161. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -0
  162. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -0
  163. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -0
  164. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -0
  165. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -0
  166. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -0
  167. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_sources/index.rst.txt +0 -0
  168. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  169. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/alabaster.css +0 -0
  170. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/basic.css +0 -0
  171. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/comment-bright.png +0 -0
  172. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/comment-close.png +0 -0
  173. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/comment.png +0 -0
  174. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/custom.css +0 -0
  175. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/doctools.js +0 -0
  176. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/down-pressed.png +0 -0
  177. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/down.png +0 -0
  178. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/file.png +0 -0
  179. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/flag_logo.png +0 -0
  180. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  181. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  182. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/jquery.js +0 -0
  183. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/minus.png +0 -0
  184. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/plus.png +0 -0
  185. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/pygments.css +0 -0
  186. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/searchtools.js +0 -0
  187. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  188. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/underscore.js +0 -0
  189. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/up-pressed.png +0 -0
  190. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/up.png +0 -0
  191. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/_static/websupport.js +0 -0
  192. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/ack-messages.html +0 -0
  193. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/content-messages.html +0 -0
  194. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/intro.html +0 -0
  195. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/logon.html +0 -0
  196. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/protocol-reference.html +0 -0
  197. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/publishing.html +0 -0
  198. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/query-delimiters.html +0 -0
  199. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/query-subscribe.html +0 -0
  200. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/removing.html +0 -0
  201. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/chapters/utilities.html +0 -0
  202. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/genindex.html +0 -0
  203. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/objects.inv +0 -0
  204. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/command-reference/html/search.html +0 -0
  205. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_sources/code.rst.txt +0 -0
  206. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_sources/index.rst.txt +0 -0
  207. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/ajax-loader.gif +0 -0
  208. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/basic.css +0 -0
  209. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/classic.css +0 -0
  210. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/comment-bright.png +0 -0
  211. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/comment-close.png +0 -0
  212. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/comment.png +0 -0
  213. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/default.css +0 -0
  214. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/doctools.js +0 -0
  215. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/down-pressed.png +0 -0
  216. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/down.png +0 -0
  217. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/file.png +0 -0
  218. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/jquery-3.1.0.js +0 -0
  219. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/jquery.js +0 -0
  220. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/minus.png +0 -0
  221. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/plus.png +0 -0
  222. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/pygments.css +0 -0
  223. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/searchtools.js +0 -0
  224. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/sidebar.js +0 -0
  225. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/underscore-1.3.1.js +0 -0
  226. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/underscore.js +0 -0
  227. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/up-pressed.png +0 -0
  228. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/up.png +0 -0
  229. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/html/_static/websupport.js +0 -0
  230. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/.buildinfo +0 -0
  231. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/caution.png +0 -0
  232. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/caution.svg +0 -0
  233. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/connection_string.svg +0 -0
  234. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/important.png +0 -0
  235. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/important.svg +0 -0
  236. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/tip.png +0 -0
  237. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/tip.svg +0 -0
  238. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_images/warning.png +0 -0
  239. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -0
  240. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  241. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -0
  242. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -0
  243. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/deltas.rst.txt +0 -0
  244. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -0
  245. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -0
  246. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/first-program.rst.txt +0 -0
  247. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -0
  248. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/installing.rst.txt +0 -0
  249. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/introduction.rst.txt +0 -0
  250. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -0
  251. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -0
  252. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/queues.rst.txt +0 -0
  253. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/sow.rst.txt +0 -0
  254. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -0
  255. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/chapters/utilities.rst.txt +0 -0
  256. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_sources/index.rst.txt +0 -0
  257. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/ajax-loader.gif +0 -0
  258. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/alabaster.css +0 -0
  259. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/basic.css +0 -0
  260. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/comment-bright.png +0 -0
  261. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/comment-close.png +0 -0
  262. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/comment.png +0 -0
  263. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/custom.css +0 -0
  264. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/doctools.js +0 -0
  265. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/down-pressed.png +0 -0
  266. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/down.png +0 -0
  267. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/file.png +0 -0
  268. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/flag_logo.png +0 -0
  269. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/flag_logo.svg +0 -0
  270. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  271. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/jquery.js +0 -0
  272. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/minus.png +0 -0
  273. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/plus.png +0 -0
  274. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/pygments.css +0 -0
  275. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/searchtools.js +0 -0
  276. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  277. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/underscore.js +0 -0
  278. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/up-pressed.png +0 -0
  279. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/up.png +0 -0
  280. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/_static/websupport.js +0 -0
  281. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/advanced-topics.html +0 -0
  282. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/cpp-compiler-list.html +0 -0
  283. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/cpp-feature-table.html +0 -0
  284. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/creating-commands.html +0 -0
  285. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/deltas.html +0 -0
  286. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/error-handling.html +0 -0
  287. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/exceptions.html +0 -0
  288. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/first-program.html +0 -0
  289. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/high-availability.html +0 -0
  290. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/installing.html +0 -0
  291. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/introduction.html +0 -0
  292. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/moving-from-python-lite.html +0 -0
  293. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/performance-tips.html +0 -0
  294. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/queues.html +0 -0
  295. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/sow.html +0 -0
  296. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/subscriptions.html +0 -0
  297. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/chapters/utilities.html +0 -0
  298. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/genindex.html +0 -0
  299. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/objects.inv +0 -0
  300. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python/html/search.html +0 -0
  301. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/.buildinfo +0 -0
  302. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  303. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  304. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  305. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  306. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  307. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/basic.css +0 -0
  308. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  309. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  310. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/comment.png +0 -0
  311. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/custom.css +0 -0
  312. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/doctools.js +0 -0
  313. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  314. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/down.png +0 -0
  315. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/file.png +0 -0
  316. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  317. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  318. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  319. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/jquery.js +0 -0
  320. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/minus.png +0 -0
  321. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/plus.png +0 -0
  322. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/pygments.css +0 -0
  323. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  324. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  325. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/underscore.js +0 -0
  326. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  327. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/up.png +0 -0
  328. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/_static/websupport.js +0 -0
  329. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/chapters/crankitup.html +0 -0
  330. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/chapters/equipment.html +0 -0
  331. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/genindex.html +0 -0
  332. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/objects.inv +0 -0
  333. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/python-quickstart/html/search.html +0 -0
  334. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/resources/custom.css +0 -0
  335. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/resources/flag_logo.svg +0 -0
  336. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/.buildinfo +0 -0
  337. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -0
  338. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -0
  339. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -0
  340. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -0
  341. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -0
  342. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -0
  343. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -0
  344. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -0
  345. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -0
  346. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -0
  347. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -0
  348. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -0
  349. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -0
  350. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -0
  351. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -0
  352. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -0
  353. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -0
  354. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -0
  355. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -0
  356. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -0
  357. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -0
  358. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -0
  359. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -0
  360. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -0
  361. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -0
  362. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -0
  363. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -0
  364. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -0
  365. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -0
  366. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -0
  367. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  368. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -0
  369. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -0
  370. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -0
  371. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -0
  372. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -0
  373. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -0
  374. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_sources/index.rst.txt +0 -0
  375. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  376. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/alabaster.css +0 -0
  377. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/basic.css +0 -0
  378. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/comment-bright.png +0 -0
  379. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/comment-close.png +0 -0
  380. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/comment.png +0 -0
  381. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/custom.css +0 -0
  382. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/doctools.js +0 -0
  383. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/down-pressed.png +0 -0
  384. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/down.png +0 -0
  385. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/file.png +0 -0
  386. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/flag_logo.png +0 -0
  387. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  388. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  389. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/jquery.js +0 -0
  390. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/minus.png +0 -0
  391. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/plus.png +0 -0
  392. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/pygments.css +0 -0
  393. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/searchtools.js +0 -0
  394. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  395. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/underscore.js +0 -0
  396. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/up-pressed.png +0 -0
  397. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/up.png +0 -0
  398. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/_static/websupport.js +0 -0
  399. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/acks.html +0 -0
  400. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/actions.html +0 -0
  401. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/amps-statistics.html +0 -0
  402. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/amps_expressions.html +0 -0
  403. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/amps_functions.html +0 -0
  404. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/auxiliary_modules.html +0 -0
  405. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -0
  406. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/conflated_topics.html +0 -0
  407. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/constructing-fields.html +0 -0
  408. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/daemon.html +0 -0
  409. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/delta.html +0 -0
  410. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/distribution.html +0 -0
  411. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/enrichment.html +0 -0
  412. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/events.html +0 -0
  413. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/file_format_versions.html +0 -0
  414. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/glossary.html +0 -0
  415. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/ha.html +0 -0
  416. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/installing_and_starting.html +0 -0
  417. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/intro.html +0 -0
  418. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/logging.html +0 -0
  419. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/messageTypes.html +0 -0
  420. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/monitoring.html +0 -0
  421. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/oof.html +0 -0
  422. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/operation.html +0 -0
  423. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/pub_sub.html +0 -0
  424. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/queues.html +0 -0
  425. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/replication.html +0 -0
  426. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/securing.html +0 -0
  427. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/sow.html +0 -0
  428. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/sow_queries.html +0 -0
  429. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/spark.html +0 -0
  430. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/transports.html +0 -0
  431. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/troubleshooting.html +0 -0
  432. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/txlog.html +0 -0
  433. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/usecases.html +0 -0
  434. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/utilities.html +0 -0
  435. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/chapters/views.html +0 -0
  436. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/genindex.html +0 -0
  437. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/objects.inv +0 -0
  438. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/docs/user-guide/html/search.html +0 -0
  439. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_bookmarkstore.hpp +0 -0
  440. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_compat.h +0 -0
  441. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_recoverypointadapter.hpp +0 -0
  442. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_shims.hpp +0 -0
  443. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_type_object.hpp +0 -0
  444. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/include/ampspy_types.hpp +0 -0
  445. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSConsolePublisher.py +0 -0
  446. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSConsoleSubscriber.py +0 -0
  447. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSFIXBuilderPublisher.py +0 -0
  448. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSFIXShredderSubscriber.py +0 -0
  449. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSNVFIXBuilderPublisher.py +0 -0
  450. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSNVFIXShredderSubscriber.py +0 -0
  451. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSPublishForReplay.py +0 -0
  452. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSQueueConsumer.py +0 -0
  453. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSQueuePublisher.py +0 -0
  454. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSSOWConsolePublisher.py +0 -0
  455. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSSOWConsoleSubscriber.py +0 -0
  456. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -0
  457. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSSOWandSubscribeWithOOF.py +0 -0
  458. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSSubscribeForReplay.py +0 -0
  459. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/AMPSUpdateForOOF.py +0 -0
  460. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/CompositeMessagePublisher.py +0 -0
  461. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/CompositeMessageSubscriber.py +0 -0
  462. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/RandomServerChooser.py +0 -0
  463. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/samples/sample.xml +0 -0
  464. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/ampspy_type_object.cpp +0 -0
  465. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/authenticator.cpp +0 -0
  466. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/bookmarkstore.cpp +0 -0
  467. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cmessagehandler.cpp +0 -0
  468. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/command.cpp +0 -0
  469. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/compositemessagebuilder.cpp +0 -0
  470. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/compositemessageparser.cpp +0 -0
  471. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/conflatingrecoverypointadapter.cpp +0 -0
  472. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/BookmarkStore.hpp +0 -0
  473. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/Buffer.hpp +0 -0
  474. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -0
  475. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/CompositeMessageParser.hpp +0 -0
  476. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/DefaultServerChooser.hpp +0 -0
  477. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/HybridPublishStore.hpp +0 -0
  478. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -0
  479. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MemoryPublishStore.hpp +0 -0
  480. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -0
  481. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/PublishStore.hpp +0 -0
  482. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -0
  483. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/RecoveryPoint.hpp +0 -0
  484. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -0
  485. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ServerChooserImpl.hpp +0 -0
  486. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/amps_generated.h +0 -0
  487. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/amps_ssl.h +0 -0
  488. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ampsuri.h +0 -0
  489. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/ampsver.h.in +0 -0
  490. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/include/amps/constants.hpp +0 -0
  491. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/amps_protocol_generated.h +0 -0
  492. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/client.c +0 -0
  493. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/makefile +0 -0
  494. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/message.c +0 -0
  495. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/message_generated.h +0 -0
  496. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/transports.c +0 -0
  497. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/cpp/src/uri.c +0 -0
  498. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/failedwritehandler.cpp +0 -0
  499. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/fixbuilder.cpp +0 -0
  500. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/fixshredder.cpp +0 -0
  501. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/fixshredder_docs.h +0 -0
  502. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/hybridpublishstore_docs.h +0 -0
  503. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/memorybookmarkstore.cpp +0 -0
  504. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/memorybookmarkstore_docs.h +0 -0
  505. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/memorypublishstore_docs.h +0 -0
  506. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/message.cpp +0 -0
  507. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/message_docs.h +0 -0
  508. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/messagestream_docs.h +0 -0
  509. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/mmapbookmarkstore.cpp +0 -0
  510. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/nvfixshredder.cpp +0 -0
  511. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/reason.cpp +0 -0
  512. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/recoverypoint.cpp +0 -0
  513. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/recoverypointadapter.cpp +0 -0
  514. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/ringbookmarkstore.cpp +0 -0
  515. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/serverchooser.cpp +0 -0
  516. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/sowrecoverypointadapter.cpp +0 -0
  517. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/store.cpp +0 -0
  518. {amps-python-client-5.3.4.2 → amps-python-client-5.3.4.4}/src/versioninfo.cpp +0 -0
@@ -6,7 +6,7 @@
6
6
  <head>
7
7
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
8
 
9
- <title>AMPS Module Reference &#8212; AMPS Python Client 5.3.4.2 documentation</title>
9
+ <title>AMPS Module Reference &#8212; AMPS Python Client 5.3.4.4 documentation</title>
10
10
 
11
11
  <link rel="stylesheet" href="_static/classic.css" type="text/css" />
12
12
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
14
14
  <script type="text/javascript">
15
15
  var DOCUMENTATION_OPTIONS = {
16
16
  URL_ROOT: './',
17
- VERSION: '5.3.4.2',
17
+ VERSION: '5.3.4.4',
18
18
  COLLAPSE_INDEX: false,
19
19
  FILE_SUFFIX: '.html',
20
20
  HAS_SOURCE: true,
@@ -41,7 +41,7 @@
41
41
  <li class="right" >
42
42
  <a href="index.html" title="AMPS Python Client Reference"
43
43
  accesskey="P">previous</a> |</li>
44
- <li class="nav-item nav-item-0"><a href="index.html">AMPS Python Client 5.3.4.2 documentation</a> &#187;</li>
44
+ <li class="nav-item nav-item-0"><a href="index.html">AMPS Python Client 5.3.4.4 documentation</a> &#187;</li>
45
45
  </ul>
46
46
  </div>
47
47
 
@@ -153,32 +153,41 @@ a function of a different signature than that shown, results in undefined behavi
153
153
 
154
154
  <dl class="class">
155
155
  <dt id="AMPS.Client">
156
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">Client</code><a class="headerlink" href="#AMPS.Client" title="Permalink to this definition">¶</a></dt>
156
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">Client</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client" title="Permalink to this definition">¶</a></dt>
157
157
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
158
- <blockquote>
159
- <div><p>The base AMPS Client object used in AMPS applications. Each Client object manages a single connection to AMPS. Each AMPS connection has a name, a specific transport (such as tcp), a protocol (used for framing messages to AMPS), and a message type (such as FIX or JSON).</p>
160
- <p>The Client object creates and manages a background thread, and sends and receives messages on that thread. The object provides both a synchronous interface for processing messages on the calling thread, and an asynchronous interface suitable for populating a queue to be processed by worker threads.</p>
161
- <p>Each Client has a name. The AMPS server uses this name for duplicate message detection, so the name of each instance of the client application should be unique.</p>
162
- <blockquote>
163
- <div><p>An example of a simple Python client publishing a JSON message is listed below:</p>
164
- <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">c</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="s2">&quot;test_client&quot;</span><span class="p">)</span>
158
+ <p>The base AMPS Client object used in AMPS applications. Each Client
159
+ object manages a single connection to AMPS. Each AMPS connection has
160
+ a name, a specific transport (such as tcp), a protocol (used for framing
161
+ messages to AMPS), and a message type (such as FIX or JSON).</p>
162
+ <p>The Client object creates and manages a background thread, and sends and
163
+ receives messages on that thread. The object provides both a synchronous
164
+ interface for processing messages on the calling thread, and an
165
+ asynchronous interface suitable for populating a queue to be processed by
166
+ worker threads.</p>
167
+ <p>Each Client has a name. The AMPS server uses this name for duplicate
168
+ message detection, so the name of each instance of the client application
169
+ should be unique.</p>
170
+ <p>An example of a Python client publishing a JSON message is listed below:</p>
171
+ <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">client</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="s2">&quot;test_client&quot;</span><span class="p">)</span>
165
172
 
166
173
  <span class="k">try</span><span class="p">:</span>
167
- <span class="n">c</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s2">&quot;tcp://127.0.0.1:9004/json&quot;</span><span class="p">)</span>
168
- <span class="n">cid</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">logon</span><span class="p">()</span>
169
- <span class="n">c</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;topic_name&quot;</span><span class="p">,</span><span class="s1">&#39;{&quot;a&quot;:1,&quot;b&quot;:&quot;2&quot;}&#39;</span><span class="p">)</span>
174
+ <span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s2">&quot;tcp://127.0.0.1:9004/amps/json&quot;</span><span class="p">)</span>
175
+ <span class="n">client</span><span class="o">.</span><span class="n">logon</span><span class="p">()</span>
176
+ <span class="n">client</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;topic_name&quot;</span><span class="p">,</span><span class="s1">&#39;{&quot;a&quot;:1,&quot;b&quot;:&quot;2&quot;}&#39;</span><span class="p">)</span>
170
177
  <span class="k">finally</span><span class="p">:</span>
171
- <span class="n">c</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
178
+ <span class="n">client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
172
179
  </pre></div>
173
180
  </div>
174
- </div></blockquote>
175
- </div></blockquote>
176
- <p>Constructor arguments:</p>
181
+ <p><strong>Constructor Arguments:</strong></p>
177
182
  <table class="docutils field-list" frame="void" rules="none">
178
183
  <col class="field-name" />
179
184
  <col class="field-body" />
180
185
  <tbody valign="top">
181
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> &#8211; the unique name for this client. AMPS does not enforce specific restrictions on the character set used, however some protocols (for example, XML) may not allow specific characters. 60East recommends that the client name be meaningful, short, human readable, and avoid using control characters, newline characters, or square brackets.</td>
186
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> &#8211; The unique name for this client. AMPS does not enforce
187
+ specific restrictions on the character set used, however some protocols
188
+ (for example, XML) may not allow specific characters. 60East recommends
189
+ that the client name be meaningful, short, human readable, and avoid
190
+ using control characters, newline characters, or square brackets.</td>
182
191
  </tr>
183
192
  </tbody>
184
193
  </table>
@@ -189,12 +198,14 @@ a function of a different signature than that shown, results in undefined behavi
189
198
  <p>This class provides special values for bookmark subscriptions:</p>
190
199
  <blockquote>
191
200
  <div><ul class="simple">
192
- <li><code class="docutils literal"><span class="pre">EPOCH</span></code> begin the subscription at the beginning of the journal</li>
193
- <li><code class="docutils literal"><span class="pre">MOST_RECENT</span></code> begin the subscription at the first undiscarded message in the bookmark store, or at the end of the bookmark store if all messages have been discarded</li>
194
- <li><code class="docutils literal"><span class="pre">NOW</span></code> begin the subscription at the time that AMPS processes the subscription</li>
201
+ <li><code class="docutils literal"><span class="pre">EPOCH</span></code> - Begin the subscription at the beginning of the journal.</li>
202
+ <li><code class="docutils literal"><span class="pre">MOST_RECENT</span></code> - Begin the subscription at the first undiscarded message in the bookmark store, or at the end of the bookmark store if all messages have been discarded.</li>
203
+ <li><code class="docutils literal"><span class="pre">NOW</span></code> - Begin the subscription at the time that AMPS processes the subscription.</li>
195
204
  </ul>
196
205
  </div></blockquote>
197
- <p>For example, to begin a bookmark subscription at the beginning of the journal, provide <code class="docutils literal"><span class="pre">AMPS.Client.Bookmarks.EPOCH</span></code> as the bookmark in the call to <a class="reference internal" href="#AMPS.Client.bookmark_subscribe" title="AMPS.Client.bookmark_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">AMPS.Client.bookmark_subscribe()</span></code></a>.</p>
206
+ <p>For example, to begin a bookmark subscription at the beginning of the journal,
207
+ provide <code class="docutils literal"><span class="pre">AMPS.Client.Bookmarks.EPOCH</span></code> as the bookmark in the call to
208
+ <a class="reference internal" href="#AMPS.Client.bookmark_subscribe" title="AMPS.Client.bookmark_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">AMPS.Client.bookmark_subscribe()</span></code></a>.</p>
198
209
  </dd></dl>
199
210
 
200
211
  <dl class="class">
@@ -207,11 +218,21 @@ a function of a different signature than that shown, results in undefined behavi
207
218
  <dl class="method">
208
219
  <dt id="AMPS.Client.ack">
209
220
  <code class="descclassname">Client.</code><code class="descname">ack</code><span class="sig-paren">(</span><em>message</em>, <em>options=None) OR ack(topic</em>, <em>bookmark</em>, <em>options=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.ack" title="Permalink to this definition">¶</a></dt>
210
- <dd><p>ACKs a message queue message.</p>
211
- <p>:param message an AMPS.Message object to ack, OR
212
- :param topic The topic of the message to ACK
213
- :param bookmark The bookmark of the message to ACK.
214
- :param options An optional string to include in the ACK such as &#8216;cancel&#8217;.</p>
221
+ <dd><p>Acknowledges a message queue message.</p>
222
+ <table class="docutils field-list" frame="void" rules="none">
223
+ <col class="field-name" />
224
+ <col class="field-body" />
225
+ <tbody valign="top">
226
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
227
+ <li><strong>message</strong> &#8211; An <code class="docutils literal"><span class="pre">AMPS.Message</span></code> object to ack, OR</li>
228
+ <li><strong>topic</strong> &#8211; The topic of the message to ack.</li>
229
+ <li><strong>bookmark</strong> &#8211; The bookmark of the message to ack.</li>
230
+ <li><strong>options</strong> &#8211; An optional string to include in the ack such as &#8216;cancel&#8217;.</li>
231
+ </ul>
232
+ </td>
233
+ </tr>
234
+ </tbody>
235
+ </table>
215
236
  </dd></dl>
216
237
 
217
238
  <dl class="method">
@@ -222,7 +243,10 @@ a function of a different signature than that shown, results in undefined behavi
222
243
  <col class="field-name" />
223
244
  <col class="field-body" />
224
245
  <tbody valign="top">
225
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>listener_callable</strong> (<em>A python function</em><em> or </em><em>other callable that takes a single value</em>) &#8211; The function or callable to be called. This function will be passed True if a connection is established, False if a disconnect occurs. Notice that when a connection is established, the client has not yet logged in or completed any recovery steps. The application should not issue commands on the client until recovery is completed.</td>
246
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>listener_callable</strong> (<em>A python function</em><em> or </em><em>other callable that takes a single value.</em>) &#8211; The function or callable to be called. This function will be passed True if a
247
+ connection is established, False if a disconnect occurs. Notice that when a connection
248
+ is established, the client has not yet logged in or completed any recovery steps.
249
+ The application should not issue commands on the client until recovery is completed.</td>
226
250
  </tr>
227
251
  </tbody>
228
252
  </table>
@@ -231,19 +255,18 @@ a function of a different signature than that shown, results in undefined behavi
231
255
  <dl class="method">
232
256
  <dt id="AMPS.Client.add_message_handler">
233
257
  <code class="descclassname">Client.</code><code class="descname">add_message_handler</code><span class="sig-paren">(</span><em>command_id</em>, <em>message_handler</em>, <em>acks</em>, <em>is_subscribe</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.add_message_handler" title="Permalink to this definition">¶</a></dt>
234
- <dd><blockquote>
235
- <div>Add a message handler to the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> to handle messages and the
236
- requested acks sent in response to the given command_id.</div></blockquote>
258
+ <dd><p>Add a message handler to the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> to handle messages and the
259
+ requested acknowledgments sent in response to the given <code class="docutils literal"><span class="pre">command_id</span></code>.</p>
237
260
  <table class="docutils field-list" frame="void" rules="none">
238
261
  <col class="field-name" />
239
262
  <col class="field-body" />
240
263
  <tbody valign="top">
241
264
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
242
- <li><strong>command_id</strong> (<em>str</em>) &#8211; The command, query, or sub id for messages and acks.</li>
265
+ <li><strong>command_id</strong> (<em>str</em>) &#8211; The command, query, or sub ID for messages and acks.</li>
243
266
  <li><strong>message_handler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler that will receive messages
244
- for the command_id.</li>
245
- <li><strong>acks</strong> (<em>int</em>) &#8211; The acks requested to go to the message_handler.</li>
246
- <li><strong>is_subscribe</strong> (<em>int</em>) &#8211; If the message_handler is for a subscribe command.</li>
267
+ for the <code class="docutils literal"><span class="pre">command_id</span></code>.</li>
268
+ <li><strong>acks</strong> (<em>str</em>) &#8211; The acknowledgments requested to go to the <code class="docutils literal"><span class="pre">message_handler</span></code>.</li>
269
+ <li><strong>is_subscribe</strong> (<em>int</em>) &#8211; If the <code class="docutils literal"><span class="pre">message_handler</span></code> is for a subscribe command.</li>
247
270
  </ul>
248
271
  </td>
249
272
  </tr>
@@ -260,11 +283,8 @@ for the command_id.</li>
260
283
  <dl class="method">
261
284
  <dt id="AMPS.Client.allocate_message">
262
285
  <code class="descclassname">Client.</code><code class="descname">allocate_message</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.allocate_message" title="Permalink to this definition">¶</a></dt>
263
- <dd><blockquote>
264
- <div><p>Creates a new <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> appropriate for this client.</p>
265
- <blockquote>
266
- <div>This function should be called rarely, since it does allocate a handful of small objects.</div></blockquote>
267
- </div></blockquote>
286
+ <dd><p>Creates a new <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> appropriate for this client.</p>
287
+ <p>This function should be called rarely, since it does allocate a handful of small objects.</p>
268
288
  <table class="docutils field-list" frame="void" rules="none">
269
289
  <col class="field-name" />
270
290
  <col class="field-body" />
@@ -277,31 +297,43 @@ for the command_id.</li>
277
297
 
278
298
  <dl class="method">
279
299
  <dt id="AMPS.Client.bookmark_subscribe">
280
- <code class="descclassname">Client.</code><code class="descname">bookmark_subscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>bookmark</em>, <em>filter=None</em>, <em>sub_id=None</em>, <em>options=None</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.bookmark_subscribe" title="Permalink to this definition">¶</a></dt>
281
- <dd><blockquote>
282
- <div><dl class="docutils">
283
- <dt>Places a bookmark subscription with AMPS. Starts replay at the most</dt>
284
- <dd>recent message reported by the <cite>bookmark</cite> parameter.</dd>
285
- </dl>
286
- </div></blockquote>
300
+ <code class="descclassname">Client.</code><code class="descname">bookmark_subscribe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.bookmark_subscribe" title="Permalink to this definition">¶</a></dt>
301
+ <dd><p><strong>Signatures</strong>:</p>
302
+ <ul>
303
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.bookmark_subscribe(on_message,</span> <span class="pre">topic,</span> <span class="pre">bookmark,</span> <span class="pre">filter=None,</span> <span class="pre">sub_id=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0)</span></code></p>
304
+ </li>
305
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.bookmark_subscribe(topic,</span> <span class="pre">bookmark,</span> <span class="pre">filter=None,</span> <span class="pre">sub_id=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0)</span></code></p>
306
+ <p>Places a bookmark subscription with AMPS. Starts replay at the most recent message reported by the <code class="docutils literal"><span class="pre">bookmark</span></code> parameter.</p>
307
+ <p>There are two ways to use this method:</p>
308
+ <ol class="arabic simple">
309
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">bookmark_subscribe</span></code> command on a background
310
+ thread and calls the message handler with individual messages from the transaction log replay (if any) and
311
+ then cuts over to live messages that match the subscription.</li>
312
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
313
+ messages received from the transaction log replay (if any) and then cuts over to live messages that match
314
+ the subscription.</li>
315
+ </ol>
316
+ </li>
317
+ </ul>
287
318
  <table class="docutils field-list" frame="void" rules="none">
288
319
  <col class="field-name" />
289
320
  <col class="field-body" />
290
321
  <tbody valign="top">
291
322
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
292
- <li><strong>on_message</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with matching messages.</li>
293
- <li><strong>topic</strong> (<em>str</em>) &#8211; The <cite>Topic</cite> to subscribe to.</li>
294
- <li><strong>bookmark</strong> (<em>str</em>) &#8211; A bookmark identifier, or one of the constants from
295
- <a class="reference internal" href="#AMPS.Client.Bookmarks" title="AMPS.Client.Bookmarks"><code class="xref py py-class docutils literal"><span class="pre">Bookmarks</span></code></a></li>
323
+ <li><strong>on_message</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with matching messages
324
+ (specified only in the case where async processing is used).</li>
325
+ <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to subscribe to.</li>
326
+ <li><strong>bookmark</strong> (<em>str</em>) &#8211; A bookmark identifier or one of the constants from
327
+ <a class="reference internal" href="#AMPS.Client.Bookmarks" title="AMPS.Client.Bookmarks"><code class="xref py py-class docutils literal"><span class="pre">Bookmarks</span></code></a>.</li>
296
328
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
297
- <li><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID. You may optionally provide a
329
+ <li><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID. You may optionally provide a
298
330
  subscription ID to ease recovery scenarios, instead of having the
299
331
  system automatically generate one for you.
300
332
  When used with the &#8216;replace&#8217; option, this is the subscription to
301
333
  be replaced.
302
334
  With a bookmark store, this is the subscription ID used for
303
335
  recovery. So, when using a persistent bookmark store, provide an explicit
304
- subscription id that is consistent across application restarts.</li>
336
+ subscription ID that is consistent across application restarts.</li>
305
337
  <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated string of options. Default is <cite>None</cite>.</li>
306
338
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
307
339
  and consume a processed ack for this subscription
@@ -309,7 +341,12 @@ and consume a processed ack for this subscription
309
341
  </ul>
310
342
  </td>
311
343
  </tr>
312
- <tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
344
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
345
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the
346
+ results of the command.</p>
347
+ </td>
348
+ </tr>
349
+ <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
313
350
  <a class="reference internal" href="#AMPS.BadFilterException" title="AMPS.BadFilterException"><code class="xref py py-exc docutils literal"><span class="pre">BadFilterException</span></code></a>, <a class="reference internal" href="#AMPS.BadRegexTopicException" title="AMPS.BadRegexTopicException"><code class="xref py py-exc docutils literal"><span class="pre">BadRegexTopicException</span></code></a>,
314
351
  <a class="reference internal" href="#AMPS.TimedOutException" title="AMPS.TimedOutException"><code class="xref py py-exc docutils literal"><span class="pre">TimedOutException</span></code></a>, <a class="reference internal" href="#AMPS.DisconnectedException" title="AMPS.DisconnectedException"><code class="xref py py-exc docutils literal"><span class="pre">DisconnectedException</span></code></a>.</p>
315
352
  </td>
@@ -327,47 +364,34 @@ and consume a processed ack for this subscription
327
364
  <dl class="method">
328
365
  <dt id="AMPS.Client.connect">
329
366
  <code class="descclassname">Client.</code><code class="descname">connect</code><span class="sig-paren">(</span><em>uri</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.connect" title="Permalink to this definition">¶</a></dt>
330
- <dd><blockquote>
331
- <div><p>Connects to the AMPS instance through the provided <code class="xref py py-class docutils literal"><span class="pre">URI</span></code>.</p>
367
+ <dd><p>Connects to the AMPS instance through the provided <code class="xref py py-class docutils literal"><span class="pre">URI</span></code>.</p>
332
368
  <blockquote>
333
369
  <div><dl class="docutils">
334
370
  <dt>The <code class="xref py py-class docutils literal"><span class="pre">URI</span></code> is a string with the format:</dt>
335
- <dd><code class="docutils literal"><span class="pre">transport://userId:password&#64;host:port/protocol</span></code> where:</dd>
371
+ <dd><code class="docutils literal"><span class="pre">transport://userId:password&#64;host:port/protocol</span></code></dd>
336
372
  </dl>
373
+ <p>The components of the <code class="xref py py-class docutils literal"><span class="pre">URI</span></code> are as follows:</p>
337
374
  <ul class="simple">
338
375
  <li><em>transport</em> &#8211; The network transport used for the connection.</li>
339
- <li><dl class="first docutils">
340
- <dt><em>userId</em> &#8211; If authentication is enabled, this is the unique user ID</dt>
341
- <dd>used to authenticate the connection.</dd>
342
- </dl>
343
- </li>
344
- <li><dl class="first docutils">
345
- <dt><em>password</em> &#8211; If authentication is enabled, this is the password used</dt>
346
- <dd>to authenticate the connection.</dd>
347
- </dl>
348
- </li>
349
- <li><dl class="first docutils">
350
- <dt><em>host</em> &#8211; The hostname or IP address of the host where AMPS is</dt>
351
- <dd>installed.</dd>
352
- </dl>
353
- </li>
376
+ <li><em>userId</em> &#8211; If authentication is enabled, this is the unique user ID used to authenticate the connection.</li>
377
+ <li><em>password</em> &#8211; If authentication is enabled, this is the password used to authenticate the connection.</li>
378
+ <li><em>host</em> &#8211; The hostname or IP address of the host where AMPS is installed.</li>
354
379
  <li><em>port</em> &#8211; The port to connect to the AMPS instance.</li>
355
380
  <li><em>protocol</em> &#8211; The protocol used by this connection.</li>
356
381
  </ul>
357
382
  <div class="admonition note">
358
383
  <p class="first admonition-title">Note</p>
359
- <p class="last">Authentication is optional, if the system is using the
360
- default authentication with AMPS which allows all users in without
384
+ <p class="last">Authentication is optional. If the system is using the
385
+ default authentication with AMPS, which allows all users in without
361
386
  regard for their <code class="docutils literal"><span class="pre">userId</span></code> or <code class="docutils literal"><span class="pre">password</span></code>, then the
362
387
  <code class="docutils literal"><span class="pre">userId:password&#64;</span></code> string can be omitted from the connect URI.</p>
363
388
  </div>
364
389
  </div></blockquote>
365
- </div></blockquote>
366
390
  <table class="docutils field-list" frame="void" rules="none">
367
391
  <col class="field-name" />
368
392
  <col class="field-body" />
369
393
  <tbody valign="top">
370
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>uri</strong> (<em>str</em>) &#8211; The :class`URI` used to connect to AMPS.</td>
394
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>uri</strong> (<em>str</em>) &#8211; The <code class="xref py py-class docutils literal"><span class="pre">URI</span></code> used to connect to AMPS.</td>
371
395
  </tr>
372
396
  <tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><a class="reference internal" href="#AMPS.ConnectionException" title="AMPS.ConnectionException"><code class="xref py py-class docutils literal"><span class="pre">ConnectionException</span></code></a></td>
373
397
  </tr>
@@ -377,9 +401,9 @@ regard for their <code class="docutils literal"><span class="pre">userId</span><
377
401
 
378
402
  <dl class="method">
379
403
  <dt id="AMPS.Client.convert_version_to_number">
380
- <code class="descclassname">Client.</code><code class="descname">convert_version_to_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.convert_version_to_number" title="Permalink to this definition">¶</a></dt>
381
- <dd><p>convert_version_to_number(version)Converts the provided version string to a number using 2 digits for each dot.
382
- A value such as 4.0 will become 4000000 while 3.8.1.7 will return 3080107.</p>
404
+ <code class="descclassname">Client.</code><code class="descname">convert_version_to_number</code><span class="sig-paren">(</span><em>version</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.convert_version_to_number" title="Permalink to this definition">¶</a></dt>
405
+ <dd><p>Converts the provided version string to a number using 2 digits for each dot.
406
+ A value such as 4.0.0.0 will become 4000000 while 3.8.1.7 will return 3080107.</p>
383
407
  <table class="docutils field-list" frame="void" rules="none">
384
408
  <col class="field-name" />
385
409
  <col class="field-body" />
@@ -396,22 +420,18 @@ A value such as 4.0 will become 4000000 while 3.8.1.7 will return 3080107.</p>
396
420
  <dt id="AMPS.Client.deltaPublish">
397
421
  <code class="descclassname">Client.</code><code class="descname">deltaPublish</code><span class="sig-paren">(</span><em>topic</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.deltaPublish" title="Permalink to this definition">¶</a></dt>
398
422
  <dd><p>This is a legacy method name for <a class="reference internal" href="#AMPS.Client.delta_publish" title="AMPS.Client.delta_publish"><code class="xref py py-meth docutils literal"><span class="pre">delta_publish()</span></code></a>.</p>
399
- <blockquote>
400
- <div><div class="deprecated">
423
+ <div class="deprecated">
401
424
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.delta_publish" title="AMPS.Client.delta_publish"><code class="xref py py-func docutils literal"><span class="pre">delta_publish()</span></code></a> instead.</p>
402
425
  </div>
403
- </div></blockquote>
404
426
  </dd></dl>
405
427
 
406
428
  <dl class="method">
407
429
  <dt id="AMPS.Client.deltaSubscribe">
408
430
  <code class="descclassname">Client.</code><code class="descname">deltaSubscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>options=0</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.deltaSubscribe" title="Permalink to this definition">¶</a></dt>
409
431
  <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.delta_subscribe" title="AMPS.Client.delta_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">delta_subscribe()</span></code></a>.</p>
410
- <blockquote>
411
- <div><div class="deprecated">
432
+ <div class="deprecated">
412
433
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.delta_subscribe" title="AMPS.Client.delta_subscribe"><code class="xref py py-func docutils literal"><span class="pre">delta_subscribe()</span></code></a> instead.</p>
413
434
  </div>
414
- </div></blockquote>
415
435
  </dd></dl>
416
436
 
417
437
  <dl class="method">
@@ -427,9 +447,9 @@ then the client will store before forwarding the message to AMPS.</p>
427
447
  <col class="field-body" />
428
448
  <tbody valign="top">
429
449
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
430
- <li><strong>topic</strong> (<em>str</em>) &#8211; <cite>Topic</cite> to publish the data to.</li>
431
- <li><strong>data</strong> (<em>str</em>) &#8211; <cite>Data</cite> to publish to the topic.</li>
432
- <li><strong>expiration</strong> (<em>int</em>) &#8211; Number of seconds until published message should expire.</li>
450
+ <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to publish the data to.</li>
451
+ <li><strong>data</strong> (<em>str</em>) &#8211; The data to publish to the topic.</li>
452
+ <li><strong>expiration</strong> (<em>int</em>) &#8211; Number of seconds until published messages should expire.</li>
433
453
  </ul>
434
454
  </td>
435
455
  </tr>
@@ -446,15 +466,30 @@ or 0 if there is no publish store and the server is assigning sequence numbers.<
446
466
 
447
467
  <dl class="method">
448
468
  <dt id="AMPS.Client.delta_subscribe">
449
- <code class="descclassname">Client.</code><code class="descname">delta_subscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>options=0</em>, <em>timeout=0</em>, <em>sub_id=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.delta_subscribe" title="Permalink to this definition">¶</a></dt>
450
- <dd><p>Places a delta subscription with AMPS.</p>
469
+ <code class="descclassname">Client.</code><code class="descname">delta_subscribe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.delta_subscribe" title="Permalink to this definition">¶</a></dt>
470
+ <dd><p><strong>Signatures</strong>:</p>
471
+ <ul>
472
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.delta_subscribe(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0,</span> <span class="pre">sub_id=None)</span></code></p>
473
+ </li>
474
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.delta_subscribe(topic,</span> <span class="pre">filter=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0,</span> <span class="pre">sub_id=None)</span></code></p>
475
+ <p>Places a delta subscription with AMPS.</p>
476
+ <p>There are two ways to use this method:</p>
477
+ <ol class="arabic simple">
478
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">delta_subscribe</span></code> command on a background thread
479
+ and calls the message handler with individual messages that match the subscription and that contain the updated fields.</li>
480
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
481
+ messages received that match the subscription and that contain the updated fields.</li>
482
+ </ol>
483
+ </li>
484
+ </ul>
451
485
  <table class="docutils field-list" frame="void" rules="none">
452
486
  <col class="field-name" />
453
487
  <col class="field-body" />
454
488
  <tbody valign="top">
455
489
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
456
- <li><strong>on_message</strong> (<em>str</em>) &#8211; The message handler to invoke with matching
457
- messages.</li>
490
+ <li><strong>on_message</strong> (<em>str</em>) &#8211; The message handler to invoke with matching messages
491
+ (specified only in the case where async processing
492
+ is used).</li>
458
493
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to subscribe to.</li>
459
494
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
460
495
  <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
@@ -465,12 +500,14 @@ consume the processed ack for this subscription
465
500
  <li><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID. You may optionally provide a
466
501
  subscription ID to ease recovery scenarios, instead of having the
467
502
  system automatically generate one for you.
468
- When used with the &#8216;replace&#8217; option, this is the subscription to
503
+ When used with the <code class="docutils literal"><span class="pre">replace</span></code> option, this is the subscription to
469
504
  be replaced.</li>
470
505
  </ul>
471
506
  </td>
472
507
  </tr>
473
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command.</p>
508
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
509
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the
510
+ results of the command.</p>
474
511
  </td>
475
512
  </tr>
476
513
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
@@ -490,15 +527,17 @@ be replaced.</li>
490
527
 
491
528
  <dl class="method">
492
529
  <dt id="AMPS.Client.execute">
493
- <code class="descclassname">Client.</code><code class="descname">execute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.execute" title="Permalink to this definition">¶</a></dt>
494
- <dd><p>Executes a Command on self.</p>
530
+ <code class="descclassname">Client.</code><code class="descname">execute</code><span class="sig-paren">(</span><em>command</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.execute" title="Permalink to this definition">¶</a></dt>
531
+ <dd><p>Execute the provided command and process responses using a <code class="docutils literal"><span class="pre">MessageStream</span></code>. This method creates
532
+ a <code class="docutils literal"><span class="pre">Message</span></code> based on the provided <code class="docutils literal"><span class="pre">Command</span></code>, sends the <code class="docutils literal"><span class="pre">Message</span></code> to AMPS, and returns a
533
+ <code class="docutils literal"><span class="pre">MessageStream</span></code> that can be iterated on to process messages returned in response to the command.</p>
495
534
  <table class="docutils field-list" frame="void" rules="none">
496
535
  <col class="field-name" />
497
536
  <col class="field-body" />
498
537
  <tbody valign="top">
499
- <tr class="field-odd field"><th class="field-name">Param:</th><td class="field-body">An AMPS.Command to execute.</td>
538
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>command</strong> (<a class="reference internal" href="#AMPS.Command" title="AMPS.Command"><em>AMPS.Command</em></a>) &#8211; The command to execute.</td>
500
539
  </tr>
501
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A MessageStream to iterate over.</td>
540
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A <code class="docutils literal"><span class="pre">MessageStream</span></code> to iterate over.</td>
502
541
  </tr>
503
542
  </tbody>
504
543
  </table>
@@ -506,17 +545,20 @@ be replaced.</li>
506
545
 
507
546
  <dl class="method">
508
547
  <dt id="AMPS.Client.execute_async">
509
- <code class="descclassname">Client.</code><code class="descname">execute_async</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.execute_async" title="Permalink to this definition">¶</a></dt>
510
- <dd><p>Execute the provided command and process responses on the client receive thread using the provided handler.</p>
511
- <p>This method creates a <code class="docutils literal"><span class="pre">Message</span></code> based on the provided <code class="docutils literal"><span class="pre">Command</span></code>, sends the <code class="docutils literal"><span class="pre">Message</span></code> to AMPS, and invokes the provided handler to process messages returned in response to the command. Rather than providing messages on the calling thread, the AMPS Python client runs the handler directly on the client receive thread.</p>
512
- <p>When the provided handler is not <code class="docutils literal"><span class="pre">None</span></code>, this function blocks until AMPS acknowledges that the command has been processed. The results of the command after that acknowledgement are provided to the handler.</p>
548
+ <code class="descclassname">Client.</code><code class="descname">execute_async</code><span class="sig-paren">(</span><em>command</em>, <em>on_message</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.execute_async" title="Permalink to this definition">¶</a></dt>
549
+ <dd><p>Execute the provided command and process responses on the client receive thread using the provided handler.
550
+ This method creates a <code class="docutils literal"><span class="pre">Message</span></code> based on the provided <code class="docutils literal"><span class="pre">Command</span></code>, sends the <code class="docutils literal"><span class="pre">Message</span></code> to AMPS, and
551
+ invokes the provided handler to process messages returned in response to the command. Rather than providing
552
+ messages on the calling thread, the AMPS Python client runs the handler directly on the client receive thread.</p>
553
+ <p>When the provided handler is not <code class="docutils literal"><span class="pre">None</span></code>, this function blocks until AMPS acknowledges that the command has
554
+ been processed. The results of the command after that acknowledgment are provided to the handler.</p>
513
555
  <table class="docutils field-list" frame="void" rules="none">
514
556
  <col class="field-name" />
515
557
  <col class="field-body" />
516
558
  <tbody valign="top">
517
559
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
518
560
  <li><strong>command</strong> (<a class="reference internal" href="#AMPS.Command" title="AMPS.Command"><em>AMPS.Command</em></a>) &#8211; The command to execute.</li>
519
- <li><strong>on_message</strong> (<em>a function</em><em> or </em><em>other callable object.</em>) &#8211; A handler for messages returned by this command execution.</li>
561
+ <li><strong>on_message</strong> (<em>A function</em><em> or </em><em>other callable object.</em>) &#8211; A handler for messages returned by this command execution.</li>
520
562
  </ul>
521
563
  </td>
522
564
  </tr>
@@ -529,8 +571,18 @@ be replaced.</li>
529
571
 
530
572
  <dl class="method">
531
573
  <dt id="AMPS.Client.flush">
532
- <code class="descclassname">Client.</code><code class="descname">flush</code><span class="sig-paren">(</span><em>timeout = 0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.flush" title="Permalink to this definition">¶</a></dt>
574
+ <code class="descclassname">Client.</code><code class="descname">flush</code><span class="sig-paren">(</span><em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.flush" title="Permalink to this definition">¶</a></dt>
533
575
  <dd><p>Another name for <a class="reference internal" href="#AMPS.Client.publish_flush" title="AMPS.Client.publish_flush"><code class="xref py py-meth docutils literal"><span class="pre">publish_flush()</span></code></a>.</p>
576
+ <table class="docutils field-list" frame="void" rules="none">
577
+ <col class="field-name" />
578
+ <col class="field-body" />
579
+ <tbody valign="top">
580
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the messages to be acknowledged
581
+ as persisted, or for the flush command to be acknowledged
582
+ by AMPS (in milliseconds). <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</td>
583
+ </tr>
584
+ </tbody>
585
+ </table>
534
586
  </dd></dl>
535
587
 
536
588
  <dl class="method">
@@ -542,60 +594,112 @@ be replaced.</li>
542
594
  <dl class="method">
543
595
  <dt id="AMPS.Client.get_ack_batch_size">
544
596
  <code class="descclassname">Client.</code><code class="descname">get_ack_batch_size</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_ack_batch_size" title="Permalink to this definition">¶</a></dt>
545
- <dd><p>Returns the current batch size used for batching message queue ACK messages.</p>
597
+ <dd><p>Gets the current batch size used for batching message queue acknowledgment messages.</p>
598
+ <table class="docutils field-list" frame="void" rules="none">
599
+ <col class="field-name" />
600
+ <col class="field-body" />
601
+ <tbody valign="top">
602
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The current batch size used for batching message queue ack messages.</td>
603
+ </tr>
604
+ </tbody>
605
+ </table>
546
606
  </dd></dl>
547
607
 
548
608
  <dl class="method">
549
609
  <dt id="AMPS.Client.get_ack_timeout">
550
610
  <code class="descclassname">Client.</code><code class="descname">get_ack_timeout</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_ack_timeout" title="Permalink to this definition">¶</a></dt>
551
- <dd><p>Returns the current time (milliseconds) before queued ack messages are sent.</p>
611
+ <dd><p>Gets the current time (milliseconds) before queued acknowledgment messages are sent.</p>
612
+ <table class="docutils field-list" frame="void" rules="none">
613
+ <col class="field-name" />
614
+ <col class="field-body" />
615
+ <tbody valign="top">
616
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The current time (milliseconds) before queued ack messages are sent.</td>
617
+ </tr>
618
+ </tbody>
619
+ </table>
552
620
  </dd></dl>
553
621
 
554
622
  <dl class="method">
555
623
  <dt id="AMPS.Client.get_auto_ack">
556
624
  <code class="descclassname">Client.</code><code class="descname">get_auto_ack</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_auto_ack" title="Permalink to this definition">¶</a></dt>
557
- <dd><p>Returns True if auto-acknowledgement of message queue messages is enabled.</p>
625
+ <dd><p>Called to check if auto-acknowledgment of message queue messages is enabled.</p>
626
+ <table class="docutils field-list" frame="void" rules="none">
627
+ <col class="field-name" />
628
+ <col class="field-body" />
629
+ <tbody valign="top">
630
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if auto-acknowledgment of message queue messages is enabled.</td>
631
+ </tr>
632
+ </tbody>
633
+ </table>
558
634
  </dd></dl>
559
635
 
560
636
  <dl class="method">
561
637
  <dt id="AMPS.Client.get_default_max_depth">
562
638
  <code class="descclassname">Client.</code><code class="descname">get_default_max_depth</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_default_max_depth" title="Permalink to this definition">¶</a></dt>
563
- <dd><p>:returns The current maximum depth for new MessageStreams, 0 is no maximum.</p>
639
+ <dd><p>Gets the maximum depth for any new <code class="docutils literal"><span class="pre">MessageStream</span></code>.</p>
640
+ <table class="docutils field-list" frame="void" rules="none">
641
+ <col class="field-name" />
642
+ <col class="field-body" />
643
+ <tbody valign="top">
644
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The current maximum depth for any new <code class="docutils literal"><span class="pre">MessageStream</span></code>. <code class="docutils literal"><span class="pre">0</span></code> is no maximum.</td>
645
+ </tr>
646
+ </tbody>
647
+ </table>
564
648
  </dd></dl>
565
649
 
566
650
  <dl class="method">
567
651
  <dt id="AMPS.Client.get_duplicate_message_handler">
568
652
  <code class="descclassname">Client.</code><code class="descname">get_duplicate_message_handler</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_duplicate_message_handler" title="Permalink to this definition">¶</a></dt>
569
- <dd><p>Returns the message handler object set with set_duplicate_message_handler.</p>
653
+ <dd><p>Gets the message handler object set with <a class="reference internal" href="#AMPS.Client.set_duplicate_message_handler" title="AMPS.Client.set_duplicate_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_duplicate_message_handler()</span></code></a>.</p>
654
+ <table class="docutils field-list" frame="void" rules="none">
655
+ <col class="field-name" />
656
+ <col class="field-body" />
657
+ <tbody valign="top">
658
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The message handler object set with <a class="reference internal" href="#AMPS.Client.set_duplicate_message_handler" title="AMPS.Client.set_duplicate_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_duplicate_message_handler()</span></code></a>.</td>
659
+ </tr>
660
+ </tbody>
661
+ </table>
570
662
  </dd></dl>
571
663
 
572
664
  <dl class="method">
573
665
  <dt id="AMPS.Client.get_error_on_publish_gap">
574
666
  <code class="descclassname">Client.</code><code class="descname">get_error_on_publish_gap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
575
- <dd><blockquote>
576
- <div>Called to check if the Store will throw PublishStoreGapException.</div></blockquote>
577
- <dl class="docutils">
578
- <dt>:returns If true, PublishStoreGapException can be thrown</dt>
579
- <dd>by the client publish store if the client logs onto a server that
580
- appears to be missing messages no longer held in the store.</dd>
581
- </dl>
667
+ <dd><p>Called to check if the Store will throw <a class="reference internal" href="#AMPS.PublishStoreGapException" title="AMPS.PublishStoreGapException"><code class="xref py py-exc docutils literal"><span class="pre">PublishStoreGapException</span></code></a>.</p>
668
+ <table class="docutils field-list" frame="void" rules="none">
669
+ <col class="field-name" />
670
+ <col class="field-body" />
671
+ <tbody valign="top">
672
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">If true, <a class="reference internal" href="#AMPS.PublishStoreGapException" title="AMPS.PublishStoreGapException"><code class="xref py py-exc docutils literal"><span class="pre">PublishStoreGapException</span></code></a> can be thrown
673
+ by the client publish store if the client logs onto a server that
674
+ appears to be missing messages no longer held in the store.</td>
675
+ </tr>
676
+ </tbody>
677
+ </table>
582
678
  </dd></dl>
583
679
 
584
680
  <dl class="method">
585
681
  <dt id="AMPS.Client.get_exception_listener">
586
682
  <code class="descclassname">Client.</code><code class="descname">get_exception_listener</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_exception_listener" title="Permalink to this definition">¶</a></dt>
587
- <dd><p>Returns the exception listener callable set on self, or None.</p>
683
+ <dd><p>Gets the exception listener callable set on self.</p>
684
+ <table class="docutils field-list" frame="void" rules="none">
685
+ <col class="field-name" />
686
+ <col class="field-body" />
687
+ <tbody valign="top">
688
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The exception listener callable set on self, or None.</td>
689
+ </tr>
690
+ </tbody>
691
+ </table>
588
692
  </dd></dl>
589
693
 
590
694
  <dl class="method">
591
695
  <dt id="AMPS.Client.get_logon_correlation_data">
592
696
  <code class="descclassname">Client.</code><code class="descname">get_logon_correlation_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_logon_correlation_data" title="Permalink to this definition">¶</a></dt>
593
- <dd><p>Returns the data used to correlate the logon of this Client to the server.</p>
697
+ <dd><p>Gets the data used to correlate the logon of this <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> to the server.</p>
594
698
  <table class="docutils field-list" frame="void" rules="none">
595
699
  <col class="field-name" />
596
700
  <col class="field-body" />
597
701
  <tbody valign="top">
598
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">logon correlation data</td>
702
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The logon correlation data.</td>
599
703
  </tr>
600
704
  </tbody>
601
705
  </table>
@@ -604,12 +708,12 @@ appears to be missing messages no longer held in the store.</dd>
604
708
  <dl class="method">
605
709
  <dt id="AMPS.Client.get_name">
606
710
  <code class="descclassname">Client.</code><code class="descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_name" title="Permalink to this definition">¶</a></dt>
607
- <dd><p>Returns the name of the <cite>Client</cite> object.</p>
711
+ <dd><p>Gets the name of the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> object.</p>
608
712
  <table class="docutils field-list" frame="void" rules="none">
609
713
  <col class="field-name" />
610
714
  <col class="field-body" />
611
715
  <tbody valign="top">
612
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">name</td>
716
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> name.</td>
613
717
  </tr>
614
718
  </tbody>
615
719
  </table>
@@ -618,12 +722,12 @@ appears to be missing messages no longer held in the store.</dd>
618
722
  <dl class="method">
619
723
  <dt id="AMPS.Client.get_name_hash">
620
724
  <code class="descclassname">Client.</code><code class="descname">get_name_hash</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_name_hash" title="Permalink to this definition">¶</a></dt>
621
- <dd><p>Returns the string name hash of the <cite>Client</cite> object.</p>
725
+ <dd><p>Gets the string name hash of the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> object.</p>
622
726
  <table class="docutils field-list" frame="void" rules="none">
623
727
  <col class="field-name" />
624
728
  <col class="field-body" />
625
729
  <tbody valign="top">
626
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">name hash string</td>
730
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The name hash string.</td>
627
731
  </tr>
628
732
  </tbody>
629
733
  </table>
@@ -632,12 +736,12 @@ appears to be missing messages no longer held in the store.</dd>
632
736
  <dl class="method">
633
737
  <dt id="AMPS.Client.get_name_hash_value">
634
738
  <code class="descclassname">Client.</code><code class="descname">get_name_hash_value</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_name_hash_value" title="Permalink to this definition">¶</a></dt>
635
- <dd><p>Returns the numeric name hash of the <cite>Client</cite> object.</p>
739
+ <dd><p>Gets the numeric name hash of the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> object.</p>
636
740
  <table class="docutils field-list" frame="void" rules="none">
637
741
  <col class="field-name" />
638
742
  <col class="field-body" />
639
743
  <tbody valign="top">
640
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">name hash int</td>
744
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The name hash int.</td>
641
745
  </tr>
642
746
  </tbody>
643
747
  </table>
@@ -646,18 +750,26 @@ appears to be missing messages no longer held in the store.</dd>
646
750
  <dl class="method">
647
751
  <dt id="AMPS.Client.get_retry_on_disconnect">
648
752
  <code class="descclassname">Client.</code><code class="descname">get_retry_on_disconnect</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_retry_on_disconnect" title="Permalink to this definition">¶</a></dt>
649
- <dd><p>Returns True if automatic retry of a command to AMPS after a reconnect is enabled.</p>
753
+ <dd><p>Called to check if automatic retry of a command to AMPS after a reconnect is enabled.</p>
754
+ <table class="docutils field-list" frame="void" rules="none">
755
+ <col class="field-name" />
756
+ <col class="field-body" />
757
+ <tbody valign="top">
758
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True, if automatic retry of a command to AMPS after a reconnect is enabled.</td>
759
+ </tr>
760
+ </tbody>
761
+ </table>
650
762
  </dd></dl>
651
763
 
652
764
  <dl class="method">
653
765
  <dt id="AMPS.Client.get_server_version">
654
766
  <code class="descclassname">Client.</code><code class="descname">get_server_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_server_version" title="Permalink to this definition">¶</a></dt>
655
- <dd><p>Returns the connected server&#8217;s version as a numeric value.</p>
767
+ <dd><p>Gets the connected server&#8217;s version as a numeric value.</p>
656
768
  <table class="docutils field-list" frame="void" rules="none">
657
769
  <col class="field-name" />
658
770
  <col class="field-body" />
659
771
  <tbody valign="top">
660
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The version converted to a number: server version 3.8.1.7 would be 3080107</td>
772
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The version converted to a number. For example, server version 3.8.1.7 would be 3080107.</td>
661
773
  </tr>
662
774
  </tbody>
663
775
  </table>
@@ -666,26 +778,32 @@ appears to be missing messages no longer held in the store.</dd>
666
778
  <dl class="method">
667
779
  <dt id="AMPS.Client.get_server_version_info">
668
780
  <code class="descclassname">Client.</code><code class="descname">get_server_version_info</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_server_version_info" title="Permalink to this definition">¶</a></dt>
669
- <dd><p>Returns the connected server&#8217;s version as a VersionInfo.</p>
781
+ <dd><p>Gets the connected server&#8217;s version as a VersionInfo.</p>
670
782
  <table class="docutils field-list" frame="void" rules="none">
671
783
  <col class="field-name" />
672
784
  <col class="field-body" />
673
785
  <tbody valign="top">
674
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The version in a VersionInfo</td>
786
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The version in a VersionInfo.</td>
675
787
  </tr>
676
788
  </tbody>
677
789
  </table>
678
790
  </dd></dl>
679
791
 
792
+ <dl class="method">
793
+ <dt id="AMPS.Client.get_ssl">
794
+ <code class="descclassname">Client.</code><code class="descname">get_ssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_ssl" title="Permalink to this definition">¶</a></dt>
795
+ <dd><p>For a tcps client, returns the PySSLSocket of the connection</p>
796
+ </dd></dl>
797
+
680
798
  <dl class="method">
681
799
  <dt id="AMPS.Client.get_unpersisted_count">
682
800
  <code class="descclassname">Client.</code><code class="descname">get_unpersisted_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_unpersisted_count" title="Permalink to this definition">¶</a></dt>
683
- <dd><p>Returns the count of unpersisted publishes.</p>
801
+ <dd><p>Gets the count of unpersisted publishes.</p>
684
802
  <table class="docutils field-list" frame="void" rules="none">
685
803
  <col class="field-name" />
686
804
  <col class="field-body" />
687
805
  <tbody valign="top">
688
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">count of unpersisted publishes.</td>
806
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The count of unpersisted publishes.</td>
689
807
  </tr>
690
808
  </tbody>
691
809
  </table>
@@ -694,13 +812,12 @@ appears to be missing messages no longer held in the store.</dd>
694
812
  <dl class="method">
695
813
  <dt id="AMPS.Client.get_uri">
696
814
  <code class="descclassname">Client.</code><code class="descname">get_uri</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.get_uri" title="Permalink to this definition">¶</a></dt>
697
- <dd><p>Returns the <code class="xref py py-class docutils literal"><span class="pre">URI</span></code> string passed into the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>
698
- during the <a class="reference internal" href="#AMPS.Client.connect" title="AMPS.Client.connect"><code class="xref py py-meth docutils literal"><span class="pre">connect()</span></code></a> invocation.</p>
815
+ <dd><p>Gets the <code class="xref py py-class docutils literal"><span class="pre">URI</span></code> string passed into the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> during the <a class="reference internal" href="#AMPS.Client.connect" title="AMPS.Client.connect"><code class="xref py py-meth docutils literal"><span class="pre">connect()</span></code></a> invocation.</p>
699
816
  <table class="docutils field-list" frame="void" rules="none">
700
817
  <col class="field-name" />
701
818
  <col class="field-body" />
702
819
  <tbody valign="top">
703
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">uri</td>
820
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The URI string.</td>
704
821
  </tr>
705
822
  </tbody>
706
823
  </table>
@@ -708,7 +825,7 @@ during the <a class="reference internal" href="#AMPS.Client.connect" title="AMPS
708
825
 
709
826
  <dl class="method">
710
827
  <dt id="AMPS.Client.logon">
711
- <code class="descclassname">Client.</code><code class="descname">logon</code><span class="sig-paren">(</span><em>timeout=0</em>, <em>authenticator=AMPS.DefaultAuthenticator</em>, <em>options=''</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.logon" title="Permalink to this definition">¶</a></dt>
828
+ <code class="descclassname">Client.</code><code class="descname">logon</code><span class="sig-paren">(</span><em>timeout=0</em>, <em>authenticator=AMPS.DefaultAuthenticator</em>, <em>options=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.logon" title="Permalink to this definition">¶</a></dt>
712
829
  <dd><p>Logs into AMPS with the parameters provided in the <a class="reference internal" href="#AMPS.Client.connect" title="AMPS.Client.connect"><code class="xref py py-meth docutils literal"><span class="pre">connect()</span></code></a> method.</p>
713
830
  <table class="docutils field-list" frame="void" rules="none">
714
831
  <col class="field-name" />
@@ -717,10 +834,9 @@ during the <a class="reference internal" href="#AMPS.Client.connect" title="AMPS
717
834
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
718
835
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the command to
719
836
  receive a processed ack from AMPS for the logon command
720
- (in milliseconds). <code class="docutils literal"><span class="pre">0`</span></code> indicates to wait indefinitely.</li>
837
+ (in milliseconds). <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
721
838
  <li><strong>authenticator</strong> (<em>Authenticator</em>) &#8211; An <cite>Authenticator</cite> object used to negotiate logon.</li>
722
- <li><strong>options</strong> (<em>string</em>) &#8211; An options string to pass to the server such as ack_conflation=10ms
723
- execute (milliseconds). <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
839
+ <li><strong>options</strong> (<em>string</em>) &#8211; An options string to be passed to the server during logon, such as <code class="docutils literal"><span class="pre">ack_conflation=100ms</span></code>.</li>
724
840
  </ul>
725
841
  </td>
726
842
  </tr>
@@ -737,12 +853,12 @@ execute (milliseconds). <code class="docutils literal"><span class="pre">0</span
737
853
  <dl class="method">
738
854
  <dt id="AMPS.Client.name">
739
855
  <code class="descclassname">Client.</code><code class="descname">name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.name" title="Permalink to this definition">¶</a></dt>
740
- <dd><p>Returns the name of the <cite>Client</cite> object.</p>
856
+ <dd><p>The name of the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> object.</p>
741
857
  <table class="docutils field-list" frame="void" rules="none">
742
858
  <col class="field-name" />
743
859
  <col class="field-body" />
744
860
  <tbody valign="top">
745
- <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">name</td>
861
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> name.</td>
746
862
  </tr>
747
863
  </tbody>
748
864
  </table>
@@ -751,13 +867,10 @@ execute (milliseconds). <code class="docutils literal"><span class="pre">0</span
751
867
  <dl class="method">
752
868
  <dt id="AMPS.Client.publish">
753
869
  <code class="descclassname">Client.</code><code class="descname">publish</code><span class="sig-paren">(</span><em>topic</em>, <em>data</em>, <em>expiration=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.publish" title="Permalink to this definition">¶</a></dt>
754
- <dd><p>Publish a mesage to an AMPS topic.
755
- This method does not wait for a response from the AMPS server.
756
- To detect failure, install a failed write handler.
757
- If the client was created with a persistent store on construction,
758
- then the client will store before forwarding the message to AMPS.
759
- If a DisconnectException occurs, the message
760
- is still stored in the publish store.</p>
870
+ <dd><p>Publish a message to an AMPS topic. This method does not wait for a response from the AMPS server.
871
+ To detect failure, install a failed write handler. If the client was created with a persistent store
872
+ on construction, then the client will store before forwarding the message to AMPS. If a <code class="docutils literal"><span class="pre">DisconnectException</span></code>
873
+ occurs, the message is still stored in the publish store.</p>
761
874
  <table class="docutils field-list" frame="void" rules="none">
762
875
  <col class="field-name" />
763
876
  <col class="field-body" />
@@ -773,7 +886,7 @@ is still stored in the publish store.</p>
773
886
  or 0 if there is no publish store and the server is assigning sequence numbers.</p>
774
887
  </td>
775
888
  </tr>
776
- <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.DisconnectedException" title="AMPS.DisconnectedException"><code class="xref py py-exc docutils literal"><span class="pre">DisconnectedException</span></code></a> The client is not connected; the program needs to call connect()</p>
889
+ <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.DisconnectedException" title="AMPS.DisconnectedException"><code class="xref py py-exc docutils literal"><span class="pre">DisconnectedException</span></code></a></p>
777
890
  </td>
778
891
  </tr>
779
892
  </tbody>
@@ -782,9 +895,19 @@ or 0 if there is no publish store and the server is assigning sequence numbers.<
782
895
 
783
896
  <dl class="method">
784
897
  <dt id="AMPS.Client.publish_flush">
785
- <code class="descclassname">Client.</code><code class="descname">publish_flush</code><span class="sig-paren">(</span><em>timeout = 0</em>, <em>ack_type = Message.AckType.ProcessedEnum</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.publish_flush" title="Permalink to this definition">¶</a></dt>
786
- <dd><blockquote>
787
- <div>Ensures that pending AMPS messages are sent and have been processed by the AMPS server. When the client has a publish store configured, waits until all messages that are in the store at the time the command is called have been acknowledged by AMPS. Otherwise, issues a <code class="docutils literal"><span class="pre">flush</span></code> command and waits for the server to acknowledge that command. This method blocks until messages have been processed or until the timeout expires, and is most useful when the application reaches a point at which it is acceptable to block to ensure that messages are delivered to the AMPS server. For example, an application might call publish_flush before exiting. One thing to note is that if AMPS is unavailable (HA Client), publish_flush needs to wait for a connection to come back up which may look like it&#8217;s hanging.</div></blockquote>
898
+ <code class="descclassname">Client.</code><code class="descname">publish_flush</code><span class="sig-paren">(</span><em>timeout=0</em>, <em>ack_type=Message.AckType.ProcessedEnum</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.publish_flush" title="Permalink to this definition">¶</a></dt>
899
+ <dd><p>Ensures that pending AMPS messages are sent and have been processed by the
900
+ AMPS server. When the client has a publish store configured, waits until
901
+ all messages that are in the store at the time the command is called have
902
+ been acknowledged by AMPS. Otherwise, issues a <code class="docutils literal"><span class="pre">flush</span></code> command
903
+ and waits for the server to acknowledge that command.</p>
904
+ <p>This method blocks until messages have been processed or
905
+ until the timeout expires, and is most useful when the application reaches
906
+ a point at which it is acceptable to block to ensure that messages are
907
+ delivered to the AMPS server. For example, an application might call
908
+ <code class="docutils literal"><span class="pre">publish_flush</span></code> before exiting.</p>
909
+ <p>One thing to note is that if AMPS is unavailable (HA Client), <code class="docutils literal"><span class="pre">publish_flush</span></code>
910
+ needs to wait for a connection to come back up, which may look like it&#8217;s hanging.</p>
788
911
  <table class="docutils field-list" frame="void" rules="none">
789
912
  <col class="field-name" />
790
913
  <col class="field-body" />
@@ -792,9 +915,9 @@ or 0 if there is no publish store and the server is assigning sequence numbers.<
792
915
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
793
916
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the messages to be acknowledged
794
917
  as persisted, or for the flush command to be acknowledged
795
- by AMPS (in milliseconds), or 0 to wait indefinitely.</li>
918
+ by AMPS (in milliseconds). <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
796
919
  <li><strong>ack_type</strong> (<em>int</em>) &#8211; Whether the command should wait for a Processed or a
797
- Persisted ack when sending the <cite>flush</cite> command.</li>
920
+ Persisted ack when sending the <code class="docutils literal"><span class="pre">flush</span></code> command.</li>
798
921
  </ul>
799
922
  </td>
800
923
  </tr>
@@ -805,19 +928,26 @@ Persisted ack when sending the <cite>flush</cite> command.</li>
805
928
  <dl class="method">
806
929
  <dt id="AMPS.Client.remove_connection_state_listener">
807
930
  <code class="descclassname">Client.</code><code class="descname">remove_connection_state_listener</code><span class="sig-paren">(</span><em>listener_callable</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.remove_connection_state_listener" title="Permalink to this definition">¶</a></dt>
808
- <dd><p>Removes a listener function previously supplied to add_connection_state_listener.</p>
931
+ <dd><p>Removes a listener function previously supplied to <a class="reference internal" href="#AMPS.Client.add_connection_state_listener" title="AMPS.Client.add_connection_state_listener"><code class="xref py py-meth docutils literal"><span class="pre">add_connection_state_listener()</span></code></a>.</p>
932
+ <table class="docutils field-list" frame="void" rules="none">
933
+ <col class="field-name" />
934
+ <col class="field-body" />
935
+ <tbody valign="top">
936
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>listener_callable</strong> (<em>A python function</em><em> or </em><em>other callable that takes a single value.</em>) &#8211; The function or callable to be removed.</td>
937
+ </tr>
938
+ </tbody>
939
+ </table>
809
940
  </dd></dl>
810
941
 
811
942
  <dl class="method">
812
943
  <dt id="AMPS.Client.remove_message_handler">
813
944
  <code class="descclassname">Client.</code><code class="descname">remove_message_handler</code><span class="sig-paren">(</span><em>command_id</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.remove_message_handler" title="Permalink to this definition">¶</a></dt>
814
- <dd><blockquote>
815
- <div>Remove a message handler from the <code class="xref py py-class docutils literal"><span class="pre">Client.</span></code></div></blockquote>
945
+ <dd><p>Remove a message handler from the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>.</p>
816
946
  <table class="docutils field-list" frame="void" rules="none">
817
947
  <col class="field-name" />
818
948
  <col class="field-body" />
819
949
  <tbody valign="top">
820
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>command_id</strong> (<em>str</em>) &#8211; The command_id for the handler to remove.</td>
950
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>command_id</strong> (<em>str</em>) &#8211; The command ID for the handler to remove.</td>
821
951
  </tr>
822
952
  </tbody>
823
953
  </table>
@@ -826,12 +956,7 @@ Persisted ack when sending the <cite>flush</cite> command.</li>
826
956
  <dl class="method">
827
957
  <dt id="AMPS.Client.send">
828
958
  <code class="descclassname">Client.</code><code class="descname">send</code><span class="sig-paren">(</span><em>message</em>, <em>message_handler=None</em>, <em>timeout=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.send" title="Permalink to this definition">¶</a></dt>
829
- <dd><blockquote>
830
- <div><dl class="docutils">
831
- <dt>Send a <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> to AMPS via the <code class="xref py py-class docutils literal"><span class="pre">Transport</span></code> used in</dt>
832
- <dd>the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>.</dd>
833
- </dl>
834
- </div></blockquote>
959
+ <dd><p>Send a <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> to AMPS via the <code class="xref py py-class docutils literal"><span class="pre">Transport</span></code> used in the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>.</p>
835
960
  <table class="docutils field-list" frame="void" rules="none">
836
961
  <col class="field-name" />
837
962
  <col class="field-body" />
@@ -857,95 +982,102 @@ one is not assigned.</p>
857
982
  <dl class="method">
858
983
  <dt id="AMPS.Client.setDisconnectHandler">
859
984
  <code class="descclassname">Client.</code><code class="descname">setDisconnectHandler</code><span class="sig-paren">(</span><em>client_disconnect_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.setDisconnectHandler" title="Permalink to this definition">¶</a></dt>
860
- <dd><dl class="docutils">
861
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_disconnect_handler()</span></code></a></dt>
862
- <dd><div class="first last deprecated">
985
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_disconnect_handler()</span></code></a>.</p>
986
+ <div class="deprecated">
863
987
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-func docutils literal"><span class="pre">set_disconnect_handler()</span></code></a> instead.</p>
864
988
  </div>
865
- </dd>
866
- </dl>
867
989
  </dd></dl>
868
990
 
869
991
  <dl class="method">
870
992
  <dt id="AMPS.Client.setExceptionListener">
871
993
  <code class="descclassname">Client.</code><code class="descname">setExceptionListener</code><span class="sig-paren">(</span><em>exception_listener</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.setExceptionListener" title="Permalink to this definition">¶</a></dt>
872
- <dd><dl class="docutils">
873
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_exception_listener" title="AMPS.Client.set_exception_listener"><code class="xref py py-meth docutils literal"><span class="pre">set_exception_listener()</span></code></a>.</dt>
874
- <dd><div class="first last deprecated">
994
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_exception_listener" title="AMPS.Client.set_exception_listener"><code class="xref py py-meth docutils literal"><span class="pre">set_exception_listener()</span></code></a>.</p>
995
+ <div class="deprecated">
875
996
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_exception_listener" title="AMPS.Client.set_exception_listener"><code class="xref py py-func docutils literal"><span class="pre">set_exception_listener()</span></code></a> instead.</p>
876
997
  </div>
877
- </dd>
878
- </dl>
879
998
  </dd></dl>
880
999
 
881
1000
  <dl class="method">
882
1001
  <dt id="AMPS.Client.setName">
883
1002
  <code class="descclassname">Client.</code><code class="descname">setName</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.setName" title="Permalink to this definition">¶</a></dt>
884
- <dd><dl class="docutils">
885
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_name" title="AMPS.Client.set_name"><code class="xref py py-meth docutils literal"><span class="pre">set_name()</span></code></a>.</dt>
886
- <dd><div class="first last deprecated">
1003
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_name" title="AMPS.Client.set_name"><code class="xref py py-meth docutils literal"><span class="pre">set_name()</span></code></a>.</p>
1004
+ <div class="deprecated">
887
1005
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_name" title="AMPS.Client.set_name"><code class="xref py py-func docutils literal"><span class="pre">set_name()</span></code></a> instead.</p>
888
1006
  </div>
889
- </dd>
890
- </dl>
891
1007
  </dd></dl>
892
1008
 
893
1009
  <dl class="method">
894
1010
  <dt id="AMPS.Client.setOnDisconnectHandler">
895
1011
  <code class="descclassname">Client.</code><code class="descname">setOnDisconnectHandler</code><span class="sig-paren">(</span><em>client_disconnect_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.setOnDisconnectHandler" title="Permalink to this definition">¶</a></dt>
896
- <dd><dl class="docutils">
897
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_disconnect_handler()</span></code></a></dt>
898
- <dd><div class="first last deprecated">
1012
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_disconnect_handler()</span></code></a>.</p>
1013
+ <div class="deprecated">
899
1014
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_disconnect_handler" title="AMPS.Client.set_disconnect_handler"><code class="xref py py-func docutils literal"><span class="pre">set_disconnect_handler()</span></code></a> instead.</p>
900
1015
  </div>
901
- </dd>
902
- </dl>
903
1016
  </dd></dl>
904
1017
 
905
1018
  <dl class="method">
906
1019
  <dt id="AMPS.Client.setUnhandledMessageHandler">
907
1020
  <code class="descclassname">Client.</code><code class="descname">setUnhandledMessageHandler</code><span class="sig-paren">(</span><em>message_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.setUnhandledMessageHandler" title="Permalink to this definition">¶</a></dt>
908
- <dd><dl class="docutils">
909
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a>.</dt>
910
- <dd><div class="first last deprecated">
1021
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a>.</p>
1022
+ <div class="deprecated">
911
1023
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-func docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a> instead.</p>
912
1024
  </div>
913
- </dd>
914
- </dl>
915
1025
  </dd></dl>
916
1026
 
917
1027
  <dl class="method">
918
1028
  <dt id="AMPS.Client.set_ack_batch_size">
919
1029
  <code class="descclassname">Client.</code><code class="descname">set_ack_batch_size</code><span class="sig-paren">(</span><em>batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_ack_batch_size" title="Permalink to this definition">¶</a></dt>
920
- <dd><p>Sets the batch size used for batching message queue ACK messages.</p>
921
- <p>:param batch_size The number of ACK messages to batch before sending.</p>
1030
+ <dd><p>Sets the batch size used for batching message queue ack messages.</p>
1031
+ <table class="docutils field-list" frame="void" rules="none">
1032
+ <col class="field-name" />
1033
+ <col class="field-body" />
1034
+ <tbody valign="top">
1035
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>batch_size</strong> &#8211; The number of ack messages to batch before sending.</td>
1036
+ </tr>
1037
+ </tbody>
1038
+ </table>
922
1039
  </dd></dl>
923
1040
 
924
1041
  <dl class="method">
925
1042
  <dt id="AMPS.Client.set_ack_timeout">
926
1043
  <code class="descclassname">Client.</code><code class="descname">set_ack_timeout</code><span class="sig-paren">(</span><em>timeout</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_ack_timeout" title="Permalink to this definition">¶</a></dt>
927
1044
  <dd><p>Sets the time before queued ack messages are sent.</p>
928
- <p>:param timeout The maximum amount of time to wait after adding the first message to an acknowledgement batch before sending the batch, in milliseconds. 0 indicates that the client will wait until the batch is full. A value of 0 is not recommended unless the batch size is set to 1.</p>
1045
+ <table class="docutils field-list" frame="void" rules="none">
1046
+ <col class="field-name" />
1047
+ <col class="field-body" />
1048
+ <tbody valign="top">
1049
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>timeout</strong> &#8211; The maximum amount of time to wait after adding the first message to an acknowledgment
1050
+ batch before sending the batch, in milliseconds. 0 indicates that the client will wait
1051
+ until the batch is full. A value of 0 is not recommended unless the batch size is set to 1.</td>
1052
+ </tr>
1053
+ </tbody>
1054
+ </table>
929
1055
  </dd></dl>
930
1056
 
931
1057
  <dl class="method">
932
1058
  <dt id="AMPS.Client.set_auto_ack">
933
1059
  <code class="descclassname">Client.</code><code class="descname">set_auto_ack</code><span class="sig-paren">(</span><em>enabled</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_auto_ack" title="Permalink to this definition">¶</a></dt>
934
- <dd><p>Enables or disables auto-acknowledgement of message queue messages.</p>
935
- <p>:param enabled True to enable auto-acknowledgement of message queue messages.</p>
1060
+ <dd><p>Enables or disables auto-acknowledgment of message queue messages.</p>
1061
+ <table class="docutils field-list" frame="void" rules="none">
1062
+ <col class="field-name" />
1063
+ <col class="field-body" />
1064
+ <tbody valign="top">
1065
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>enabled</strong> (<em>Boolean</em>) &#8211; True to enable auto-acknowledgment of message queue messages.</td>
1066
+ </tr>
1067
+ </tbody>
1068
+ </table>
936
1069
  </dd></dl>
937
1070
 
938
1071
  <dl class="method">
939
1072
  <dt id="AMPS.Client.set_bookmark_store">
940
- <code class="descclassname">Client.</code><code class="descname">set_bookmark_store</code><span class="sig-paren">(</span><em>bookmarkStore</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_bookmark_store" title="Permalink to this definition">¶</a></dt>
1073
+ <code class="descclassname">Client.</code><code class="descname">set_bookmark_store</code><span class="sig-paren">(</span><em>bookmark_store</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_bookmark_store" title="Permalink to this definition">¶</a></dt>
941
1074
  <dd><p>Sets a bookmark store on self.</p>
942
1075
  <table class="docutils field-list" frame="void" rules="none">
943
1076
  <col class="field-name" />
944
1077
  <col class="field-body" />
945
1078
  <tbody valign="top">
946
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bookmarkStore</strong> &#8211; an <a class="reference internal" href="#AMPS.MMapBookmarkStore" title="AMPS.MMapBookmarkStore"><code class="xref py py-class docutils literal"><span class="pre">MMapBookmarkStore</span></code></a> or
947
- <a class="reference internal" href="#AMPS.MemoryBookmarkStore" title="AMPS.MemoryBookmarkStore"><code class="xref py py-class docutils literal"><span class="pre">MemoryBookmarkStore</span></code></a> instance, or a custom object that
948
- implements the required bookmark store methods.</td>
1079
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bookmark_store</strong> &#8211; A <a class="reference internal" href="#AMPS.MMapBookmarkStore" title="AMPS.MMapBookmarkStore"><code class="xref py py-class docutils literal"><span class="pre">MMapBookmarkStore</span></code></a> or <a class="reference internal" href="#AMPS.MemoryBookmarkStore" title="AMPS.MemoryBookmarkStore"><code class="xref py py-class docutils literal"><span class="pre">MemoryBookmarkStore</span></code></a> instance,
1080
+ or a custom object that implements the required bookmark store methods.</td>
949
1081
  </tr>
950
1082
  </tbody>
951
1083
  </table>
@@ -954,26 +1086,23 @@ implements the required bookmark store methods.</td>
954
1086
  <dl class="method">
955
1087
  <dt id="AMPS.Client.set_default_max_depth">
956
1088
  <code class="descclassname">Client.</code><code class="descname">set_default_max_depth</code><span class="sig-paren">(</span><em>depth</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_default_max_depth" title="Permalink to this definition">¶</a></dt>
957
- <dd><blockquote>
958
- <div><dl class="docutils">
959
- <dt>Sets a default maximum depth for all new MessageStream objects</dt>
960
- <dd>that are returned from synchronous API calls such as execute().</dd>
961
- </dl>
962
- </div></blockquote>
963
- <p>:param depth The new depth to use. A depth of 0 means no max and is the default.
964
- :type depth: int.</p>
1089
+ <dd><p>Sets a default maximum depth for all new <code class="docutils literal"><span class="pre">MessageStream</span></code> objects
1090
+ that are returned from synchronous API calls such as <a class="reference internal" href="#AMPS.Client.execute" title="AMPS.Client.execute"><code class="xref py py-meth docutils literal"><span class="pre">execute()</span></code></a>.</p>
1091
+ <table class="docutils field-list" frame="void" rules="none">
1092
+ <col class="field-name" />
1093
+ <col class="field-body" />
1094
+ <tbody valign="top">
1095
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>depth</strong> (<em>int</em>) &#8211; The new depth to use. A depth of <code class="docutils literal"><span class="pre">0</span></code> means no max and is the default.</td>
1096
+ </tr>
1097
+ </tbody>
1098
+ </table>
965
1099
  </dd></dl>
966
1100
 
967
1101
  <dl class="method">
968
1102
  <dt id="AMPS.Client.set_disconnect_handler">
969
1103
  <code class="descclassname">Client.</code><code class="descname">set_disconnect_handler</code><span class="sig-paren">(</span><em>client_disconnect_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_disconnect_handler" title="Permalink to this definition">¶</a></dt>
970
- <dd><blockquote>
971
- <div><dl class="docutils">
972
- <dt>Sets the <code class="xref py py-class docutils literal"><span class="pre">DisconnectHandler</span></code> used by the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>. In</dt>
973
- <dd>the event that the <cite>Client</cite> is unintentionally disconnected from AMPS, the invoke
974
- method from the <code class="xref py py-class docutils literal"><span class="pre">ClientDisconnectHandler</span></code> will be invoked.</dd>
975
- </dl>
976
- </div></blockquote>
1104
+ <dd><p>Sets the <code class="xref py py-class docutils literal"><span class="pre">DisconnectHandler</span></code> used by the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>. In the event that the <cite>Client</cite> is unintentionally
1105
+ disconnected from AMPS, the invoke method from the <code class="xref py py-class docutils literal"><span class="pre">ClientDisconnectHandler</span></code> will be invoked.</p>
977
1106
  <table class="docutils field-list" frame="void" rules="none">
978
1107
  <col class="field-name" />
979
1108
  <col class="field-body" />
@@ -987,18 +1116,13 @@ method from the <code class="xref py py-class docutils literal"><span class="pre
987
1116
  <dl class="method">
988
1117
  <dt id="AMPS.Client.set_duplicate_message_handler">
989
1118
  <code class="descclassname">Client.</code><code class="descname">set_duplicate_message_handler</code><span class="sig-paren">(</span><em>message_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_duplicate_message_handler" title="Permalink to this definition">¶</a></dt>
990
- <dd><blockquote>
991
- <div><dl class="docutils">
992
- <dt>Sets the <code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code> instance used for messages that arrive from AMPS</dt>
993
- <dd>that are deemed to be duplicates of previous messages, according to the local bookmark store.</dd>
994
- </dl>
995
- </div></blockquote>
1119
+ <dd><p>Sets the <code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code> instance used for messages that arrive from AMPS that are deemed to be duplicates
1120
+ of previous messages, according to the local bookmark store.</p>
996
1121
  <table class="docutils field-list" frame="void" rules="none">
997
1122
  <col class="field-name" />
998
1123
  <col class="field-body" />
999
1124
  <tbody valign="top">
1000
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message_handler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke for duplicates
1001
- messages.</td>
1125
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message_handler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke for duplicate messages.</td>
1002
1126
  </tr>
1003
1127
  </tbody>
1004
1128
  </table>
@@ -1007,14 +1131,13 @@ messages.</td>
1007
1131
  <dl class="method">
1008
1132
  <dt id="AMPS.Client.set_error_on_publish_gap">
1009
1133
  <code class="descclassname">Client.</code><code class="descname">set_error_on_publish_gap</code><span class="sig-paren">(</span><em>error_on_publish_gap</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
1010
- <dd><blockquote>
1011
- <div>Called to enable or disable throwing PublishStoreGapException.</div></blockquote>
1134
+ <dd><p>Called to enable or disable throwing <a class="reference internal" href="#AMPS.PublishStoreGapException" title="AMPS.PublishStoreGapException"><code class="xref py py-exc docutils literal"><span class="pre">PublishStoreGapException</span></code></a>.</p>
1012
1135
  <table class="docutils field-list" frame="void" rules="none">
1013
1136
  <col class="field-name" />
1014
1137
  <col class="field-body" />
1015
1138
  <tbody valign="top">
1016
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>error_on_publish_gap</strong> (<em>Boolean</em>) &#8211; If true, PublishStoreGapException can be thrown
1017
- by the client publish store if the client logs onto a server that
1139
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>error_on_publish_gap</strong> (<em>Boolean</em>) &#8211; If true, <a class="reference internal" href="#AMPS.PublishStoreGapException" title="AMPS.PublishStoreGapException"><code class="xref py py-exc docutils literal"><span class="pre">PublishStoreGapException</span></code></a> can be thrown by the
1140
+ client publish store if the client logs onto a server that
1018
1141
  appears to be missing messages no longer held in the store.</td>
1019
1142
  </tr>
1020
1143
  </tbody>
@@ -1024,18 +1147,12 @@ appears to be missing messages no longer held in the store.</td>
1024
1147
  <dl class="method">
1025
1148
  <dt id="AMPS.Client.set_exception_listener">
1026
1149
  <code class="descclassname">Client.</code><code class="descname">set_exception_listener</code><span class="sig-paren">(</span><em>exception_listener</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_exception_listener" title="Permalink to this definition">¶</a></dt>
1027
- <dd><blockquote>
1028
- <div><dl class="docutils">
1029
- <dt>Sets the exception listener instance used for communicating</dt>
1030
- <dd>absorbed exceptions.</dd>
1031
- </dl>
1032
- </div></blockquote>
1150
+ <dd><p>Sets the exception listener instance used for communicating absorbed exceptions.</p>
1033
1151
  <table class="docutils field-list" frame="void" rules="none">
1034
1152
  <col class="field-name" />
1035
1153
  <col class="field-body" />
1036
1154
  <tbody valign="top">
1037
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>exception_listener</strong> (<code class="xref py py-exc docutils literal"><span class="pre">Exception</span></code>) &#8211; The exception listener instance to invoke
1038
- for exceptions.</td>
1155
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>exception_listener</strong> (<code class="xref py py-exc docutils literal"><span class="pre">Exception</span></code>) &#8211; The exception listener instance to invoke for exceptions.</td>
1039
1156
  </tr>
1040
1157
  </tbody>
1041
1158
  </table>
@@ -1045,39 +1162,42 @@ for exceptions.</td>
1045
1162
  <dt id="AMPS.Client.set_failed_write_handler">
1046
1163
  <code class="descclassname">Client.</code><code class="descname">set_failed_write_handler</code><span class="sig-paren">(</span><em>failedWriteHandler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_failed_write_handler" title="Permalink to this definition">¶</a></dt>
1047
1164
  <dd><p>Sets a failed write handler on self.</p>
1048
- <table class="docutils field-list" frame="void" rules="none">
1049
- <col class="field-name" />
1050
- <col class="field-body" />
1051
- <tbody valign="top">
1052
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>failedWriteHandler</strong> &#8211; a callable object to be invoked when AMPS indicates that a published message is not written. This could be because a duplicate message already exists in the transaction log, this client is not entitled to publish to the topic, the message failed to parse, or other similar reasons.
1053
- Parameters to this callable are an AMPS <em>message</em> when the client has a message saved in the publish store, and a string that contains the <em>reason</em> the publish failed.</td>
1054
- </tr>
1055
- </tbody>
1056
- </table>
1057
1165
  <p>For example, you might implement a function like:</p>
1058
1166
  <div class="highlight-default"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">PrintFailedWrites</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="n">reason</span><span class="p">):</span>
1059
1167
  <span class="n">output</span> <span class="o">=</span> <span class="s2">&quot;Uh-oh, something went wrong writing to AMPS. (</span><span class="si">%s</span><span class="s2">) &quot;</span> <span class="o">%</span> <span class="n">reason</span>
1060
1168
  <span class="k">if</span> <span class="p">(</span><span class="n">message</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">):</span>
1061
- <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;Topic: </span><span class="si">%s</span><span class="s2">, Data snippet: </span><span class="si">%s</span><span class="s2">...&quot;</span> <span class="o">%</span> \
1169
+ <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;Topic: </span><span class="si">%s</span><span class="s2">, Data snippet: </span><span class="si">%s</span><span class="s2">...&quot;</span> <span class="o">%</span>
1062
1170
  <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">get_topic</span><span class="p">(),</span> <span class="n">message</span><span class="o">.</span><span class="n">get_data</span><span class="p">()[</span><span class="mi">0</span><span class="p">:</span><span class="mi">20</span><span class="p">])</span>
1063
1171
  <span class="nb">print</span> <span class="n">output</span>
1064
1172
  </pre></div>
1065
1173
  </div>
1174
+ <table class="docutils field-list" frame="void" rules="none">
1175
+ <col class="field-name" />
1176
+ <col class="field-body" />
1177
+ <tbody valign="top">
1178
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>failedWriteHandler</strong> &#8211; A callable object to be invoked when AMPS indicates that a published message is not
1179
+ written. This could be because a duplicate message already exists in the transaction
1180
+ log, this client is not entitled to publish to the topic, the message failed to parse,
1181
+ or other similar reasons.
1182
+ Parameters to this callable are an AMPS <em>message</em> when the client has a message saved
1183
+ in the publish store, and a string that contains the <em>reason</em> the publish failed.</td>
1184
+ </tr>
1185
+ </tbody>
1186
+ </table>
1066
1187
  </dd></dl>
1067
1188
 
1068
1189
  <dl class="method">
1069
1190
  <dt id="AMPS.Client.set_global_command_type_message_handler">
1070
1191
  <code class="descclassname">Client.</code><code class="descname">set_global_command_type_message_handler</code><span class="sig-paren">(</span><em>command</em>, <em>message_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_global_command_type_message_handler" title="Permalink to this definition">¶</a></dt>
1071
- <dd><blockquote>
1072
- <div>Add a message handler to the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> to handle messages from the
1073
- server with the specified command.</div></blockquote>
1192
+ <dd><p>Add a message handler to the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> to handle messages from the
1193
+ server with the specified command.</p>
1074
1194
  <table class="docutils field-list" frame="void" rules="none">
1075
1195
  <col class="field-name" />
1076
1196
  <col class="field-body" />
1077
1197
  <tbody valign="top">
1078
1198
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
1079
1199
  <li><strong>command</strong> (<em>str</em>) &#8211; The command to send to the handler.
1080
- Valid values are &#8216;ack&#8217; and &#8216;heartbeat&#8217;.</li>
1200
+ Valid values are <code class="docutils literal"><span class="pre">ack</span></code> and <code class="docutils literal"><span class="pre">heartbeat</span></code>.</li>
1081
1201
  <li><strong>message_handler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler that will receive messages
1082
1202
  of the command specified.</li>
1083
1203
  </ul>
@@ -1090,34 +1210,29 @@ of the command specified.</li>
1090
1210
  <dl class="method">
1091
1211
  <dt id="AMPS.Client.set_heartbeat">
1092
1212
  <code class="descclassname">Client.</code><code class="descname">set_heartbeat</code><span class="sig-paren">(</span><em>interval_seconds</em>, <em>timeout_seconds=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_heartbeat" title="Permalink to this definition">¶</a></dt>
1093
- <dd><dl class="docutils">
1094
- <dt>Used to enable heartbeating between the client and the AMPS Server. When a</dt>
1095
- <dd><blockquote class="first">
1096
- <div><a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> sends a heartbeat message to an AMPS instance, the AMPS
1213
+ <dd><p>Used to enable heartbeating between the client and the AMPS Server. When a
1214
+ <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> sends a heartbeat message to an AMPS instance, the AMPS
1097
1215
  instance will send back an acknowledgment message. From this point forward the
1098
1216
  <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> and AMPS instance will each monitor that the other is still active.
1099
1217
  AMPS sends heartbeat messages to the client at the specified interval.
1100
1218
  If the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> does not receive a heartbeat message within
1101
- the time interval specified in :<cite>timeout_seconds</cite>, then the <cite>Client</cite>
1219
+ the time interval specified in <code class="docutils literal"><span class="pre">timeout_seconds</span></code>, then the <cite>Client</cite>
1102
1220
  will assume that the connection has ended, close the connection and
1103
1221
  invoke the <code class="xref py py-exc docutils literal"><span class="pre">DisconnectHandler</span></code>. Likewise, if the server
1104
1222
  sends a heartbeat and does not receive a response within the timeout,
1105
1223
  the server will consider the client to be nonresponsive and close
1106
- the connection.</div></blockquote>
1107
- <p class="last">Heartbeats are processed in the client receive thread. If you use
1224
+ the connection.</p>
1225
+ <p>Heartbeats are processed in the client receive thread. If you use
1108
1226
  asynchronous message processing, your message handler must process
1109
1227
  messages within the timeout interval, or risk being disconnected
1110
1228
  by the server.</p>
1111
- </dd>
1112
- </dl>
1113
1229
  <table class="docutils field-list" frame="void" rules="none">
1114
1230
  <col class="field-name" />
1115
1231
  <col class="field-body" />
1116
1232
  <tbody valign="top">
1117
1233
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
1118
- <li><strong>interval_seconds</strong> (<em>int</em>) &#8211; The time between heartbeat messages being sent
1119
- to AMPS.</li>
1120
- <li><strong>timeout</strong> &#8211; The maximum time to wait for AMPS to acknowledge the start of heartbeating (in seconds)</li>
1234
+ <li><strong>interval_seconds</strong> (<em>int</em>) &#8211; The time between heartbeat messages being sent to AMPS.</li>
1235
+ <li><strong>timeout_seconds</strong> (<em>int</em>) &#8211; The maximum time to wait for AMPS to acknowledge the start of heartbeating (in seconds).</li>
1121
1236
  </ul>
1122
1237
  </td>
1123
1238
  </tr>
@@ -1128,8 +1243,7 @@ to AMPS.</li>
1128
1243
  <dl class="method">
1129
1244
  <dt id="AMPS.Client.set_last_chance_message_handler">
1130
1245
  <code class="descclassname">Client.</code><code class="descname">set_last_chance_message_handler</code><span class="sig-paren">(</span><em>message_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_last_chance_message_handler" title="Permalink to this definition">¶</a></dt>
1131
- <dd><blockquote>
1132
- <div>Sets the <code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code> instance called when no other incoming message handler matches.</div></blockquote>
1246
+ <dd><p>Sets the <code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code> instance called when no other incoming message handler matches.</p>
1133
1247
  <table class="docutils field-list" frame="void" rules="none">
1134
1248
  <col class="field-name" />
1135
1249
  <col class="field-body" />
@@ -1142,13 +1256,13 @@ to AMPS.</li>
1142
1256
 
1143
1257
  <dl class="method">
1144
1258
  <dt id="AMPS.Client.set_logon_correlation_data">
1145
- <code class="descclassname">Client.</code><code class="descname">set_logon_correlation_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_logon_correlation_data" title="Permalink to this definition">¶</a></dt>
1259
+ <code class="descclassname">Client.</code><code class="descname">set_logon_correlation_data</code><span class="sig-paren">(</span><em>logon_correlation_data</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_logon_correlation_data" title="Permalink to this definition">¶</a></dt>
1146
1260
  <dd><p>Sets the data used to correlate the logon of this Client in the server.</p>
1147
1261
  <table class="docutils field-list" frame="void" rules="none">
1148
1262
  <col class="field-name" />
1149
1263
  <col class="field-body" />
1150
1264
  <tbody valign="top">
1151
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logonCorrelationData</strong> &#8211; The base64 data string to send with the logon.</td>
1265
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logon_correlation_data</strong> &#8211; The base64 data string to send with the logon.</td>
1152
1266
  </tr>
1153
1267
  </tbody>
1154
1268
  </table>
@@ -1157,18 +1271,26 @@ to AMPS.</li>
1157
1271
  <dl class="method">
1158
1272
  <dt id="AMPS.Client.set_name">
1159
1273
  <code class="descclassname">Client.</code><code class="descname">set_name</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_name" title="Permalink to this definition">¶</a></dt>
1160
- <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_name" title="AMPS.Client.set_name"><code class="xref py py-meth docutils literal"><span class="pre">set_name()</span></code></a>.</p>
1274
+ <dd><p>Sets the <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> name.</p>
1275
+ <table class="docutils field-list" frame="void" rules="none">
1276
+ <col class="field-name" />
1277
+ <col class="field-body" />
1278
+ <tbody valign="top">
1279
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> &#8211; The <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a> name.</td>
1280
+ </tr>
1281
+ </tbody>
1282
+ </table>
1161
1283
  </dd></dl>
1162
1284
 
1163
1285
  <dl class="method">
1164
1286
  <dt id="AMPS.Client.set_publish_store">
1165
- <code class="descclassname">Client.</code><code class="descname">set_publish_store</code><span class="sig-paren">(</span><em>publishStore</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_publish_store" title="Permalink to this definition">¶</a></dt>
1287
+ <code class="descclassname">Client.</code><code class="descname">set_publish_store</code><span class="sig-paren">(</span><em>publish_store</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_publish_store" title="Permalink to this definition">¶</a></dt>
1166
1288
  <dd><p>Sets a publish store on self.</p>
1167
1289
  <table class="docutils field-list" frame="void" rules="none">
1168
1290
  <col class="field-name" />
1169
1291
  <col class="field-body" />
1170
1292
  <tbody valign="top">
1171
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>publishStore</strong> &#8211; an <a class="reference internal" href="#AMPS.PublishStore" title="AMPS.PublishStore"><code class="xref py py-class docutils literal"><span class="pre">PublishStore</span></code></a> or <a class="reference internal" href="#AMPS.MemoryPublishStore" title="AMPS.MemoryPublishStore"><code class="xref py py-class docutils literal"><span class="pre">MemoryPublishStore</span></code></a> instance.</td>
1293
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>publish_store</strong> &#8211; a <a class="reference internal" href="#AMPS.PublishStore" title="AMPS.PublishStore"><code class="xref py py-class docutils literal"><span class="pre">PublishStore</span></code></a> or <a class="reference internal" href="#AMPS.MemoryPublishStore" title="AMPS.MemoryPublishStore"><code class="xref py py-class docutils literal"><span class="pre">MemoryPublishStore</span></code></a> instance.</td>
1172
1294
  </tr>
1173
1295
  </tbody>
1174
1296
  </table>
@@ -1177,18 +1299,24 @@ to AMPS.</li>
1177
1299
  <dl class="method">
1178
1300
  <dt id="AMPS.Client.set_retry_on_disconnect">
1179
1301
  <code class="descclassname">Client.</code><code class="descname">set_retry_on_disconnect</code><span class="sig-paren">(</span><em>enabled</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_retry_on_disconnect" title="Permalink to this definition">¶</a></dt>
1180
- <dd><blockquote>
1181
- <div><dl class="docutils">
1182
- <dt>Enables or disables automatic retry of a command to AMPS after a</dt>
1183
- <dd>reconnect. This behavior is enabled by default.
1184
- NOTE: Clients using a publish store will have all publish
1302
+ <dd><p>Enables or disables automatic retry of a command to AMPS after a reconnect. This behavior is enabled by default.</p>
1303
+ <blockquote>
1304
+ <div><div class="admonition note">
1305
+ <p class="first admonition-title">Note</p>
1306
+ <p class="last">Clients using a publish store will have all publish
1185
1307
  messages sent, regardless of this setting. Also, Clients with
1186
1308
  a subscription manager, including all HAClients, will have all
1187
- subscribe calls placed.</dd>
1188
- </dl>
1309
+ subscribe calls placed.</p>
1310
+ </div>
1189
1311
  </div></blockquote>
1190
- <p>:param enabled False to disable automatic retry of commands to AMPS.
1191
- :type enabled: Boolean.</p>
1312
+ <table class="docutils field-list" frame="void" rules="none">
1313
+ <col class="field-name" />
1314
+ <col class="field-body" />
1315
+ <tbody valign="top">
1316
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>enabled</strong> (<em>Boolean</em>) &#8211; False to disable automatic retry of commands to AMPS.</td>
1317
+ </tr>
1318
+ </tbody>
1319
+ </table>
1192
1320
  </dd></dl>
1193
1321
 
1194
1322
  <dl class="method">
@@ -1213,6 +1341,10 @@ subscribe calls placed.</dd>
1213
1341
  <col class="field-name" />
1214
1342
  <col class="field-body" />
1215
1343
  <tbody valign="top">
1344
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>transport_filter_callable</strong> (<em>A python function</em><em> or </em><em>other callable that takes two parameters: data and direction.</em>) &#8211; The function or callable to be called. This function is passed a string (&#8216;data&#8217;)
1345
+ containing the raw bytes sent or received. The &#8216;direction&#8217; parameter is False if
1346
+ the data is being sent to the server, or True if data is received from the server.</td>
1347
+ </tr>
1216
1348
  </tbody>
1217
1349
  </table>
1218
1350
  </dd></dl>
@@ -1220,62 +1352,71 @@ subscribe calls placed.</dd>
1220
1352
  <dl class="method">
1221
1353
  <dt id="AMPS.Client.set_unhandled_message_handler">
1222
1354
  <code class="descclassname">Client.</code><code class="descname">set_unhandled_message_handler</code><span class="sig-paren">(</span><em>message_handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.set_unhandled_message_handler" title="Permalink to this definition">¶</a></dt>
1223
- <dd><dl class="docutils">
1224
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a>.</dt>
1225
- <dd><div class="first last deprecated">
1355
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-meth docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a>.</p>
1356
+ <div class="deprecated">
1226
1357
  <p><span class="versionmodified">Deprecated since version 4.0.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.set_last_chance_message_handler" title="AMPS.Client.set_last_chance_message_handler"><code class="xref py py-func docutils literal"><span class="pre">set_last_chance_message_handler()</span></code></a> instead.</p>
1227
1358
  </div>
1228
- </dd>
1229
- </dl>
1230
1359
  </dd></dl>
1231
1360
 
1232
1361
  <dl class="method">
1233
1362
  <dt id="AMPS.Client.sow">
1234
- <code class="descclassname">Client.</code><code class="descname">sow</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>batch_size=10</em>, <em>timeout=0</em>, <em>top_n=None</em>, <em>order_by=None</em>, <em>bookmark=None</em>, <em>options=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow" title="Permalink to this definition">¶</a></dt>
1235
- <dd><p>Executes a SOW query. There are two ways to use this method.
1236
- First, you can provide a topic, filter, and options for the subscription.
1237
- In this case, the method returns a message stream that you can iterate over.
1238
- For example:</p>
1239
- <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">c</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="s2">&quot;test_client&quot;</span><span class="p">)</span>
1363
+ <code class="descclassname">Client.</code><code class="descname">sow</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow" title="Permalink to this definition">¶</a></dt>
1364
+ <dd><p><strong>Signatures</strong>:</p>
1365
+ <ul>
1366
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=10,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">bookmark=None,</span> <span class="pre">options=0)</span></code></p>
1367
+ </li>
1368
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow(topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=10,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">bookmark=None,</span> <span class="pre">options=0)</span></code></p>
1369
+ <p>Executes a SOW query.</p>
1370
+ <p>There are two ways to use this method:</p>
1371
+ <ol class="arabic simple">
1372
+ <li>When a message handler is provided, this method submits the SOW query on a background thread and calls the
1373
+ message handler with individual messages, including the <code class="docutils literal"><span class="pre">group_begin</span></code> and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate
1374
+ the beginning and end of the SOW results.</li>
1375
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
1376
+ messages received including the <code class="docutils literal"><span class="pre">group_begin</span></code> and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate the beginning and end of
1377
+ the SOW results.</li>
1378
+ </ol>
1379
+ </li>
1380
+ </ul>
1381
+ <p>For example:</p>
1382
+ <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">client</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="s2">&quot;test_client&quot;</span><span class="p">)</span>
1240
1383
 
1241
1384
  <span class="k">try</span><span class="p">:</span>
1242
- <span class="n">c</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s2">&quot;tcp://127.0.0.1:9004/fix&quot;</span><span class="p">)</span>
1243
- <span class="n">cid</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">logon</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
1244
- <span class="k">for</span> <span class="n">aMessage</span> <span class="ow">in</span> <span class="n">c</span><span class="o">.</span><span class="n">sow</span><span class="p">(</span><span class="s2">&quot;MySowTopic&quot;</span><span class="p">):</span>
1245
- <span class="nb">print</span> <span class="n">aMessage</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
1385
+ <span class="n">client</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s2">&quot;tcp://127.0.0.1:9004/amps/fix&quot;</span><span class="p">)</span>
1386
+ <span class="n">client</span><span class="o">.</span><span class="n">logon</span><span class="p">()</span>
1387
+ <span class="k">for</span> <span class="n">message</span> <span class="ow">in</span> <span class="n">client</span><span class="o">.</span><span class="n">sow</span><span class="p">(</span><span class="s2">&quot;MySowTopic&quot;</span><span class="p">):</span>
1388
+ <span class="nb">print</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">get_data</span><span class="p">())</span>
1246
1389
  <span class="k">finally</span><span class="p">:</span>
1247
- <span class="n">c</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
1390
+ <span class="n">client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
1248
1391
  </pre></div>
1249
1392
  </div>
1250
- <p>Second, you can provide a message handler. In this case, the method creates
1251
- a background thread and calls the message handler with each message
1252
- received from AMPS, including the <cite>group_begin</cite> and <cite>group_end</cite> messages
1253
- that indicate the beginning and end of the SOW query.</p>
1254
1393
  <table class="docutils field-list" frame="void" rules="none">
1255
1394
  <col class="field-name" />
1256
1395
  <col class="field-body" />
1257
1396
  <tbody valign="top">
1258
1397
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1259
1398
  <li><strong>on_message</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with matching
1260
- messages. If this parameter is not present, AMPS creates a
1261
- :class: <cite>MessageStream</cite> and returns that message stream
1262
- from the call to sow.</li>
1399
+ messages. If this parameter is not present, AMPS creates a
1400
+ <a class="reference internal" href="#AMPS.MessageStream" title="AMPS.MessageStream"><code class="xref py py-class docutils literal"><span class="pre">MessageStream</span></code></a> and returns that message stream
1401
+ from the call to sow (specified only in the case where async
1402
+ processing is used).</li>
1263
1403
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW query against.</li>
1264
1404
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
1265
1405
  <li><strong>batch_size</strong> (<em>int</em>) &#8211; The batching parameter to use for the results.</li>
1266
- <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1406
+ <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1267
1407
  consume a processed ack for this command (in milliseconds).
1268
1408
  <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1269
- <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the sow.</li>
1409
+ <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the SOW.</li>
1270
1410
  <li><strong>order_by</strong> (<em>str</em>) &#8211; To have the records ordered by the server.</li>
1271
- <li><strong>bookmark</strong> (<em>int</em>) &#8211; The bookmark for historical query of the sow.</li>
1411
+ <li><strong>bookmark</strong> (<em>int</em>) &#8211; The bookmark for historical query of the SOW.</li>
1272
1412
  <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
1273
1413
  processing options.</li>
1274
1414
  </ul>
1275
1415
  </td>
1276
1416
  </tr>
1277
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">If a message handler is provided, returns the command identifier
1278
- assigned to this command. If no message handler is present, returns a MessageStream containing the results of the command.</p>
1417
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
1418
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the
1419
+ results of the command.</p>
1279
1420
  </td>
1280
1421
  </tr>
1281
1422
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.BadFilterException" title="AMPS.BadFilterException"><code class="xref py py-exc docutils literal"><span class="pre">BadFilterException</span></code></a>, <a class="reference internal" href="#AMPS.BadRegexTopicException" title="AMPS.BadRegexTopicException"><code class="xref py py-exc docutils literal"><span class="pre">BadRegexTopicException</span></code></a>,
@@ -1289,68 +1430,77 @@ assigned to this command. If no message handler is present, returns a
1289
1430
  <dl class="method">
1290
1431
  <dt id="AMPS.Client.sowAndDeltaSubscribe">
1291
1432
  <code class="descclassname">Client.</code><code class="descname">sowAndDeltaSubscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>batch_size=1</em>, <em>oof_enabled=False</em>, <em>send_empties=False</em>, <em>options=0</em>, <em>timeout=0</em>, <em>top_n=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sowAndDeltaSubscribe" title="Permalink to this definition">¶</a></dt>
1292
- <dd><dl class="docutils">
1293
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_and_delta_subscribe" title="AMPS.Client.sow_and_delta_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">sow_and_delta_subscribe()</span></code></a>.</dt>
1294
- <dd><div class="first last deprecated">
1433
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_and_delta_subscribe" title="AMPS.Client.sow_and_delta_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">sow_and_delta_subscribe()</span></code></a>.</p>
1434
+ <div class="deprecated">
1295
1435
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.sow_and_delta_subscribe" title="AMPS.Client.sow_and_delta_subscribe"><code class="xref py py-func docutils literal"><span class="pre">sow_and_delta_subscribe()</span></code></a> instead.</p>
1296
1436
  </div>
1297
- </dd>
1298
- </dl>
1299
1437
  </dd></dl>
1300
1438
 
1301
1439
  <dl class="method">
1302
1440
  <dt id="AMPS.Client.sowAndSubscribe">
1303
1441
  <code class="descclassname">Client.</code><code class="descname">sowAndSubscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter</em>, <em>batch_size=1</em>, <em>oof_enabled=False</em>, <em>options=0</em>, <em>timeout=0</em>, <em>top_n=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sowAndSubscribe" title="Permalink to this definition">¶</a></dt>
1304
- <dd><dl class="docutils">
1305
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_and_subscribe" title="AMPS.Client.sow_and_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">sow_and_subscribe()</span></code></a>.</dt>
1306
- <dd><div class="first last deprecated">
1442
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_and_subscribe" title="AMPS.Client.sow_and_subscribe"><code class="xref py py-meth docutils literal"><span class="pre">sow_and_subscribe()</span></code></a>.</p>
1443
+ <div class="deprecated">
1307
1444
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.sow_and_subscribe" title="AMPS.Client.sow_and_subscribe"><code class="xref py py-func docutils literal"><span class="pre">sow_and_subscribe()</span></code></a> instead.</p>
1308
1445
  </div>
1309
- </dd>
1310
- </dl>
1311
1446
  </dd></dl>
1312
1447
 
1313
1448
  <dl class="method">
1314
1449
  <dt id="AMPS.Client.sowDelete">
1315
- <code class="descclassname">Client.</code><code class="descname">sowDelete</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>options=0</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sowDelete" title="Permalink to this definition">¶</a></dt>
1316
- <dd><dl class="docutils">
1317
- <dt>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_delete" title="AMPS.Client.sow_delete"><code class="xref py py-meth docutils literal"><span class="pre">sow_delete()</span></code></a>.</dt>
1318
- <dd><div class="first last deprecated">
1450
+ <code class="descclassname">Client.</code><code class="descname">sowDelete</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sowDelete" title="Permalink to this definition">¶</a></dt>
1451
+ <dd><p>A legacy method name for <a class="reference internal" href="#AMPS.Client.sow_delete" title="AMPS.Client.sow_delete"><code class="xref py py-meth docutils literal"><span class="pre">sow_delete()</span></code></a>.</p>
1452
+ <div class="deprecated">
1319
1453
  <p><span class="versionmodified">Deprecated since version 3.2.0.0: </span>Use <a class="reference internal" href="#AMPS.Client.sow_delete" title="AMPS.Client.sow_delete"><code class="xref py py-func docutils literal"><span class="pre">sow_delete()</span></code></a> instead.</p>
1320
1454
  </div>
1321
- </dd>
1322
- </dl>
1323
1455
  </dd></dl>
1324
1456
 
1325
1457
  <dl class="method">
1326
1458
  <dt id="AMPS.Client.sow_and_delta_subscribe">
1327
- <code class="descclassname">Client.</code><code class="descname">sow_and_delta_subscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>batch_size=1</em>, <em>oof_enabled=False</em>, <em>send_empties=False</em>, <em>options=0</em>, <em>timeout=0</em>, <em>top_n=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_and_delta_subscribe" title="Permalink to this definition">¶</a></dt>
1328
- <dd><p>Executes a SOW query and places a delta subscription.</p>
1459
+ <code class="descclassname">Client.</code><code class="descname">sow_and_delta_subscribe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_and_delta_subscribe" title="Permalink to this definition">¶</a></dt>
1460
+ <dd><p><strong>Signatures</strong>:</p>
1461
+ <ul>
1462
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_and_delta_subscribe(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=1,</span> <span class="pre">oof_enabled=False,</span> <span class="pre">send_empties=False,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">options=None)</span></code></p>
1463
+ </li>
1464
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_and_delta_subscribe(topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=1,</span> <span class="pre">oof_enabled=False,</span> <span class="pre">send_empties=False,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">options=None)</span></code></p>
1465
+ <p>Executes a SOW query and places a delta subscription.</p>
1466
+ <p>There are two ways to use this method:</p>
1467
+ <ol class="arabic simple">
1468
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">sow_and_delta_subscribe</span></code> command on a background
1469
+ thread and calls the message handler with individual messages received from the SOW query, including the
1470
+ <code class="docutils literal"><span class="pre">group_begin</span></code> and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate the beginning and end of the SOW results and then with
1471
+ messages received that match the subscription and that contain the updated fields.</li>
1472
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
1473
+ messages received from the SOW query, including the <code class="docutils literal"><span class="pre">group_begin</span></code> and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate the
1474
+ beginning and end of the SOW results and then processes messages received that match the subscription and that
1475
+ contain the updated fields.</li>
1476
+ </ol>
1477
+ </li>
1478
+ </ul>
1329
1479
  <table class="docutils field-list" frame="void" rules="none">
1330
1480
  <col class="field-name" />
1331
1481
  <col class="field-body" />
1332
1482
  <tbody valign="top">
1333
1483
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1334
1484
  <li><strong>on_message</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with matching
1335
- messages.</li>
1336
- <li><strong>topic</strong> (<em>str</em>) &#8211; The <cite>Topic</cite> to execute the SOW query against.</li>
1485
+ messages (specified only in the case where async processing is used).</li>
1486
+ <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW query against.</li>
1337
1487
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
1338
1488
  <li><strong>batch_size</strong> (<em>int</em>) &#8211; The batch sizing parameter to use for the results.</li>
1339
- <li><strong>oof_enabled</strong> (<em>boolean</em>) &#8211; Specifies whether or not Out-of-Focus processing is
1340
- enabled.</li>
1489
+ <li><strong>oof_enabled</strong> (<em>boolean</em>) &#8211; Specifies whether or not Out-of-Focus processing is enabled.</li>
1341
1490
  <li><strong>send_empties</strong> (<em>boolean</em>) &#8211; Specifies whether or not unchanged records are
1342
1491
  received on the delta subscription.</li>
1343
- <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1492
+ <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1344
1493
  consume the processed ack for this command (in milliseconds).
1345
1494
  <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1346
- <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the sow.</li>
1495
+ <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the SOW.</li>
1347
1496
  <li><strong>order_by</strong> (<em>str</em>) &#8211; To have the records ordered by the server.</li>
1348
- <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
1349
- processing options.</li>
1497
+ <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional processing options.</li>
1350
1498
  </ul>
1351
1499
  </td>
1352
1500
  </tr>
1353
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command.</p>
1501
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
1502
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the results
1503
+ of the command.</p>
1354
1504
  </td>
1355
1505
  </tr>
1356
1506
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
@@ -1364,32 +1514,49 @@ processing options.</li>
1364
1514
 
1365
1515
  <dl class="method">
1366
1516
  <dt id="AMPS.Client.sow_and_subscribe">
1367
- <code class="descclassname">Client.</code><code class="descname">sow_and_subscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter</em>, <em>batch_size=1</em>, <em>oof_enabled=False</em>, <em>timeout=0</em>, <em>top_n=None</em>, <em>order_by=</em>, <em>bookmark=</em>, <em>options=</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_and_subscribe" title="Permalink to this definition">¶</a></dt>
1368
- <dd><p>Executes a SOW query and places a subscription.</p>
1517
+ <code class="descclassname">Client.</code><code class="descname">sow_and_subscribe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_and_subscribe" title="Permalink to this definition">¶</a></dt>
1518
+ <dd><p><strong>Signatures</strong>:</p>
1519
+ <ul>
1520
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_and_subscribe(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=1,</span> <span class="pre">oof_enabled=False,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">bookmark=None,</span> <span class="pre">options=None)</span></code></p>
1521
+ </li>
1522
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_and_subscribe(topic,</span> <span class="pre">filter=None,</span> <span class="pre">batch_size=1,</span> <span class="pre">oof_enabled=False,</span> <span class="pre">timeout=0,</span> <span class="pre">top_n=None,</span> <span class="pre">order_by=None,</span> <span class="pre">bookmark=None,</span> <span class="pre">options=None)</span></code></p>
1523
+ <p>Executes a SOW query and places a subscription.</p>
1524
+ <p>There are two ways to use this method:</p>
1525
+ <ol class="arabic simple">
1526
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">sow_and_subscribe</span></code> command on a background thread
1527
+ and calls the message handler with individual messages received from the SOW query, including the <code class="docutils literal"><span class="pre">group_begin</span></code>
1528
+ and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate the beginning and end of the SOW results and then with messages received
1529
+ that match the subscription.</li>
1530
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
1531
+ messages received from the SOW query, including the <code class="docutils literal"><span class="pre">group_begin</span></code> and <code class="docutils literal"><span class="pre">group_end</span></code> messages, that indicate the
1532
+ beginning and end of the SOW results and then processes messages received that match the subscription.</li>
1533
+ </ol>
1534
+ </li>
1535
+ </ul>
1369
1536
  <table class="docutils field-list" frame="void" rules="none">
1370
1537
  <col class="field-name" />
1371
1538
  <col class="field-body" />
1372
1539
  <tbody valign="top">
1373
1540
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1374
1541
  <li><strong>on_message</strong> (<code class="xref py py-class docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with matching
1375
- messages.</li>
1542
+ messages (specified only in the case where async processing is used).</li>
1376
1543
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW query against.</li>
1377
1544
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
1378
1545
  <li><strong>batch_size</strong> (<em>int</em>) &#8211; The batching parameter to use for the results.</li>
1379
- <li><strong>oof_enabled</strong> (<em>boolean</em>) &#8211; Specifies whether or not Out-of-Focus processing is
1380
- enabled.</li>
1546
+ <li><strong>oof_enabled</strong> (<em>boolean</em>) &#8211; Specifies whether or not Out-of-Focus processing is enabled.</li>
1381
1547
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1382
- consume the processed ack for this command
1383
- (in milliseconds). <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1384
- <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the sow.</li>
1548
+ consume the processed ack for this command (in milliseconds).
1549
+ <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1550
+ <li><strong>top_n</strong> (<em>int</em>) &#8211; The maximum number of records to return from the SOW.</li>
1385
1551
  <li><strong>order_by</strong> (<em>str</em>) &#8211; To have the records ordered by the server.</li>
1386
- <li><strong>bookmark</strong> (<em>str</em>) &#8211; The bookmark for historical query of the sow.</li>
1387
- <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
1388
- processing options.</li>
1552
+ <li><strong>bookmark</strong> (<em>str</em>) &#8211; The bookmark for historical query of the SOW.</li>
1553
+ <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional processing options.</li>
1389
1554
  </ul>
1390
1555
  </td>
1391
1556
  </tr>
1392
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command.</p>
1557
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
1558
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the results
1559
+ of the command.</p>
1393
1560
  </td>
1394
1561
  </tr>
1395
1562
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
@@ -1403,18 +1570,26 @@ processing options.</li>
1403
1570
 
1404
1571
  <dl class="method">
1405
1572
  <dt id="AMPS.Client.sow_delete">
1406
- <code class="descclassname">Client.</code><code class="descname">sow_delete</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>options=0</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete" title="Permalink to this definition">¶</a></dt>
1407
- <dd><p>Executes a SOW delete with a filter.</p>
1408
- <p>There are two ways to use this method. When no message handler is provided,
1409
- the method returns a <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> that will receive the results
1410
- of the delete command.</p>
1411
- <p>When a message handler is provided, this method submits the SOW delete on a
1412
- background thread and calls the message handler with the results of the
1413
- delete.</p>
1573
+ <code class="descclassname">Client.</code><code class="descname">sow_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete" title="Permalink to this definition">¶</a></dt>
1574
+ <dd><p><strong>Signatures</strong>:</p>
1575
+ <ul>
1576
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">timeout=0)</span></code></p>
1577
+ </li>
1578
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete(topic,</span> <span class="pre">filter=None,</span> <span class="pre">timeout=0)</span></code></p>
1579
+ <p>Executes a SOW delete with a filter.</p>
1580
+ <p>There are two ways to use this method:</p>
1581
+ <ol class="arabic simple">
1582
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">sow_delete</span></code> command on a background thread and
1583
+ calls the message handler with the results of the delete.</li>
1584
+ <li>When no message handler is provided, this method returns an acknowledgment message with the result of the
1585
+ delete command.</li>
1586
+ </ol>
1587
+ </li>
1588
+ </ul>
1414
1589
  <p>For example, to delete all messages that match a filter:</p>
1415
1590
  <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">...</span>
1416
1591
  <span class="n">ackMessage</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">sow_delete</span><span class="p">(</span><span class="s2">&quot;sow_topic&quot;</span><span class="p">,</span><span class="s2">&quot;/status = &#39;obsolete&#39;&quot;</span><span class="p">)</span>
1417
- <span class="nb">print</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ackMessage</span><span class="o">.</span><span class="n">get_ack_type</span><span class="p">(),</span> <span class="n">ackMessage</span><span class="o">.</span><span class="n">get_status</span><span class="p">())</span>
1592
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ackMessage</span><span class="o">.</span><span class="n">get_ack_type</span><span class="p">(),</span> <span class="n">ackMessage</span><span class="o">.</span><span class="n">get_status</span><span class="p">()))</span>
1418
1593
  <span class="o">...</span>
1419
1594
  </pre></div>
1420
1595
  </div>
@@ -1423,19 +1598,18 @@ delete.</p>
1423
1598
  <col class="field-body" />
1424
1599
  <tbody valign="top">
1425
1600
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1426
- <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and
1427
- <cite>completed</cite> acknowledgments</li>
1601
+ <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and <cite>completed</cite> acknowledgments
1602
+ (specified only in the case where async processing is used).</li>
1428
1603
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW delete against.</li>
1429
- <li><strong>filter</strong> (<em>str</em>) &#8211; The filter. To delete all records, set a filter that is always true (&#8216;1=1&#8217;)</li>
1430
- <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
1431
- processing options.</li>
1604
+ <li><strong>filter</strong> (<em>str</em>) &#8211; The filter. To delete all records, set a filter that is always true (&#8216;1=1&#8217;).</li>
1432
1605
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1433
1606
  consume the processed ack for this command (in milliseconds).
1434
1607
  <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1435
1608
  </ul>
1436
1609
  </td>
1437
1610
  </tr>
1438
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command.</p>
1611
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
1612
+ If no message handler was provided, returns an acknowledgment.</p>
1439
1613
  </td>
1440
1614
  </tr>
1441
1615
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.BadFilterException" title="AMPS.BadFilterException"><code class="xref py py-exc docutils literal"><span class="pre">BadFilterException</span></code></a>, <a class="reference internal" href="#AMPS.BadRegexTopicException" title="AMPS.BadRegexTopicException"><code class="xref py py-exc docutils literal"><span class="pre">BadRegexTopicException</span></code></a>,
@@ -1448,31 +1622,36 @@ consume the processed ack for this command (in milliseconds).
1448
1622
 
1449
1623
  <dl class="method">
1450
1624
  <dt id="AMPS.Client.sow_delete_by_data">
1451
- <code class="descclassname">Client.</code><code class="descname">sow_delete_by_data</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>data</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete_by_data" title="Permalink to this definition">¶</a></dt>
1452
- <dd><p>Delete a message from a SOW, using data supplied to locate a SOW entry with matching keys.</p>
1453
- <p>There are two ways to use this method. When no message handler is provided,
1454
- the method returns a <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> that will receive the results
1455
- of the delete command.</p>
1456
- <p>When a message handler is provided, this method submits the SOW delete on a
1457
- background thread and calls the message handler with the results of the
1458
- delete.</p>
1459
- <p>For example, to efficiently delete a message that your program has
1460
- received from AMPS:</p>
1625
+ <code class="descclassname">Client.</code><code class="descname">sow_delete_by_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete_by_data" title="Permalink to this definition">¶</a></dt>
1626
+ <dd><p><strong>Signatures</strong>:</p>
1627
+ <ul>
1628
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete_by_data(on_message,</span> <span class="pre">topic,</span> <span class="pre">data,</span> <span class="pre">timeout=0)</span></code></p>
1629
+ </li>
1630
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete_by_data(topic,</span> <span class="pre">data,</span> <span class="pre">timeout=0)</span></code></p>
1631
+ <p>Executes a SOW delete using the provided message data to determine the SOW key of the record to delete.</p>
1632
+ <p>There are two ways to use this method:</p>
1633
+ <ol class="arabic simple">
1634
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">sow_delete_by_data</span></code> on a background thread,
1635
+ and calls the message handler with the results of the delete.</li>
1636
+ <li>When no message handler is provided, this method provides an acknowledgment message with the result of
1637
+ the delete command.</li>
1638
+ </ol>
1639
+ </li>
1640
+ </ul>
1641
+ <p>For example, to efficiently delete a message that your program has received from AMPS:</p>
1461
1642
  <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">...</span>
1462
1643
  <span class="n">topic</span><span class="o">=</span> <span class="n">aMessage</span><span class="o">.</span><span class="n">get_topic</span><span class="p">()</span>
1463
1644
  <span class="n">data</span> <span class="o">=</span> <span class="n">aMessage</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
1464
1645
  <span class="n">ackMessage</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">sow_delete_by_data</span><span class="p">(</span><span class="n">topic</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
1465
- <span class="nb">print</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ackMessage</span><span class="o">.</span><span class="n">get_ack_type</span><span class="p">(),</span> <span class="n">ackMessage</span><span class="o">.</span><span class="n">get_status</span><span class="p">())</span>
1646
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ackMessage</span><span class="o">.</span><span class="n">get_ack_type</span><span class="p">(),</span> <span class="n">ackMessage</span><span class="o">.</span><span class="n">get_status</span><span class="p">()))</span>
1466
1647
  <span class="o">...</span>
1467
1648
  </pre></div>
1468
1649
  </div>
1469
- <p>In addition to deleting a message from AMPS, this method allows deletion of
1470
- a message whose keys match one that is already stored, for example:</p>
1471
- <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">...</span>
1472
- <span class="n">data</span> <span class="o">=</span> <span class="n">orders</span><span class="p">[</span><span class="n">orderId</span><span class="p">]</span>
1650
+ <p>In addition to deleting a message from AMPS, this method allows deletion of a message whose keys match one
1651
+ that is already stored, for example:</p>
1652
+ <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">data</span> <span class="o">=</span> <span class="n">orders</span><span class="p">[</span><span class="n">orderId</span><span class="p">]</span>
1473
1653
  <span class="n">ackMessage</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">sow_delete_by_data</span><span class="p">(</span><span class="s1">&#39;orders&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
1474
1654
  <span class="k">del</span> <span class="n">orders</span><span class="p">[</span><span class="n">orderId</span><span class="p">]</span>
1475
- <span class="o">...</span>
1476
1655
  </pre></div>
1477
1656
  </div>
1478
1657
  <table class="docutils field-list" frame="void" rules="none">
@@ -1480,8 +1659,8 @@ a message whose keys match one that is already stored, for example:</p>
1480
1659
  <col class="field-body" />
1481
1660
  <tbody valign="top">
1482
1661
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1483
- <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and
1484
- <cite>completed</cite> acknowledgments</li>
1662
+ <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and <cite>completed</cite> acknowledgments
1663
+ (specified only in the case where async processing is used).</li>
1485
1664
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW delete against.</li>
1486
1665
  <li><strong>data</strong> (<em>str</em>) &#8211; A message whose keys match the message to be deleted in the server&#8217;s SOW.</li>
1487
1666
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
@@ -1490,7 +1669,8 @@ consume the processed ack for this command (in milliseconds).
1490
1669
  </ul>
1491
1670
  </td>
1492
1671
  </tr>
1493
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The command identifier assigned to this command.</p>
1672
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The command identifier assigned to this command if a message handler was provided.
1673
+ If no message handler was provided, returns an acknowledgment.</p>
1494
1674
  </td>
1495
1675
  </tr>
1496
1676
  </tbody>
@@ -1499,30 +1679,39 @@ consume the processed ack for this command (in milliseconds).
1499
1679
 
1500
1680
  <dl class="method">
1501
1681
  <dt id="AMPS.Client.sow_delete_by_keys">
1502
- <code class="descclassname">Client.</code><code class="descname">sow_delete_by_keys</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>keys</em>, <em>timeout=0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete_by_keys" title="Permalink to this definition">¶</a></dt>
1503
- <dd><p>Executes a SOW delete with sow keys.</p>
1504
- <p>There are two ways to use this method. When no message handler is provided,
1505
- the method returns a <a class="reference internal" href="#AMPS.Message" title="AMPS.Message"><code class="xref py py-class docutils literal"><span class="pre">Message</span></code></a> that will receive the results
1506
- of the delete command.</p>
1507
- <p>When a message handler is provided, this method submits the SOW delete on a
1508
- background thread and calls the message handler with the results of the
1509
- delete.</p>
1682
+ <code class="descclassname">Client.</code><code class="descname">sow_delete_by_keys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.sow_delete_by_keys" title="Permalink to this definition">¶</a></dt>
1683
+ <dd><p><strong>Signatures</strong>:</p>
1684
+ <ul>
1685
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete_by_keys(on_message,</span> <span class="pre">topic,</span> <span class="pre">keys,</span> <span class="pre">timeout=0)</span></code></p>
1686
+ </li>
1687
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.sow_delete_by_keys(topic,</span> <span class="pre">keys,</span> <span class="pre">timeout=0)</span></code></p>
1688
+ <p>Executes a SOW delete using the provided SOW key(s) to determine the record(s) to delete.</p>
1689
+ <p>There are two ways to use this method:</p>
1690
+ <ol class="arabic simple">
1691
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">sow_delete_by_keys</span></code> command on a background
1692
+ thread and calls the message handler with the results of the delete.</li>
1693
+ <li>When no message handler is provided, this method provides an acknowledgment message with the result of
1694
+ the delete command.</li>
1695
+ </ol>
1696
+ </li>
1697
+ </ul>
1510
1698
  <table class="docutils field-list" frame="void" rules="none">
1511
1699
  <col class="field-name" />
1512
1700
  <col class="field-body" />
1513
1701
  <tbody valign="top">
1514
1702
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1515
- <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and
1516
- <cite>completed</cite> acknowledgments</li>
1703
+ <li><strong>on_message</strong> (<code class="xref py py-exc docutils literal"><span class="pre">MessageHandler</span></code>) &#8211; The message handler to invoke with <cite>stats</cite> and <cite>completed</cite> acknowledgments
1704
+ (specified only in the case where async processing is used).</li>
1517
1705
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to execute the SOW delete against.</li>
1518
- <li><strong>keys</strong> (<em>str</em>) &#8211; A comma separated list of SOW keys to be deleted</li>
1706
+ <li><strong>keys</strong> (<em>str</em>) &#8211; A comma separated list of SOW keys to be deleted.</li>
1519
1707
  <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1520
1708
  consume the processed ack for this command (in millseconds).
1521
1709
  <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1522
1710
  </ul>
1523
1711
  </td>
1524
1712
  </tr>
1525
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The command identifier assigned to this command.</p>
1713
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The command identifier assigned to this command if a message handler was provided.
1714
+ If no message handler was provided, returns an acknowledgment.</p>
1526
1715
  </td>
1527
1716
  </tr>
1528
1717
  </tbody>
@@ -1532,43 +1721,70 @@ consume the processed ack for this command (in millseconds).
1532
1721
  <dl class="method">
1533
1722
  <dt id="AMPS.Client.start_timer">
1534
1723
  <code class="descclassname">Client.</code><code class="descname">start_timer</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.start_timer" title="Permalink to this definition">¶</a></dt>
1535
- <dd><p>Deprecated in version 5.3.2.0. Used to start a timer on an AMPS Server for the client.</p>
1724
+ <dd><p>Used to start a timer on an AMPS Server for the client.</p>
1725
+ <div class="deprecated">
1726
+ <p><span class="versionmodified">Deprecated since version 5.3.2.0.</span></p>
1727
+ </div>
1536
1728
  </dd></dl>
1537
1729
 
1538
1730
  <dl class="method">
1539
1731
  <dt id="AMPS.Client.stop_timer">
1540
1732
  <code class="descclassname">Client.</code><code class="descname">stop_timer</code><span class="sig-paren">(</span><em>handler</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.stop_timer" title="Permalink to this definition">¶</a></dt>
1541
- <dd><p>Deprecated in version 5.3.2.0. Used to stop a timer on an AMPS Server previously started for the client.
1542
- :param handler: The handler to be invoked with the timer response.</p>
1733
+ <dd><p>Used to stop a timer on an AMPS Server previously started for the client.</p>
1734
+ <div class="deprecated">
1735
+ <p><span class="versionmodified">Deprecated since version 5.3.2.0.</span></p>
1736
+ </div>
1737
+ <table class="docutils field-list" frame="void" rules="none">
1738
+ <col class="field-name" />
1739
+ <col class="field-body" />
1740
+ <tbody valign="top">
1741
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>handler</strong> &#8211; The handler to be invoked with the timer response.</td>
1742
+ </tr>
1743
+ </tbody>
1744
+ </table>
1543
1745
  </dd></dl>
1544
1746
 
1545
1747
  <dl class="method">
1546
1748
  <dt id="AMPS.Client.subscribe">
1547
- <code class="descclassname">Client.</code><code class="descname">subscribe</code><span class="sig-paren">(</span><em>on_message</em>, <em>topic</em>, <em>filter=None</em>, <em>options=None</em>, <em>timeout=0</em>, <em>sub_id=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.subscribe" title="Permalink to this definition">¶</a></dt>
1548
- <dd><p>Places a subscription with AMPS.</p>
1749
+ <code class="descclassname">Client.</code><code class="descname">subscribe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.subscribe" title="Permalink to this definition">¶</a></dt>
1750
+ <dd><p><strong>Signatures</strong>:</p>
1751
+ <ul>
1752
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.subscribe(on_message,</span> <span class="pre">topic,</span> <span class="pre">filter=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0,</span> <span class="pre">sub_id=None)</span></code></p>
1753
+ </li>
1754
+ <li><p class="first"><code class="docutils literal"><span class="pre">Client.subscribe(topic,</span> <span class="pre">filter=None,</span> <span class="pre">options=None,</span> <span class="pre">timeout=0,</span> <span class="pre">sub_id=None)</span></code></p>
1755
+ <p>Places a subscription with AMPS.</p>
1756
+ <p>There are two ways to use this method:</p>
1757
+ <ol class="arabic simple">
1758
+ <li>When a message handler is provided, this method submits the <code class="docutils literal"><span class="pre">subscribe</span></code> command on a background thread and
1759
+ calls the message handler with individual messages that match the subscription.</li>
1760
+ <li>When no message handler is provided, this method returns a message stream that can be iterated on to process
1761
+ messages received that match the subscription.</li>
1762
+ </ol>
1763
+ </li>
1764
+ </ul>
1549
1765
  <table class="docutils field-list" frame="void" rules="none">
1550
1766
  <col class="field-name" />
1551
1767
  <col class="field-body" />
1552
1768
  <tbody valign="top">
1553
1769
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
1554
1770
  <li><strong>on_message</strong> (<em>str</em>) &#8211; The message handler to invoke with matching
1555
- messages.</li>
1771
+ messages (specified only in the case where async processing is used).</li>
1556
1772
  <li><strong>topic</strong> (<em>str</em>) &#8211; The topic to subscribe to.</li>
1557
1773
  <li><strong>filter</strong> (<em>str</em>) &#8211; The filter.</li>
1558
- <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional
1559
- processing options.</li>
1560
- <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1774
+ <li><strong>options</strong> (<em>str</em>) &#8211; A comma separated list of values indicating additional processing options.</li>
1775
+ <li><strong>timeout</strong> (<em>int</em>) &#8211; The maximum time to wait for the client to receive and
1561
1776
  consume the processed ack for this command (in milliseconds).
1562
1777
  <code class="docutils literal"><span class="pre">0</span></code> indicates to wait indefinitely.</li>
1563
- <li><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID. You may optionally provide a
1778
+ <li><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID. You may optionally provide a
1564
1779
  subscription ID to ease recovery scenarios, instead of having the
1565
- system automatically generate one for you.
1566
- When used with the &#8216;replace&#8217; option, this is the subscription to
1567
- be replaced.</li>
1780
+ system automatically generate one for you. When used with the &#8216;replace&#8217; option,
1781
+ this is the subscription to be replaced.</li>
1568
1782
  </ul>
1569
1783
  </td>
1570
1784
  </tr>
1571
- <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command.</p>
1785
+ <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The command identifier assigned to this command if a message handler was provided.
1786
+ If no message handler was provided, returns a <code class="docutils literal"><span class="pre">MessageStream</span></code> containing the results
1787
+ of the command.</p>
1572
1788
  </td>
1573
1789
  </tr>
1574
1790
  <tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#AMPS.SubscriptionAlreadyExistsException" title="AMPS.SubscriptionAlreadyExistsException"><code class="xref py py-exc docutils literal"><span class="pre">SubscriptionAlreadyExistsException</span></code></a>,
@@ -1583,13 +1799,18 @@ be replaced.</li>
1583
1799
  <dl class="method">
1584
1800
  <dt id="AMPS.Client.unsubscribe">
1585
1801
  <code class="descclassname">Client.</code><code class="descname">unsubscribe</code><span class="sig-paren">(</span><em>sub_id=None</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Client.unsubscribe" title="Permalink to this definition">¶</a></dt>
1586
- <dd><blockquote>
1587
- <div>Remove a subscription from AMPS.</div></blockquote>
1802
+ <dd><p>Remove a subscription from AMPS.</p>
1803
+ <blockquote>
1804
+ <div><div class="admonition note">
1805
+ <p class="first admonition-title">Note</p>
1806
+ <p class="last">Using the keyword <code class="docutils literal"><span class="pre">all</span></code> with <code class="docutils literal"><span class="pre">sub_id</span></code> will remove all subscriptions to AMPS.</p>
1807
+ </div>
1808
+ </div></blockquote>
1588
1809
  <table class="docutils field-list" frame="void" rules="none">
1589
1810
  <col class="field-name" />
1590
1811
  <col class="field-body" />
1591
1812
  <tbody valign="top">
1592
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sub_id</strong> &#8211; The subscription id to remove.</td>
1813
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sub_id</strong> (<em>str</em>) &#8211; The subscription ID to remove.</td>
1593
1814
  </tr>
1594
1815
  </tbody>
1595
1816
  </table>
@@ -1606,9 +1827,9 @@ be replaced.</li>
1606
1827
 
1607
1828
  <dl class="class">
1608
1829
  <dt id="AMPS.Command">
1609
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">Command</code><a class="headerlink" href="#AMPS.Command" title="Permalink to this definition">¶</a></dt>
1830
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>command_name</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Command" title="Permalink to this definition">¶</a></dt>
1610
1831
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
1611
- <p>AMPS.Command represents a single message (or <em>command</em>) sent to the
1832
+ <p><code class="docutils literal"><span class="pre">AMPS.Command</span></code> represents a single message (or <em>command</em>) sent to the
1612
1833
  AMPS server. The class provides methods for headers that are used
1613
1834
  for commands to the server. Applications typically use this class
1614
1835
  to create outgoing requests to AMPS. The responses to requests,
@@ -1625,6 +1846,16 @@ Command, set options as described in the Command Cookbook in the
1625
1846
  Python Developer Guide or the AMPS Command Reference, and then use
1626
1847
  <a class="reference internal" href="#AMPS.Client.execute_async" title="AMPS.Client.execute_async"><code class="xref py py-func docutils literal"><span class="pre">AMPS.Client.execute_async()</span></code></a> to process messages asynchronously,
1627
1848
  or <a class="reference internal" href="#AMPS.Client.execute" title="AMPS.Client.execute"><code class="xref py py-func docutils literal"><span class="pre">AMPS.Client.execute()</span></code></a> to process messages synchronously.</p>
1849
+ <p><strong>Constructor Arguments:</strong></p>
1850
+ <table class="docutils field-list" frame="void" rules="none">
1851
+ <col class="field-name" />
1852
+ <col class="field-body" />
1853
+ <tbody valign="top">
1854
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>command_name</strong> &#8211; The name of the command to send to the server.
1855
+ For example, <code class="docutils literal"><span class="pre">sow</span></code>, <code class="docutils literal"><span class="pre">sow_and_subscribe</span></code> or <code class="docutils literal"><span class="pre">publish</span></code>.</td>
1856
+ </tr>
1857
+ </tbody>
1858
+ </table>
1628
1859
  <dl class="method">
1629
1860
  <dt id="AMPS.Command.add_ack_type">
1630
1861
  <code class="descname">add_ack_type</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.Command.add_ack_type" title="Permalink to this definition">¶</a></dt>
@@ -1676,6 +1907,14 @@ that have been previously set or that will be set by the Client.</p>
1676
1907
  <dd><p>Gets the sequence of self for <code class="docutils literal"><span class="pre">publish</span></code>, <code class="docutils literal"><span class="pre">delta_publish</span></code>, or <code class="docutils literal"><span class="pre">sow_delete</span></code> commands.
1677
1908
  This can be checked after calling <code class="docutils literal"><span class="pre">execute</span></code> or <code class="docutils literal"><span class="pre">executeAsync</span></code> to query the sequence
1678
1909
  number that was used, if any.</p>
1910
+ <table class="docutils field-list" frame="void" rules="none">
1911
+ <col class="field-name" />
1912
+ <col class="field-body" />
1913
+ <tbody valign="top">
1914
+ <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The sequence number used in the last <code class="docutils literal"><span class="pre">publish</span></code>, <code class="docutils literal"><span class="pre">delta_publish</span></code>, or <code class="docutils literal"><span class="pre">sow_delete</span></code> command.</td>
1915
+ </tr>
1916
+ </tbody>
1917
+ </table>
1679
1918
  </dd></dl>
1680
1919
 
1681
1920
  <dl class="method">
@@ -1751,7 +1990,7 @@ details on SOW query batches.</p>
1751
1990
  <dd><p>Sets the value of the bookmark header. For a subscription, this identifies the point in the
1752
1991
  transaction log at which to begin the replay. For a <code class="docutils literal"><span class="pre">sow_delete</span></code> (queue acknowledgment), this
1753
1992
  indicates the message or messages to acknowledge. For a query on a SOW topic with
1754
- History configured, this indicates the point at which to query the topic.</p>
1993
+ <code class="docutils literal"><span class="pre">History</span></code> configured, this indicates the point at which to query the topic.</p>
1755
1994
  <p>Not all headers are processed by AMPS for all commands. See the AMPS Command Reference for which headers are used by AMPS for a specific command.</p>
1756
1995
  <table class="docutils field-list" frame="void" rules="none">
1757
1996
  <col class="field-name" />
@@ -2293,20 +2532,19 @@ If no sub_id is provided, remove all records for this client.
2293
2532
  <dt id="AMPS.DefaultServerChooser">
2294
2533
  <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">DefaultServerChooser</code><a class="headerlink" href="#AMPS.DefaultServerChooser" title="Permalink to this definition">¶</a></dt>
2295
2534
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
2296
- <p>A simple ServerChooser that keeps a list of AMPS instances and
2535
+ <p>A simple server chooser that keeps a list of AMPS instances and
2297
2536
  Authenticators, and advances to the next one when failure occurs.</p>
2298
2537
  <p>To use the <code class="docutils literal"><span class="pre">DefaultServerChooser</span></code>, you add the URIs for the server to
2299
- choose from, then set the server for the HAClient as shown below:</p>
2300
- <div class="highlight-default"><div class="highlight"><pre><span></span> <span class="n">client</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">HAClient</span><span class="p">(</span><span class="s2">&quot;showchooser&quot;</span><span class="p">)</span>
2301
- <span class="n">chooser</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">DefaultServerChooser</span><span class="p">()</span>
2302
- <span class="n">chooser</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;tcp://server:9005/nvfix&quot;</span><span class="p">)</span>
2303
- <span class="n">chooser</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;tcp://server-two:9005/nvfix&quot;</span><span class="p">)</span>
2304
- <span class="n">client</span><span class="o">.</span><span class="n">set_server_chooser</span><span class="p">(</span><span class="n">chooser</span><span class="p">)</span>
2305
- <span class="n">client</span><span class="o">.</span><span class="n">connect_and_logon</span><span class="p">()</span>
2306
-
2307
- <span class="n">You</span> <span class="n">can</span> <span class="n">add</span> <span class="nb">any</span> <span class="n">number</span> <span class="n">of</span> <span class="n">URIs</span> <span class="n">to</span> <span class="n">the</span> <span class="n">DefaultServerChooser</span><span class="o">.</span>
2538
+ choose from, then set the server for the <code class="docutils literal"><span class="pre">HAClient</span></code> as shown below:</p>
2539
+ <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">client</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">HAClient</span><span class="p">(</span><span class="s2">&quot;showchooser&quot;</span><span class="p">)</span>
2540
+ <span class="n">chooser</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">DefaultServerChooser</span><span class="p">()</span>
2541
+ <span class="n">chooser</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;tcp://server:9005/nvfix&quot;</span><span class="p">)</span>
2542
+ <span class="n">chooser</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;tcp://server-two:9005/nvfix&quot;</span><span class="p">)</span>
2543
+ <span class="n">client</span><span class="o">.</span><span class="n">set_server_chooser</span><span class="p">(</span><span class="n">chooser</span><span class="p">)</span>
2544
+ <span class="n">client</span><span class="o">.</span><span class="n">connect_and_logon</span><span class="p">()</span>
2308
2545
  </pre></div>
2309
2546
  </div>
2547
+ <p>You can add any number of URIs to the <code class="docutils literal"><span class="pre">DefaultServerChooser</span></code>.</p>
2310
2548
  <dl class="method">
2311
2549
  <dt id="AMPS.DefaultServerChooser.add">
2312
2550
  <code class="descname">add</code><span class="sig-paren">(</span><em>uri</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.DefaultServerChooser.add" title="Permalink to this definition">¶</a></dt>
@@ -2440,40 +2678,31 @@ choose from, then set the server for the HAClient as shown below:</p>
2440
2678
 
2441
2679
  <dl class="class">
2442
2680
  <dt id="AMPS.ExponentialDelayStrategy">
2443
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">ExponentialDelayStrategy</code><a class="headerlink" href="#AMPS.ExponentialDelayStrategy" title="Permalink to this definition">¶</a></dt>
2681
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">ExponentialDelayStrategy</code><span class="sig-paren">(</span><em>initial_delay=200</em>, <em>maximum_delay=20000</em>, <em>backoff_exponent=2.0</em>, <em>maximum_retry_time=0</em>, <em>jitter=1.0</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.ExponentialDelayStrategy" title="Permalink to this definition">¶</a></dt>
2444
2682
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
2445
- <p>ExponentialDelayStrategy is an implementation that exponentially
2446
- backs off when reconnecting to the same server, with a maximum
2447
- time to retry before it gives up entirely.</p>
2448
- <p>By default, an ExponentialDelayStrategy has an initial delay of
2449
- 200 ms, a maximum delay of 20 seconds, a backoff exponent of
2450
- 2.0, and has no limit to the amount of time to retry the connection.</p>
2451
- <p>Constructor parameters:</p>
2683
+ <p><code class="docutils literal"><span class="pre">ExponentialDelayStrategy</span></code> is an implementation that exponentially backs off when reconnecting to
2684
+ the same server, with a maximum time to retry before it gives up entirely.</p>
2685
+ <p>By default, an <code class="docutils literal"><span class="pre">ExponentialDelayStrategy</span></code> has an initial delay of 200 ms, a maximum delay of 20 seconds,
2686
+ a backoff exponent of 2.0, and has no limit to the amount of time to retry the connection.</p>
2687
+ <p><strong>Constructor Arguments:</strong></p>
2452
2688
  <table class="docutils field-list" frame="void" rules="none">
2453
2689
  <col class="field-name" />
2454
2690
  <col class="field-body" />
2455
2691
  <tbody valign="top">
2456
2692
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
2457
- <li><strong>initial_delay</strong> &#8211; The time (in milliseconds) to wait before
2458
- reconnecting to a server for the first
2693
+ <li><strong>initial_delay</strong> &#8211; The time (in milliseconds) to wait before reconnecting to a server for the first
2459
2694
  time after a failed connection.</li>
2460
- <li><strong>maximum_delay</strong> &#8211; The maximum time to wait for any reconnect
2461
- attempt (milliseconds). Exponential
2462
- backoff will not exceed this maximum.</li>
2463
- <li><strong>backoff_exponent</strong> &#8211; The exponent to use for calculating the
2464
- next delay time. For example, if the
2465
- initial time is 200ms and the exponent
2466
- is 2.0, the next delay will be 400ms,
2695
+ <li><strong>maximum_delay</strong> &#8211; The maximum time to wait for any reconnect attempt (milliseconds).
2696
+ Exponential backoff will not exceed this maximum.</li>
2697
+ <li><strong>backoff_exponent</strong> &#8211; The exponent to use for calculating the next delay time. For example, if the
2698
+ initial time is 200ms and the exponent is 2.0, the next delay will be 400ms,
2467
2699
  then 800ms, etc.</li>
2468
- <li><strong>maximum_retry_time</strong> &#8211; The maximum time (milliseconds) to allow
2469
- reconnect attempts to continue without
2470
- a successful connection, before &#8220;giving
2471
- up&#8221; and abandoning the connection attempt.</li>
2472
- <li><strong>jitter</strong> &#8211; The amount of &#8216;jitter&#8217; to apply when
2473
- calculating a delay time, measured in multiples
2474
- of the initial delay. Jitter is used to reduce
2475
- the number of simultaneous reconnects that may
2476
- be issued from multiple clients.</li>
2700
+ <li><strong>maximum_retry_time</strong> &#8211; The maximum time (milliseconds) to allow reconnect attempts to continue
2701
+ without a successful connection, before &#8216;giving up&#8217; and abandoning the
2702
+ connection attempt.</li>
2703
+ <li><strong>jitter</strong> &#8211; The amount of &#8216;jitter&#8217; to apply when calculating a delay time, measured in multiples
2704
+ of the initial delay. Jitter is used to reduce the number of simultaneous reconnects
2705
+ that may be issued from multiple clients.</li>
2477
2706
  </ul>
2478
2707
  </td>
2479
2708
  </tr>
@@ -2565,23 +2794,21 @@ be issued from multiple clients.</li>
2565
2794
 
2566
2795
  <dl class="class">
2567
2796
  <dt id="AMPS.FixedDelayStrategy">
2568
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">FixedDelayStrategy</code><a class="headerlink" href="#AMPS.FixedDelayStrategy" title="Permalink to this definition">¶</a></dt>
2797
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">FixedDelayStrategy</code><span class="sig-paren">(</span><em>initial_delay</em>, <em>maximum</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.FixedDelayStrategy" title="Permalink to this definition">¶</a></dt>
2569
2798
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
2570
- <p>FixedDelayStrategy is a reconnect delay strategy implementation that
2571
- waits a fixed amount of time before retrying a connection.</p>
2572
- <p>By default, a FixedDelayStrategy waits for 200ms between connection attempts
2799
+ <p><code class="docutils literal"><span class="pre">FixedDelayStrategy</span></code> is a reconnect delay strategy implementation that waits a
2800
+ fixed amount of time before retrying a connection.</p>
2801
+ <p>By default, a <code class="docutils literal"><span class="pre">FixedDelayStrategy</span></code> waits for 200ms between connection attempts
2573
2802
  and does not have a maximum timeout.</p>
2574
- <p>Constructor parameters:</p>
2803
+ <p><strong>Constructor Arguments:</strong></p>
2575
2804
  <table class="docutils field-list" frame="void" rules="none">
2576
2805
  <col class="field-name" />
2577
2806
  <col class="field-body" />
2578
2807
  <tbody valign="top">
2579
2808
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
2580
- <li><strong>initial_delay</strong> &#8211; The time (in milliseconds) to wait before
2581
- reconnecting to a server for the first
2582
- time after a failed connection.</li>
2583
- <li><strong>maximum</strong> &#8211; The maximum time (in milliseconds) to keep
2584
- retrying before giving up.</li>
2809
+ <li><strong>initial_delay</strong> &#8211; The time (in milliseconds) to wait before reconnecting to a
2810
+ server for the first time after a failed connection.</li>
2811
+ <li><strong>maximum</strong> &#8211; The maximum time (in milliseconds) to keep retrying before giving up.</li>
2585
2812
  </ul>
2586
2813
  </td>
2587
2814
  </tr>
@@ -2603,10 +2830,24 @@ retrying before giving up.</li>
2603
2830
 
2604
2831
  <dl class="class">
2605
2832
  <dt id="AMPS.HAClient">
2606
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">HAClient</code><a class="headerlink" href="#AMPS.HAClient" title="Permalink to this definition">¶</a></dt>
2833
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">HAClient</code><span class="sig-paren">(</span><em>name</em>, <em>publish_store=None</em>, <em>bookmark_store=None</em>, <em>no_store=False</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient" title="Permalink to this definition">¶</a></dt>
2607
2834
  <dd><p>Bases: <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">AMPS.Client</span></code></a></p>
2608
- <p>AMPS HAClient Object used for highly-available client connections. Derives from <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>.</p>
2609
- <p>Constructor arguments:</p>
2835
+ <p>AMPS <code class="docutils literal"><span class="pre">HAClient</span></code> Object used for highly-available client connections. Derives from <a class="reference internal" href="#AMPS.Client" title="AMPS.Client"><code class="xref py py-class docutils literal"><span class="pre">Client</span></code></a>.</p>
2836
+ <p>An example of a Python client publishing a JSON message using the <code class="docutils literal"><span class="pre">HAClient</span></code> is listed below:</p>
2837
+ <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">client</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">HAClient</span><span class="p">(</span><span class="s2">&quot;test_client&quot;</span><span class="p">)</span>
2838
+
2839
+ <span class="n">chooser</span> <span class="o">=</span> <span class="n">AMPS</span><span class="o">.</span><span class="n">DefaultServerChooser</span><span class="p">()</span>
2840
+ <span class="n">chooser</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;tcp://127.0.0.1:9004/amps/json&quot;</span><span class="p">)</span>
2841
+ <span class="n">client</span><span class="o">.</span><span class="n">set_server_chooser</span><span class="p">(</span><span class="n">chooser</span><span class="p">)</span>
2842
+
2843
+ <span class="k">try</span><span class="p">:</span>
2844
+ <span class="n">client</span><span class="o">.</span><span class="n">connect_and_logon</span><span class="p">()</span>
2845
+ <span class="n">client</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;topic_name&quot;</span><span class="p">,</span><span class="s1">&#39;{&quot;a&quot;:1,&quot;b&quot;:&quot;2&quot;}&#39;</span><span class="p">)</span>
2846
+ <span class="k">finally</span><span class="p">:</span>
2847
+ <span class="n">client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
2848
+ </pre></div>
2849
+ </div>
2850
+ <p><strong>Constructor Arguments:</strong></p>
2610
2851
  <table class="docutils field-list" frame="void" rules="none">
2611
2852
  <col class="field-name" />
2612
2853
  <col class="field-body" />
@@ -2628,7 +2869,7 @@ using control characters, newline characters, or square brackets.</li>
2628
2869
  <dl class="method">
2629
2870
  <dt id="AMPS.HAClient.connect">
2630
2871
  <code class="descname">connect</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.connect" title="Permalink to this definition">¶</a></dt>
2631
- <dd><p>Connects and logs on using the ServerChooser you&#8217;ve supplied via <a class="reference internal" href="#AMPS.HAClient.set_server_chooser" title="AMPS.HAClient.set_server_chooser"><code class="xref py py-meth docutils literal"><span class="pre">set_server_chooser()</span></code></a>. Will continue
2872
+ <dd><p>Connects and logs on using the <code class="docutils literal"><span class="pre">ServerChooser</span></code> you&#8217;ve supplied via <a class="reference internal" href="#AMPS.HAClient.set_server_chooser" title="AMPS.HAClient.set_server_chooser"><code class="xref py py-meth docutils literal"><span class="pre">set_server_chooser()</span></code></a>. Will continue
2632
2873
  attempting to connect and logon to each URI returned by the <code class="docutils literal"><span class="pre">ServerChooser</span></code> until the connection succeeds or
2633
2874
  the <code class="docutils literal"><span class="pre">ServerChooser</span></code> returns an empty URI.</p>
2634
2875
  </dd></dl>
@@ -2636,7 +2877,7 @@ the <code class="docutils literal"><span class="pre">ServerChooser</span></code>
2636
2877
  <dl class="method">
2637
2878
  <dt id="AMPS.HAClient.connect_and_logon">
2638
2879
  <code class="descname">connect_and_logon</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.connect_and_logon" title="Permalink to this definition">¶</a></dt>
2639
- <dd><p>Connects and logs on using the ServerChooser you&#8217;ve supplied via <a class="reference internal" href="#AMPS.HAClient.set_server_chooser" title="AMPS.HAClient.set_server_chooser"><code class="xref py py-meth docutils literal"><span class="pre">set_server_chooser()</span></code></a>. Will continue
2880
+ <dd><p>Connects and logs on using the <code class="docutils literal"><span class="pre">ServerChooser</span></code> you&#8217;ve supplied via <a class="reference internal" href="#AMPS.HAClient.set_server_chooser" title="AMPS.HAClient.set_server_chooser"><code class="xref py py-meth docutils literal"><span class="pre">set_server_chooser()</span></code></a>. Will continue
2640
2881
  attempting to connect and logon to each URI returned by the <code class="docutils literal"><span class="pre">ServerChooser</span></code> until the connection succeeds or
2641
2882
  the <code class="docutils literal"><span class="pre">ServerChooser</span></code> returns an empty URI.</p>
2642
2883
  </dd></dl>
@@ -2713,7 +2954,7 @@ subscription after a re-connect.</p>
2713
2954
  <dl class="method">
2714
2955
  <dt id="AMPS.HAClient.logon">
2715
2956
  <code class="descname">logon</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.logon" title="Permalink to this definition">¶</a></dt>
2716
- <dd><p>Not used in the HAClient; call <a class="reference internal" href="#AMPS.HAClient.connect_and_logon" title="AMPS.HAClient.connect_and_logon"><code class="xref py py-meth docutils literal"><span class="pre">connect_and_logon()</span></code></a> to connect and log on to AMPS once a server chooser is set.</p>
2957
+ <dd><p>Not used in the <code class="docutils literal"><span class="pre">HAClient</span></code>; call <a class="reference internal" href="#AMPS.HAClient.connect_and_logon" title="AMPS.HAClient.connect_and_logon"><code class="xref py py-meth docutils literal"><span class="pre">connect_and_logon()</span></code></a> to connect and log on to AMPS once a server chooser is set.</p>
2717
2958
  </dd></dl>
2718
2959
 
2719
2960
  <dl class="method">
@@ -2771,7 +3012,7 @@ remove the subscription from the subscription manager.</p>
2771
3012
  <col class="field-name" />
2772
3013
  <col class="field-body" />
2773
3014
  <tbody valign="top">
2774
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>options</strong> (<em>string</em>) &#8211; An options string to be passed to the server during logon, such as <code class="docutils literal"><span class="pre">ack_conflation=100us</span></code>.</td>
3015
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>options</strong> (<em>string</em>) &#8211; An options string to be passed to the server during logon, such as <code class="docutils literal"><span class="pre">ack_conflation=100ms</span></code>.</td>
2775
3016
  </tr>
2776
3017
  </tbody>
2777
3018
  </table>
@@ -2779,15 +3020,15 @@ remove the subscription from the subscription manager.</p>
2779
3020
 
2780
3021
  <dl class="method">
2781
3022
  <dt id="AMPS.HAClient.set_reconnect_delay">
2782
- <code class="descname">set_reconnect_delay</code><span class="sig-paren">(</span><em>reconnectDelay</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.set_reconnect_delay" title="Permalink to this definition">¶</a></dt>
3023
+ <code class="descname">set_reconnect_delay</code><span class="sig-paren">(</span><em>reconnect_delay</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.set_reconnect_delay" title="Permalink to this definition">¶</a></dt>
2783
3024
  <dd><p>Sets the delay in milliseconds used when reconnecting, after a disconnect occurs. Calling this method
2784
- creates and installs a new FixedDelayStrategy in this client.
3025
+ creates and installs a new <a class="reference internal" href="#AMPS.FixedDelayStrategy" title="AMPS.FixedDelayStrategy"><code class="xref py py-class docutils literal"><span class="pre">FixedDelayStrategy</span></code></a> in this client.
2785
3026
  Default value is 200 (0.2 seconds).</p>
2786
3027
  <table class="docutils field-list" frame="void" rules="none">
2787
3028
  <col class="field-name" />
2788
3029
  <col class="field-body" />
2789
3030
  <tbody valign="top">
2790
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>reconnectDelay</strong> &#8211; The number of milliseconds to wait before reconnecting, after a disconnect occurs.</td>
3031
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>reconnect_delay</strong> &#8211; The number of milliseconds to wait before reconnecting, after a disconnect occurs.</td>
2791
3032
  </tr>
2792
3033
  </tbody>
2793
3034
  </table>
@@ -2795,23 +3036,23 @@ Default value is 200 (0.2 seconds).</p>
2795
3036
 
2796
3037
  <dl class="method">
2797
3038
  <dt id="AMPS.HAClient.set_reconnect_delay_strategy">
2798
- <code class="descname">set_reconnect_delay_strategy</code><span class="sig-paren">(</span><em>reconnectDelayStrategy</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.set_reconnect_delay_strategy" title="Permalink to this definition">¶</a></dt>
3039
+ <code class="descname">set_reconnect_delay_strategy</code><span class="sig-paren">(</span><em>reconnect_delay_strategy</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HAClient.set_reconnect_delay_strategy" title="Permalink to this definition">¶</a></dt>
2799
3040
  <dd><p>Sets the reconnect delay strategy object used to control delay behavior
2800
3041
  when connecting and reconnecting to servers.</p>
2801
3042
  <table class="docutils field-list" frame="void" rules="none">
2802
3043
  <col class="field-name" />
2803
3044
  <col class="field-body" />
2804
3045
  <tbody valign="top">
2805
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>strategy</strong> &#8211; <p>The reconnect delay strategy object to use when connecting
3046
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>reconnect_delay_strategy</strong> &#8211; <p>The reconnect delay strategy object to use when connecting
2806
3047
  and reconnecting to AMPS instances. The object must have
2807
3048
  the following two methods defined:</p>
2808
3049
  <blockquote>
2809
3050
  <div><dl class="docutils">
2810
- <dt>get_connect_wait_duration(uri):</dt>
3051
+ <dt><code class="docutils literal"><span class="pre">get_connect_wait_duration(uri)</span></code>:</dt>
2811
3052
  <dd><em>uri</em> - A string containing the next URI AMPS will connect with.
2812
3053
  <em>Returns</em> an integer representing the time in milliseconds to wait
2813
3054
  before connecting to that URI.</dd>
2814
- <dt>reset():</dt>
3055
+ <dt><code class="docutils literal"><span class="pre">reset()</span></code>:</dt>
2815
3056
  <dd>Resets the state of self after a successful connection.</dd>
2816
3057
  </dl>
2817
3058
  </div></blockquote>
@@ -2860,7 +3101,7 @@ Default value is 10000 (10 seconds).</p>
2860
3101
  <col class="field-name" />
2861
3102
  <col class="field-body" />
2862
3103
  <tbody valign="top">
2863
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>timeout</strong> &#8211; The number of milliseconds to wait for a server response to logon. 0 indicates no timeout.</td>
3104
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>timeout</strong> &#8211; The number of milliseconds to wait for a server response to logon. <code class="docutils literal"><span class="pre">0</span></code> indicates no timeout.</td>
2864
3105
  </tr>
2865
3106
  </tbody>
2866
3107
  </table>
@@ -2873,18 +3114,73 @@ Default value is 10000 (10 seconds).</p>
2873
3114
  <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">HybridPublishStore</code><a class="headerlink" href="#AMPS.HybridPublishStore" title="Permalink to this definition">¶</a></dt>
2874
3115
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
2875
3116
  <p>A publish store that keeps messages on disk as well as in memory. When used with an HAClient, the HAClient manages storing messages in the publish store, replaying messages to the server after failover, and removing messages from the store. With this publish store, an application can recover messages from disk after exiting and restarting.</p>
3117
+ <dl class="method">
3118
+ <dt id="AMPS.HybridPublishStore.discard_up_to">
3119
+ <code class="descname">discard_up_to</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.discard_up_to" title="Permalink to this definition">¶</a></dt>
3120
+ <dd><p>Discard all messages in the publish store with a sequence number less than or equal to the provided argument.</p>
3121
+ <table class="docutils field-list" frame="void" rules="none">
3122
+ <col class="field-name" />
3123
+ <col class="field-body" />
3124
+ <tbody valign="top">
3125
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sequence</strong> &#8211; The highest sequence number to discard.</td>
3126
+ </tr>
3127
+ </tbody>
3128
+ </table>
3129
+ </dd></dl>
3130
+
3131
+ <dl class="method">
3132
+ <dt id="AMPS.HybridPublishStore.get_last_persisted">
3133
+ <code class="descname">get_last_persisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.get_last_persisted" title="Permalink to this definition">¶</a></dt>
3134
+ <dd><p>Returns the sequence number of last message ACK&#8217;ed by the server.</p>
3135
+ </dd></dl>
3136
+
3137
+ <dl class="method">
3138
+ <dt id="AMPS.HybridPublishStore.get_lowest_unpersisted">
3139
+ <code class="descname">get_lowest_unpersisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.get_lowest_unpersisted" title="Permalink to this definition">¶</a></dt>
3140
+ <dd><p>Returns the sequence number of the oldest message in the publish store.</p>
3141
+ </dd></dl>
3142
+
2876
3143
  <dl class="method">
2877
3144
  <dt id="AMPS.HybridPublishStore.get_unpersisted_count">
2878
3145
  <code class="descname">get_unpersisted_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.get_unpersisted_count" title="Permalink to this definition">¶</a></dt>
2879
3146
  <dd><p>Returns the number of messages published which have not been ACK&#8217;ed by the server.</p>
2880
3147
  </dd></dl>
2881
3148
 
3149
+ <dl class="method">
3150
+ <dt id="AMPS.HybridPublishStore.replay">
3151
+ <code class="descname">replay</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.replay" title="Permalink to this definition">¶</a></dt>
3152
+ <dd><p>Replays all messages currently in the publish store via the provided message handler.
3153
+ :param handler: The message handler to call with each message.</p>
3154
+ </dd></dl>
3155
+
3156
+ <dl class="method">
3157
+ <dt id="AMPS.HybridPublishStore.replay_single">
3158
+ <code class="descname">replay_single</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.replay_single" title="Permalink to this definition">¶</a></dt>
3159
+ <dd><p>Replays the message with the given sequence number if it is currently in the publish store via the provided message handler.
3160
+ :param handler: The message handler to call with each message.
3161
+ :param sequence: The sequence number of the message to replay.</p>
3162
+ </dd></dl>
3163
+
2882
3164
  <dl class="method">
2883
3165
  <dt id="AMPS.HybridPublishStore.set_resize_handler">
2884
3166
  <code class="descname">set_resize_handler</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.set_resize_handler" title="Permalink to this definition">¶</a></dt>
2885
3167
  <dd><p>Sets the object to call when the store needs to resize.</p>
2886
3168
  </dd></dl>
2887
3169
 
3170
+ <dl class="method">
3171
+ <dt id="AMPS.HybridPublishStore.store">
3172
+ <code class="descname">store</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.HybridPublishStore.store" title="Permalink to this definition">¶</a></dt>
3173
+ <dd><p>Store the provided message into the publish store. Returns the sequence number that should be assigned to the message.</p>
3174
+ <table class="docutils field-list" frame="void" rules="none">
3175
+ <col class="field-name" />
3176
+ <col class="field-body" />
3177
+ <tbody valign="top">
3178
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message</strong> &#8211; The message to put into the store.</td>
3179
+ </tr>
3180
+ </tbody>
3181
+ </table>
3182
+ </dd></dl>
3183
+
2888
3184
  </dd></dl>
2889
3185
 
2890
3186
  <dl class="exception">
@@ -3182,6 +3478,20 @@ deal with persisted acks and calls to get_most_recent().</p>
3182
3478
  <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">MemoryPublishStore</code><a class="headerlink" href="#AMPS.MemoryPublishStore" title="Permalink to this definition">¶</a></dt>
3183
3479
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
3184
3480
  <p>A publish store that keeps messages in memory. This class is the default publish store for a python HAClient. The HAClient manages storing messages in the publish store, replaying messages to the server after failover, and removing messages from the store. With this publish store, an application typically checks to be sure that the publish store is empty (that is, all messages have been persisted in the AMPS server) before exiting.</p>
3481
+ <dl class="method">
3482
+ <dt id="AMPS.MemoryPublishStore.discard_up_to">
3483
+ <code class="descname">discard_up_to</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.discard_up_to" title="Permalink to this definition">¶</a></dt>
3484
+ <dd><p>Discard all messages in the publish store with a sequence number less than or equal to the provided argument.</p>
3485
+ <table class="docutils field-list" frame="void" rules="none">
3486
+ <col class="field-name" />
3487
+ <col class="field-body" />
3488
+ <tbody valign="top">
3489
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sequence</strong> &#8211; The highest sequence number to discard.</td>
3490
+ </tr>
3491
+ </tbody>
3492
+ </table>
3493
+ </dd></dl>
3494
+
3185
3495
  <dl class="method">
3186
3496
  <dt id="AMPS.MemoryPublishStore.get_error_on_publish_gap">
3187
3497
  <code class="descname">get_error_on_publish_gap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.get_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
@@ -3192,12 +3502,39 @@ appears to be missing messages no longer held in the store.</dd>
3192
3502
  </dl>
3193
3503
  </dd></dl>
3194
3504
 
3505
+ <dl class="method">
3506
+ <dt id="AMPS.MemoryPublishStore.get_last_persisted">
3507
+ <code class="descname">get_last_persisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.get_last_persisted" title="Permalink to this definition">¶</a></dt>
3508
+ <dd><p>Returns the sequence number of last message ACK&#8217;ed by the server.</p>
3509
+ </dd></dl>
3510
+
3511
+ <dl class="method">
3512
+ <dt id="AMPS.MemoryPublishStore.get_lowest_unpersisted">
3513
+ <code class="descname">get_lowest_unpersisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.get_lowest_unpersisted" title="Permalink to this definition">¶</a></dt>
3514
+ <dd><p>Returns the sequence number of the oldest message in the publish store.</p>
3515
+ </dd></dl>
3516
+
3195
3517
  <dl class="method">
3196
3518
  <dt id="AMPS.MemoryPublishStore.get_unpersisted_count">
3197
3519
  <code class="descname">get_unpersisted_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.get_unpersisted_count" title="Permalink to this definition">¶</a></dt>
3198
3520
  <dd><p>Returns the number of messages published which have not been ACK&#8217;ed by the server.</p>
3199
3521
  </dd></dl>
3200
3522
 
3523
+ <dl class="method">
3524
+ <dt id="AMPS.MemoryPublishStore.replay">
3525
+ <code class="descname">replay</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.replay" title="Permalink to this definition">¶</a></dt>
3526
+ <dd><p>Replays all messages currently in the publish store via the provided message handler.
3527
+ :param handler: The message handler to call with each message.</p>
3528
+ </dd></dl>
3529
+
3530
+ <dl class="method">
3531
+ <dt id="AMPS.MemoryPublishStore.replay_single">
3532
+ <code class="descname">replay_single</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.replay_single" title="Permalink to this definition">¶</a></dt>
3533
+ <dd><p>Replays the message with the given sequence number if it is currently in the publish store via the provided message handler.
3534
+ :param handler: The message handler to call with each message.
3535
+ :param sequence: The sequence number of the message to replay.</p>
3536
+ </dd></dl>
3537
+
3201
3538
  <dl class="method">
3202
3539
  <dt id="AMPS.MemoryPublishStore.set_error_on_publish_gap">
3203
3540
  <code class="descname">set_error_on_publish_gap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.set_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
@@ -3220,6 +3557,20 @@ appears to be missing messages no longer held in the store.</td>
3220
3557
  <dd><p>Sets the object to call when the store needs to resize.</p>
3221
3558
  </dd></dl>
3222
3559
 
3560
+ <dl class="method">
3561
+ <dt id="AMPS.MemoryPublishStore.store">
3562
+ <code class="descname">store</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.MemoryPublishStore.store" title="Permalink to this definition">¶</a></dt>
3563
+ <dd><p>Store the provided message into the publish store. Returns the sequence number that should be assigned to the message.</p>
3564
+ <table class="docutils field-list" frame="void" rules="none">
3565
+ <col class="field-name" />
3566
+ <col class="field-body" />
3567
+ <tbody valign="top">
3568
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message</strong> &#8211; The message to put into the store.</td>
3569
+ </tr>
3570
+ </tbody>
3571
+ </table>
3572
+ </dd></dl>
3573
+
3223
3574
  </dd></dl>
3224
3575
 
3225
3576
  <dl class="class">
@@ -5992,31 +6343,31 @@ stream remains open.</div></blockquote>
5992
6343
 
5993
6344
  <dl class="class">
5994
6345
  <dt id="AMPS.NVFIXBuilder">
5995
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">NVFIXBuilder</code><a class="headerlink" href="#AMPS.NVFIXBuilder" title="Permalink to this definition">¶</a></dt>
6346
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">NVFIXBuilder</code><span class="sig-paren">(</span><em>delimiter</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.NVFIXBuilder" title="Permalink to this definition">¶</a></dt>
5996
6347
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
5997
6348
  <p>Convenience class for easily creating NVFIX strings.</p>
5998
- <p>Constructor arguments:</p>
6349
+ <p><strong>Constructor Arguments:</strong></p>
5999
6350
  <table class="docutils field-list" frame="void" rules="none">
6000
6351
  <col class="field-name" />
6001
6352
  <col class="field-body" />
6002
6353
  <tbody valign="top">
6003
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>delimiter</strong> &#8211; The delimiter to use between NVFIX fields. Defaults to \\x01 if no delimiter is provided.</td>
6354
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>delimiter</strong> &#8211; The delimiter to use between NVFIX fields. Defaults to \x01 if no delimiter is provided.</td>
6004
6355
  </tr>
6005
6356
  </tbody>
6006
6357
  </table>
6007
6358
  <dl class="method">
6008
6359
  <dt id="AMPS.NVFIXBuilder.append">
6009
- <code class="descname">append</code><span class="sig-paren">(</span><em>tag</em>, <em>value</em>, <em>(optional)offset</em>, <em>(optional)length</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.NVFIXBuilder.append" title="Permalink to this definition">¶</a></dt>
6010
- <dd><p>Appends tag=value to self.</p>
6360
+ <code class="descname">append</code><span class="sig-paren">(</span><em>tag</em>, <em>value</em>, <em>offset(optional)</em>, <em>length(optional)</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.NVFIXBuilder.append" title="Permalink to this definition">¶</a></dt>
6361
+ <dd><p>Appends <code class="docutils literal"><span class="pre">tag=value</span></code> to self.</p>
6011
6362
  <table class="docutils field-list" frame="void" rules="none">
6012
6363
  <col class="field-name" />
6013
6364
  <col class="field-body" />
6014
6365
  <tbody valign="top">
6015
6366
  <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
6016
- <li><strong>tag</strong> (<em>int</em>) &#8211; The tag to use.</li>
6367
+ <li><strong>tag</strong> (<em>str</em>) &#8211; The tag to use.</li>
6017
6368
  <li><strong>value</strong> (<em>str</em>) &#8211; The value for the given tag.</li>
6018
- <li><strong>offset</strong> (<em>int</em>) &#8211; Optional. The offset into value at which the value actually starts.</li>
6019
- <li><strong>length</strong> &#8211; Optional. The length of the actual value within value. Only valid and required if offset is also provided.</li>
6369
+ <li><strong>offset</strong> (<em>int</em>) &#8211; The offset into value at which the value actually starts. <em>Optional.</em></li>
6370
+ <li><strong>length</strong> (<em>int</em>) &#8211; The length of the actual value within value. <em>Optional.</em> Only valid and required if offset is also provided.</li>
6020
6371
  </ul>
6021
6372
  </td>
6022
6373
  </tr>
@@ -6048,15 +6399,15 @@ stream remains open.</div></blockquote>
6048
6399
 
6049
6400
  <dl class="class">
6050
6401
  <dt id="AMPS.NVFIXShredder">
6051
- <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">NVFIXShredder</code><a class="headerlink" href="#AMPS.NVFIXShredder" title="Permalink to this definition">¶</a></dt>
6402
+ <em class="property">class </em><code class="descclassname">AMPS.</code><code class="descname">NVFIXShredder</code><span class="sig-paren">(</span><em>delimiter</em><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.NVFIXShredder" title="Permalink to this definition">¶</a></dt>
6052
6403
  <dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
6053
6404
  <p>Convenience class for easily processing NVFIX strings.</p>
6054
- <p>Constructor arguments:</p>
6405
+ <p><strong>Constructor Arguments:</strong></p>
6055
6406
  <table class="docutils field-list" frame="void" rules="none">
6056
6407
  <col class="field-name" />
6057
6408
  <col class="field-body" />
6058
6409
  <tbody valign="top">
6059
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>separator</strong> &#8211; The delimiter to expect between NVFIX fields. Defaults to \\x01 if no delimiter is provided.</td>
6410
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>delimiter</strong> &#8211; The delimiter to expect between NVFIX fields. Defaults to \x01 if no delimiter is provided.</td>
6060
6411
  </tr>
6061
6412
  </tbody>
6062
6413
  </table>
@@ -6112,6 +6463,20 @@ fields in the message.</p>
6112
6463
  <p>AMPS PublishStore Object</p>
6113
6464
  <p>Stores published records in a file while awaiting an ACK from the server. Construct with the name of the file to use for record storage
6114
6465
  and optionally, a Boolean to specify if the store should throw an exception if logging onto a server that might be missing messages not in the store.</p>
6466
+ <dl class="method">
6467
+ <dt id="AMPS.PublishStore.discard_up_to">
6468
+ <code class="descname">discard_up_to</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.discard_up_to" title="Permalink to this definition">¶</a></dt>
6469
+ <dd><p>Discard all messages in the publish store with a sequence number less than or equal to the provided argument.</p>
6470
+ <table class="docutils field-list" frame="void" rules="none">
6471
+ <col class="field-name" />
6472
+ <col class="field-body" />
6473
+ <tbody valign="top">
6474
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sequence</strong> &#8211; The highest sequence number to discard.</td>
6475
+ </tr>
6476
+ </tbody>
6477
+ </table>
6478
+ </dd></dl>
6479
+
6115
6480
  <dl class="method">
6116
6481
  <dt id="AMPS.PublishStore.get_error_on_publish_gap">
6117
6482
  <code class="descname">get_error_on_publish_gap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.get_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
@@ -6122,12 +6487,39 @@ appears to be missing messages no longer held in the store.</dd>
6122
6487
  </dl>
6123
6488
  </dd></dl>
6124
6489
 
6490
+ <dl class="method">
6491
+ <dt id="AMPS.PublishStore.get_last_persisted">
6492
+ <code class="descname">get_last_persisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.get_last_persisted" title="Permalink to this definition">¶</a></dt>
6493
+ <dd><p>Returns the sequence number of last message ACK&#8217;ed by the server.</p>
6494
+ </dd></dl>
6495
+
6496
+ <dl class="method">
6497
+ <dt id="AMPS.PublishStore.get_lowest_unpersisted">
6498
+ <code class="descname">get_lowest_unpersisted</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.get_lowest_unpersisted" title="Permalink to this definition">¶</a></dt>
6499
+ <dd><p>Returns the sequence number of the oldest message in the publish store.</p>
6500
+ </dd></dl>
6501
+
6125
6502
  <dl class="method">
6126
6503
  <dt id="AMPS.PublishStore.get_unpersisted_count">
6127
6504
  <code class="descname">get_unpersisted_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.get_unpersisted_count" title="Permalink to this definition">¶</a></dt>
6128
6505
  <dd><p>Returns the number of messages published which have not been ACK&#8217;ed by the server.</p>
6129
6506
  </dd></dl>
6130
6507
 
6508
+ <dl class="method">
6509
+ <dt id="AMPS.PublishStore.replay">
6510
+ <code class="descname">replay</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.replay" title="Permalink to this definition">¶</a></dt>
6511
+ <dd><p>Replays all messages currently in the publish store via the provided message handler.
6512
+ :param handler: The message handler to call with each message.</p>
6513
+ </dd></dl>
6514
+
6515
+ <dl class="method">
6516
+ <dt id="AMPS.PublishStore.replay_single">
6517
+ <code class="descname">replay_single</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.replay_single" title="Permalink to this definition">¶</a></dt>
6518
+ <dd><p>Replays the message with the given sequence number if it is currently in the publish store via the provided message handler.
6519
+ :param handler: The message handler to call with each message.
6520
+ :param sequence: The sequence number of the message to replay.</p>
6521
+ </dd></dl>
6522
+
6131
6523
  <dl class="method">
6132
6524
  <dt id="AMPS.PublishStore.set_error_on_publish_gap">
6133
6525
  <code class="descname">set_error_on_publish_gap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.set_error_on_publish_gap" title="Permalink to this definition">¶</a></dt>
@@ -6150,6 +6542,20 @@ appears to be missing messages no longer held in the store.</td>
6150
6542
  <dd><p>Sets the object to call when the store needs to resize.</p>
6151
6543
  </dd></dl>
6152
6544
 
6545
+ <dl class="method">
6546
+ <dt id="AMPS.PublishStore.store">
6547
+ <code class="descname">store</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.store" title="Permalink to this definition">¶</a></dt>
6548
+ <dd><p>Store the provided message into the publish store. Returns the sequence number that should be assigned to the message.</p>
6549
+ <table class="docutils field-list" frame="void" rules="none">
6550
+ <col class="field-name" />
6551
+ <col class="field-body" />
6552
+ <tbody valign="top">
6553
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message</strong> &#8211; The message to put into the store.</td>
6554
+ </tr>
6555
+ </tbody>
6556
+ </table>
6557
+ </dd></dl>
6558
+
6153
6559
  <dl class="method">
6154
6560
  <dt id="AMPS.PublishStore.truncate_on_close">
6155
6561
  <code class="descname">truncate_on_close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.PublishStore.truncate_on_close" title="Permalink to this definition">¶</a></dt>
@@ -6512,6 +6918,12 @@ for exceptions.</td>
6512
6918
 
6513
6919
  </dd></dl>
6514
6920
 
6921
+ <dl class="function">
6922
+ <dt id="AMPS.ssl_get_context">
6923
+ <code class="descclassname">AMPS.</code><code class="descname">ssl_get_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.ssl_get_context" title="Permalink to this definition">¶</a></dt>
6924
+ <dd><p>Returns the SSLContext used for SSL connections. Call ssl_init first.</p>
6925
+ </dd></dl>
6926
+
6515
6927
  <dl class="function">
6516
6928
  <dt id="AMPS.ssl_init">
6517
6929
  <code class="descclassname">AMPS.</code><code class="descname">ssl_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#AMPS.ssl_init" title="Permalink to this definition">¶</a></dt>
@@ -6520,8 +6932,18 @@ for exceptions.</td>
6520
6932
  <col class="field-name" />
6521
6933
  <col class="field-body" />
6522
6934
  <tbody valign="top">
6523
- <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>dllpath</strong> &#8211; The path to the OpenSSL DLL or shared library to use for
6524
- SSL functionality.</td>
6935
+ <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
6936
+ <li><strong>dllpath</strong> &#8211; The path to the OpenSSL DLL or shared library to use for
6937
+ SSL functionality.</li>
6938
+ <li><strong>ssl_context</strong> &#8211; An ssl.SSLContext preconfigured with desired settings
6939
+ for tcps connections to the AMPS server.</li>
6940
+ <li><strong>strict_ciphers_only</strong> &#8211; If True, use only the stricter ciphers allowed
6941
+ by default in Python version 3.10 and above. The
6942
+ default is False, which enables all default
6943
+ OpenSSL ciphers for compatibility with some AMPS
6944
+ versions using older OpenSSL libraries.</li>
6945
+ </ul>
6946
+ </td>
6525
6947
  </tr>
6526
6948
  </tbody>
6527
6949
  </table>
@@ -6605,7 +7027,7 @@ SSL functionality.</td>
6605
7027
  <li class="right" >
6606
7028
  <a href="index.html" title="AMPS Python Client Reference"
6607
7029
  >previous</a> |</li>
6608
- <li class="nav-item nav-item-0"><a href="index.html">AMPS Python Client 5.3.4.2 documentation</a> &#187;</li>
7030
+ <li class="nav-item nav-item-0"><a href="index.html">AMPS Python Client 5.3.4.4 documentation</a> &#187;</li>
6609
7031
  </ul>
6610
7032
  </div>
6611
7033
  <div class="footer" role="contentinfo">