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
@@ -0,0 +1,275 @@
1
+ ////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // Copyright (c) 2010-2024 60East Technologies Inc., All Rights Reserved.
4
+ //
5
+ // This computer software is owned by 60East Technologies Inc. and is
6
+ // protected by U.S. copyright laws and other laws and by international
7
+ // treaties. This computer software is furnished by 60East Technologies
8
+ // Inc. pursuant to a written license agreement and may be used, copied,
9
+ // transmitted, and stored only in accordance with the terms of such
10
+ // license agreement and with the inclusion of the above copyright notice.
11
+ // This computer software or any other copies thereof may not be provided
12
+ // or otherwise made available to any other person.
13
+ //
14
+ // U.S. Government Restricted Rights. This computer software: (a) was
15
+ // developed at private expense and is in all respects the proprietary
16
+ // information of 60East Technologies Inc.; (b) was not developed with
17
+ // government funds; (c) is a trade secret of 60East Technologies Inc.
18
+ // for all purposes of the Freedom of Information Act; and (d) is a
19
+ // commercial item and thus, pursuant to Section 12.212 of the Federal
20
+ // Acquisition Regulations (FAR) and DFAR Supplement Section 227.7202,
21
+ // Government's use, duplication or disclosure of the computer software
22
+ // is subject to the restrictions set forth by 60East Technologies Inc..
23
+ //
24
+ ////////////////////////////////////////////////////////////////////////////
25
+
26
+ #define PY_SSIZE_T_CLEAN 1
27
+ #include <Python.h>
28
+ #include <amps/ampsplusplus.hpp>
29
+ #include <ampspy_types.hpp>
30
+ #include <ampspy_defs.hpp>
31
+ #include <amps/HybridPublishStore.hpp>
32
+ #include "hybridpublishstore_docs.h"
33
+
34
+ using namespace AMPS;
35
+ namespace ampspy
36
+ {
37
+ namespace hybridpublishstore
38
+ {
39
+
40
+ AMPSDLL ampspy::ampspy_type_object hybridpublishstore_type;
41
+
42
+ // def __init__(self, name):
43
+ static void* __ctor(obj* self, PyObject* args, PyObject* kwds)
44
+ {
45
+ char* filename = NULL;
46
+ unsigned long maxMemoryCapacity = 0;
47
+ PyObject* value = NULL;
48
+ if (!PyArg_ParseTuple(args, "sk|O!", &filename, &maxMemoryCapacity, &PyBool_Type, &value))
49
+ {
50
+ return NULL;
51
+ }
52
+ assert(filename != NULL);
53
+ bool errorOnPublishGap = value && value == Py_True;
54
+
55
+ std::string fileName(filename);
56
+ try
57
+ {
58
+ UNLOCKGIL;
59
+ self->impl = new Store(new HybridPublishStore(fileName, (size_t)maxMemoryCapacity, errorOnPublishGap));
60
+ } DISPATCH_EXCEPTION;
61
+ self->resizeHandler = NULL;
62
+ return (void*)self;
63
+ }
64
+
65
+ static int _ctor(obj* self, PyObject* args, PyObject* kwds)
66
+ {
67
+ if (__ctor(self, args, kwds) == NULL)
68
+ {
69
+ return -1;
70
+ }
71
+ return 0;
72
+ }
73
+
74
+ static void _dtor(obj* self)
75
+ {
76
+ {
77
+ UNLOCKGIL;
78
+ delete self->impl;
79
+ }
80
+ self->impl = 0;
81
+ Py_XDECREF(self->resizeHandler);
82
+ shims::free(self);
83
+ }
84
+
85
+ static PyObject* store(obj* self, PyObject* args)
86
+ {
87
+ Store* pStore = self->impl;
88
+ PyObject* pPyMessage = NULL;
89
+ if (!PyArg_ParseTuple(args, "O", &pPyMessage))
90
+ {
91
+ return NULL;
92
+ }
93
+ Message* pMessage = ((ampspy::message::obj*)pPyMessage)->pMessage;
94
+ CALL_RETURN_UINT64_T(pStore->store(*pMessage));
95
+ }
96
+
97
+ static PyObject* discard_up_to(obj* self, PyObject* args)
98
+ {
99
+ Store* pStore = self->impl;
100
+ unsigned long long seq = 0ULL;
101
+ if (!PyArg_ParseTuple(args, "K", &seq))
102
+ {
103
+ return NULL;
104
+ }
105
+ CALL_RETURN_NONE(pStore->discardUpTo(seq));
106
+ }
107
+
108
+ class PyClientStoreReplayer : public AMPS::StoreReplayer
109
+ {
110
+ PyObject* _pPyHandler;
111
+ ampspy::message::obj* _pMessage;
112
+ PyObject* _pMessageArgs;
113
+ public:
114
+ PyClientStoreReplayer(PyObject* pPyHandler)
115
+ : _pPyHandler(pPyHandler)
116
+ {
117
+ Py_INCREF(_pPyHandler);
118
+ _pMessage = (ampspy::message::obj*)_PyObject_New(
119
+ ampspy::message::message_type);
120
+ _pMessage->isOwned = false;
121
+ assert(_pMessage);
122
+ _pMessageArgs = Py_BuildValue("(O)", _pMessage);
123
+ assert(_pMessageArgs);
124
+ }
125
+
126
+ virtual void execute(Message& message_)
127
+ {
128
+ LOCKGIL;
129
+ _pMessage->pMessage = (Message*)&message_;
130
+ PyObject* result = PyObject_Call(_pPyHandler, _pMessageArgs,
131
+ (PyObject*)NULL);
132
+ if (result == NULL)
133
+ {
134
+ if (PyErr_ExceptionMatches(PyExc_SystemExit))
135
+ {
136
+ ampspy::unhandled_exception();
137
+ }
138
+ else
139
+ {
140
+ // translate amps py exception into amps cpp, throw
141
+ exc::throwError();
142
+ }
143
+ }
144
+ else
145
+ {
146
+ Py_DECREF(result);
147
+ }
148
+ }
149
+
150
+ virtual ~PyClientStoreReplayer()
151
+ {
152
+ Py_CLEAR(_pPyHandler);
153
+ Py_CLEAR(_pMessage);
154
+ Py_CLEAR(_pMessageArgs);
155
+ }
156
+ };
157
+
158
+ static PyObject* replay(obj* self, PyObject* args)
159
+ {
160
+ Store* pStore = self->impl;
161
+ PyObject* pOnMessage = NULL;
162
+ if (!PyArg_ParseTuple(args, "O", &pOnMessage))
163
+ {
164
+ return NULL;
165
+ }
166
+ PyClientStoreReplayer replayer(pOnMessage);
167
+ CALL_RETURN_NONE(pStore->replay(replayer));
168
+ }
169
+
170
+ static PyObject* replay_single(obj* self, PyObject* args)
171
+ {
172
+ Store* pStore = self->impl;
173
+ PyObject* pOnMessage = NULL;
174
+ unsigned long long seq = 0;
175
+ if (!PyArg_ParseTuple(args, "OK", &pOnMessage, &seq))
176
+ {
177
+ return NULL;
178
+ }
179
+ PyClientStoreReplayer replayer(pOnMessage);
180
+ CALL_RETURN_NONE(pStore->replaySingle(replayer, seq));
181
+ }
182
+
183
+ static PyObject* get_unpersisted_count(obj* self, PyObject* args)
184
+ {
185
+ CALL_RETURN_SIZE_T(self->impl->unpersistedCount());
186
+ }
187
+
188
+ static PyObject* get_lowest_unpersisted(obj* self, PyObject* args)
189
+ {
190
+ Store* pStore = self->impl;
191
+ CALL_RETURN_UINT64_T(pStore->getLowestUnpersisted());
192
+ }
193
+
194
+ static PyObject* get_last_persisted(obj* self, PyObject* args)
195
+ {
196
+ Store* pStore = self->impl;
197
+ CALL_RETURN_UINT64_T(pStore->getLastPersisted());
198
+ }
199
+
200
+ bool
201
+ call_resize_handler(StoreImpl* store, size_t size, void* vp)
202
+ {
203
+ LOCKGIL;
204
+ obj* s = (obj*)vp;
205
+ #if defined(_WIN32) && !defined(_WIN64)
206
+ PyObject* args = Py_BuildValue("(Oi)", s, size);
207
+ #else
208
+ PyObject* args = Py_BuildValue("(Ol)", s, size);
209
+ #endif
210
+ PyObject* pyRet = PyObject_Call(s->resizeHandler, args, (PyObject*)NULL);
211
+ Py_DECREF(args);
212
+ if (pyRet == NULL || PyErr_Occurred())
213
+ {
214
+ Py_XDECREF(pyRet);
215
+ if (PyErr_ExceptionMatches(PyExc_SystemExit))
216
+ {
217
+ ampspy::unhandled_exception();
218
+ }
219
+ throw StoreException("The resize handler threw an exception");
220
+ }
221
+ bool ret = (PyObject_IsTrue(pyRet) != 0);
222
+ Py_DECREF(pyRet);
223
+ return ret;
224
+ }
225
+
226
+ static PyObject* set_resize_handler(obj* self, PyObject* args)
227
+ {
228
+ PyObject* callable;
229
+ if (!PyArg_ParseTuple(args, "O", &callable))
230
+ {
231
+ return NULL;
232
+ }
233
+ if (!PyCallable_Check(callable))
234
+ {
235
+ PyErr_SetString(PyExc_TypeError, "argument must be callable.");
236
+ return NULL;
237
+ }
238
+ Py_INCREF(callable);
239
+ if (self->resizeHandler)
240
+ {
241
+ Py_DECREF(self->resizeHandler);
242
+ }
243
+ self->resizeHandler = callable;
244
+ CALL_RETURN_NONE(self->impl->setResizeHandler((AMPS::PublishStoreResizeHandler)call_resize_handler, self));
245
+ }
246
+
247
+ void add_types(PyObject* module_)
248
+ {
249
+ hybridpublishstore_type.setName("AMPS.HybridPublishStore")
250
+ .setBasicSize(sizeof(obj))
251
+ .setDestructorFunction(_dtor)
252
+ .setConstructorFunction(_ctor)
253
+ .setDoc(hybridpublishstore_class_doc)
254
+ .setBaseType()
255
+ .notCopyable()
256
+ .addMethod("store", store, "store()\n\nStore the provided message into the publish store. Returns the sequence number that should be assigned to the message.\n\n"
257
+ ":param message: The message to put into the store.\n")
258
+ .addMethod("discard_up_to", discard_up_to, "discard_up_to()\n\nDiscard all messages in the publish store with a sequence number less than or equal to the provided argument.\n\n"
259
+ ":param sequence: The highest sequence number to discard.\n")
260
+ .addMethod("replay", replay, "replay()\n\nReplays all messages currently in the publish store via the provided message handler.\n"
261
+ ":param handler: The message handler to call with each message.\n")
262
+ .addMethod("replay_single", replay_single, "replay_single()\n\nReplays the message with the given sequence number if it is currently in the publish store via the provided message handler.\n"
263
+ ":param handler: The message handler to call with each message.\n"
264
+ ":param sequence: The sequence number of the message to replay.\n")
265
+ .addMethod("get_unpersisted_count", get_unpersisted_count, "get_unpersisted_count()\n\nReturns the number of messages published which have not been ACK'ed by the server.\n")
266
+ .addMethod("get_lowest_unpersisted", get_lowest_unpersisted, "get_lowest_unpersisted()\n\nReturns the sequence number of the oldest message in the publish store.\n")
267
+ .addMethod("get_last_persisted", get_last_persisted, "get_last_persisted()\n\nReturns the sequence number of last message ACK'ed by the server.\n")
268
+ .addMethod("set_resize_handler", set_resize_handler, "set_resize_handler()\n\nSets the object to call when the store needs to resize.\n")
269
+ .createType()
270
+ .registerType("HybridPublishStore", module_);
271
+
272
+ }
273
+
274
+ } // namespace hybridpublishstore
275
+ } // namespace ampspy
@@ -36,20 +36,34 @@ namespace ampspy
36
36
  namespace memorypublishstore
37
37
  {
38
38
  // def __init__(self, name):
39
- static int _ctor(obj* self, PyObject* args, PyObject* kwds)
39
+ static void* __ctor(obj* self, PyObject* args, PyObject* kwds)
40
40
  {
41
41
  int numBlocks = -1;
42
42
  PyObject* value = NULL;
43
43
  if (!PyArg_ParseTuple(args, "|IO!", &numBlocks, &PyBool_Type, &value))
44
44
  {
45
- return -1;
45
+ return NULL;
46
46
  }
47
47
  if (numBlocks <=0 )
48
48
  {
49
49
  numBlocks = 10000;
50
50
  }
51
51
  bool errorOnPublishGap = value && value == Py_True;
52
- self->impl = new Store(new MemoryPublishStore(numBlocks, errorOnPublishGap));
52
+ try
53
+ {
54
+ UNLOCKGIL;
55
+ self->impl = new Store(new MemoryPublishStore(numBlocks, errorOnPublishGap));
56
+ } DISPATCH_EXCEPTION;
57
+ self->resizeHandler = NULL;
58
+ return (void*)self;
59
+ }
60
+
61
+ static int _ctor(obj* self, PyObject* args, PyObject* kwds)
62
+ {
63
+ if (__ctor(self, args, kwds) == NULL)
64
+ {
65
+ return -1;
66
+ }
53
67
  return 0;
54
68
  }
55
69
 
@@ -59,13 +73,125 @@ namespace ampspy
59
73
  UNLOCKGIL;
60
74
  delete self->impl;
61
75
  }
76
+ self->impl = 0;
62
77
  Py_XDECREF(self->resizeHandler);
63
78
  shims::free(self);
64
79
  }
65
80
 
81
+ static PyObject* store(obj* self, PyObject* args)
82
+ {
83
+ Store* pStore = self->impl;
84
+ PyObject* pPyMessage = NULL;
85
+ if (!PyArg_ParseTuple(args, "O", &pPyMessage))
86
+ {
87
+ return NULL;
88
+ }
89
+ Message* pMessage = ((ampspy::message::obj*)pPyMessage)->pMessage;
90
+ CALL_RETURN_UINT64_T(pStore->store(*pMessage));
91
+ }
92
+
93
+ static PyObject* discard_up_to(obj* self, PyObject* args)
94
+ {
95
+ Store* pStore = self->impl;
96
+ unsigned long long seq = 0ULL;
97
+ if (!PyArg_ParseTuple(args, "K", &seq))
98
+ {
99
+ return NULL;
100
+ }
101
+ CALL_RETURN_NONE(pStore->discardUpTo(seq));
102
+ }
103
+
104
+ class PyClientStoreReplayer : public AMPS::StoreReplayer
105
+ {
106
+ PyObject* _pPyHandler;
107
+ ampspy::message::obj* _pMessage;
108
+ PyObject* _pMessageArgs;
109
+ public:
110
+ PyClientStoreReplayer(PyObject* pPyHandler)
111
+ : _pPyHandler(pPyHandler)
112
+ {
113
+ Py_INCREF(_pPyHandler);
114
+ _pMessage = (ampspy::message::obj*)_PyObject_New(
115
+ ampspy::message::message_type);
116
+ _pMessage->isOwned = false;
117
+ assert(_pMessage);
118
+ _pMessageArgs = Py_BuildValue("(O)", _pMessage);
119
+ assert(_pMessageArgs);
120
+ }
121
+
122
+ virtual void execute(Message& message_)
123
+ {
124
+ LOCKGIL;
125
+ _pMessage->pMessage = (Message*)&message_;
126
+ PyObject* result = PyObject_Call(_pPyHandler, _pMessageArgs,
127
+ (PyObject*)NULL);
128
+ if (result == NULL)
129
+ {
130
+ if (PyErr_ExceptionMatches(PyExc_SystemExit))
131
+ {
132
+ ampspy::unhandled_exception();
133
+ }
134
+ else
135
+ {
136
+ // translate amps py exception into amps cpp, throw
137
+ exc::throwError();
138
+ }
139
+ }
140
+ else
141
+ {
142
+ Py_DECREF(result);
143
+ }
144
+ }
145
+
146
+ virtual ~PyClientStoreReplayer()
147
+ {
148
+ Py_CLEAR(_pPyHandler);
149
+ Py_CLEAR(_pMessage);
150
+ Py_CLEAR(_pMessageArgs);
151
+ }
152
+ };
153
+
154
+ static PyObject* replay(obj* self, PyObject* args)
155
+ {
156
+ Store* pStore = self->impl;
157
+ PyObject* pOnMessage = NULL;
158
+ if (!PyArg_ParseTuple(args, "O", &pOnMessage))
159
+ {
160
+ return NULL;
161
+ }
162
+ PyClientStoreReplayer replayer(pOnMessage);
163
+ CALL_RETURN_NONE(pStore->replay(replayer));
164
+ }
165
+
166
+ static PyObject* replay_single(obj* self, PyObject* args)
167
+ {
168
+ Store* pStore = self->impl;
169
+ PyObject* pOnMessage = NULL;
170
+ unsigned long long seq = 0;
171
+ if (!PyArg_ParseTuple(args, "OK", &pOnMessage, &seq))
172
+ {
173
+ return NULL;
174
+ }
175
+ PyClientStoreReplayer replayer(pOnMessage);
176
+ CALL_RETURN_NONE(pStore->replaySingle(replayer, seq));
177
+ }
178
+
66
179
  static PyObject* get_unpersisted_count(obj* self, PyObject* args)
67
180
  {
68
- return PyInt_FromSize_t( self->impl->unpersistedCount() );
181
+ Store* pStore = self->impl;
182
+ CALL_RETURN_SIZE_T(pStore->unpersistedCount());
183
+ }
184
+
185
+ static PyObject* get_lowest_unpersisted(obj* self, PyObject* args)
186
+ {
187
+ Store* pStore = self->impl;
188
+ CALL_RETURN_UINT64_T(pStore->getLowestUnpersisted());
189
+ }
190
+
191
+ static PyObject* get_last_persisted(obj* self, PyObject* args)
192
+ {
193
+ Store* pStore = self->impl;
194
+ CALL_RETURN_UINT64_T(pStore->getLastPersisted());
69
195
  }
70
196
 
71
197
  bool
@@ -141,7 +267,18 @@ namespace ampspy
141
267
  .setDoc(memorypublishstore_class_doc)
142
268
  .setBaseType()
143
269
  .notCopyable()
270
+ .addMethod("store", store, "store()\n\nStore the provided message into the publish store. Returns the sequence number that should be assigned to the message.\n\n"
271
+ ":param message: The message to put into the store.\n")
272
+ .addMethod("discard_up_to", discard_up_to, "discard_up_to()\n\nDiscard all messages in the publish store with a sequence number less than or equal to the provided argument.\n\n"
273
+ ":param sequence: The highest sequence number to discard.\n")
274
+ .addMethod("replay", replay, "replay()\n\nReplays all messages currently in the publish store via the provided message handler.\n"
275
+ ":param handler: The message handler to call with each message.\n")
276
+ .addMethod("replay_single", replay_single, "replay_single()\n\nReplays the message with the given sequence number if it is currently in the publish store via the provided message handler.\n"
277
+ ":param handler: The message handler to call with each message.\n"
278
+ ":param sequence: The sequence number of the message to replay.\n")
144
279
  .addMethod("get_unpersisted_count", get_unpersisted_count, "get_unpersisted_count()\n\nReturns the number of messages published which have not been ACK'ed by the server.\n")
280
+ .addMethod("get_lowest_unpersisted", get_lowest_unpersisted, "get_lowest_unpersisted()\n\nReturns the sequence number of the oldest message in the publish store.\n")
281
+ .addMethod("get_last_persisted", get_last_persisted, "get_last_persisted()\n\nReturns the sequence number of last message ACK'ed by the server.\n")
145
282
  .addMethod("set_resize_handler", set_resize_handler, "set_resize_handler()\n\nSets the object to call when the store needs to resize.\n")
146
283
  .addMethod("get_error_on_publish_gap", get_error_on_publish_gap, "get_error_on_publish_gap()\n\nReturns If true, PublishStoreGapException can be thrown\n"
147
284
  " by the client publish store if the client logs onto a server that\n"
@@ -96,6 +96,14 @@ namespace ampspy
96
96
  AMPS_FETCH_AND_8((&_flags), ~ms_is_active);
97
97
  AMPS_FETCH_OR_8((&_flags), ms_is_disconnected_in_progress);
98
98
  }
99
+ else if (newState_ == AMPS::ConnectionStateListener::Connected
100
+ && _commandId.empty()
101
+ && _subId.empty()
102
+ && _queryId.empty())
103
+ {
104
+ AMPS_FETCH_OR_8((&_flags), ms_is_active);
105
+ AMPS_FETCH_AND_8((&_flags), ~ms_is_disconnected_in_progress);
106
+ }
99
107
  }
100
108
 
101
109
  void unsubscribe(const std::string& id_, bool active_ = false)
@@ -140,11 +140,11 @@ namespace ampspy
140
140
  .setDoc(nvfixbuilder_class_doc)
141
141
  .notCopyable()
142
142
  .addMethod("append", append,
143
- "append(tag,value,(optional)offset,(optional)length)\n\nAppends tag=value to self.\n\n"
143
+ "append(tag,value,offset(optional),length(optional))\n\nAppends ``tag=value`` to self.\n\n"
144
144
  ":param tag: The tag to use.\n:type tag: str\n"
145
145
  ":param value: The value for the given tag.\n:type value: str\n"
146
- ":param offset: Optional. The offset into value at which the value actually starts.\n:type offset: int\n"
147
- ":param length: Optional. The length of the actual value within value. Only valid and required if offset is also provided.\n:type tag: int\n")
146
+ ":param offset: The offset into value at which the value actually starts. *Optional.*\n:type offset: int\n"
147
+ ":param length: The length of the actual value within value. *Optional.* Only valid and required if offset is also provided.\n:type length: int\n")
148
148
  .addMethod("get_string", get_string,
149
149
  "get_string()\n\n"
150
150
  "Called to get the string NVFIX message.\n\n"
@@ -23,12 +23,12 @@
23
23
  //
24
24
  ////////////////////////////////////////////////////////////////////////////
25
25
 
26
- static const char* nvfixbuilder_class_doc = R"docstring(
26
+ static const char* nvfixbuilder_class_doc = R"docstring(NVFIXBuilder(delimiter)
27
27
  Convenience class for easily creating NVFIX strings.
28
28
 
29
- Constructor arguments:
29
+ **Constructor Arguments:**
30
30
 
31
- :param delimiter: The delimiter to use between NVFIX fields. Defaults to \\\\x01 if no delimiter is provided.
31
+ :param delimiter: The delimiter to use between NVFIX fields. Defaults to \\x01 if no delimiter is provided.
32
32
  )docstring";
33
33
 
34
34
 
@@ -23,12 +23,12 @@
23
23
  //
24
24
  ////////////////////////////////////////////////////////////////////////////
25
25
 
26
- static const char* nvfixshredder_class_doc = R"docstring(
26
+ static const char* nvfixshredder_class_doc = R"docstring(NVFIXShredder(delimiter)
27
27
  Convenience class for easily processing NVFIX strings.
28
28
 
29
- Constructor arguments:
29
+ **Constructor Arguments:**
30
30
 
31
- :param separator: The delimiter to expect between NVFIX fields. Defaults to \\\\x01 if no delimiter is provided.
31
+ :param delimiter: The delimiter to expect between NVFIX fields. Defaults to \\x01 if no delimiter is provided.
32
32
  )docstring";
33
33
 
34
34
 
@@ -45,12 +45,16 @@ namespace ampspy
45
45
  return NULL;
46
46
  }
47
47
  bool errorOnPublishGap = value && value == Py_True;
48
+
49
+ std::string fileName(filename);
48
50
  self->impl = 0;
49
51
  try
50
52
  {
51
- self->impl = new PublishStore(filename, errorOnPublishGap);
53
+ UNLOCKGIL;
54
+ self->impl = new PublishStore(fileName, errorOnPublishGap);
52
55
  self->impl->addRef();
53
56
  } DISPATCH_EXCEPTION;
57
+ self->resizeHandler = NULL;
54
58
  return (void*)filename;
55
59
  }
56
60
 
@@ -67,6 +71,7 @@ namespace ampspy
67
71
  {
68
72
  if (self->impl)
69
73
  {
74
+ UNLOCKGIL;
70
75
  self->impl->removeRef();
71
76
  }
72
77
  self->impl = 0;
@@ -74,9 +79,119 @@ namespace ampspy
74
79
  shims::free(self);
75
80
  }
76
81
 
82
+ static PyObject* store(obj* self, PyObject* args)
83
+ {
84
+ PublishStore* pStore = self->impl;
85
+ PyObject* pPyMessage = NULL;
86
+ if (!PyArg_ParseTuple(args, "O", &pPyMessage))
87
+ {
88
+ return NULL;
89
+ }
90
+ Message* pMessage = ((ampspy::message::obj*)pPyMessage)->pMessage;
91
+ CALL_RETURN_UINT64_T(pStore->store(*pMessage));
92
+ }
93
+
94
+ static PyObject* discard_up_to(obj* self, PyObject* args)
95
+ {
96
+ PublishStore* pStore = self->impl;
97
+ unsigned long long seq = 0ULL;
98
+ if (!PyArg_ParseTuple(args, "K", &seq))
99
+ {
100
+ return NULL;
101
+ }
102
+ CALL_RETURN_NONE(pStore->discardUpTo((amps_uint64_t)seq));
103
+ }
104
+
105
+ class PyClientStoreReplayer : public StoreReplayer
106
+ {
107
+ PyObject* _pPyHandler;
108
+ ampspy::message::obj* _pMessage;
109
+ PyObject* _pMessageArgs;
110
+ public:
111
+ PyClientStoreReplayer(PyObject* pPyHandler)
112
+ : _pPyHandler(pPyHandler)
113
+ {
114
+ Py_INCREF(_pPyHandler);
115
+ _pMessage = (ampspy::message::obj*)_PyObject_New(
116
+ ampspy::message::message_type);
117
+ _pMessage->isOwned = false;
118
+ assert(_pMessage);
119
+ _pMessageArgs = Py_BuildValue("(O)", _pMessage);
120
+ assert(_pMessageArgs);
121
+ }
122
+
123
+ virtual void execute(Message& message_)
124
+ {
125
+ LOCKGIL;
126
+ _pMessage->pMessage = (Message*)&message_;
127
+ PyObject* result = PyObject_Call(_pPyHandler, _pMessageArgs,
128
+ (PyObject*)NULL);
129
+ if (result == NULL)
130
+ {
131
+ if (PyErr_ExceptionMatches(PyExc_SystemExit))
132
+ {
133
+ ampspy::unhandled_exception();
134
+ }
135
+ else
136
+ {
137
+ // translate amps py exception into amps cpp, throw
138
+ exc::throwError();
139
+ }
140
+ }
141
+ else
142
+ {
143
+ Py_DECREF(result);
144
+ }
145
+ }
146
+
147
+ virtual ~PyClientStoreReplayer()
148
+ {
149
+ Py_CLEAR(_pPyHandler);
150
+ Py_CLEAR(_pMessage);
151
+ Py_CLEAR(_pMessageArgs);
152
+ }
153
+ };
154
+
155
+ static PyObject* replay(obj* self, PyObject* args)
156
+ {
157
+ PublishStore* pStore = self->impl;
158
+ PyObject* pOnMessage = NULL;
159
+ if (!PyArg_ParseTuple(args, "O", &pOnMessage))
160
+ {
161
+ return NULL;
162
+ }
163
+ PyClientStoreReplayer replayer(pOnMessage);
164
+ CALL_RETURN_NONE(pStore->replay(replayer));
165
+ }
166
+
167
+ static PyObject* replay_single(obj* self, PyObject* args)
168
+ {
169
+ PublishStore* pStore = self->impl;
170
+ PyObject* pOnMessage = NULL;
171
+ unsigned long long seq = 0;
172
+ if (!PyArg_ParseTuple(args, "OK", &pOnMessage, &seq))
173
+ {
174
+ return NULL;
175
+ }
176
+ PyClientStoreReplayer replayer(pOnMessage);
177
+ CALL_RETURN_NONE(pStore->replaySingle(replayer, seq));
178
+ }
179
+
77
180
  static PyObject* get_unpersisted_count(obj* self, PyObject* args)
78
181
  {
79
- return PyInt_FromSize_t( self->impl->unpersistedCount() );
182
+ CALL_RETURN_SIZE_T(self->impl->unpersistedCount());
183
+ }
184
+
185
+ static PyObject* get_lowest_unpersisted(obj* self, PyObject* args)
186
+ {
187
+ PublishStore* pStore = self->impl;
188
+ CALL_RETURN_UINT64_T(pStore->getLowestUnpersisted());
189
+ }
190
+
191
+ static PyObject* get_last_persisted(obj* self, PyObject* args)
192
+ {
193
+ PublishStore* pStore = self->impl;
194
+ CALL_RETURN_UINT64_T(pStore->getLastPersisted());
80
195
  }
81
196
 
82
197
  static PyObject* truncate_on_close(obj* self, PyObject* args)
@@ -164,7 +279,18 @@ namespace ampspy
164
279
  .setDoc("AMPS PublishStore Object\n\n"
165
280
  " 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\n"
166
281
  " 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.\n")
282
+ .addMethod("store", store, "store()\n\nStore the provided message into the publish store. Returns the sequence number that should be assigned to the message.\n\n"
283
+ ":param message: The message to put into the store.\n")
284
+ .addMethod("discard_up_to", discard_up_to, "discard_up_to()\n\nDiscard all messages in the publish store with a sequence number less than or equal to the provided argument.\n\n"
285
+ ":param sequence: The highest sequence number to discard.\n")
286
+ .addMethod("replay", replay, "replay()\n\nReplays all messages currently in the publish store via the provided message handler.\n"
287
+ ":param handler: The message handler to call with each message.\n")
288
+ .addMethod("replay_single", replay_single, "replay_single()\n\nReplays the message with the given sequence number if it is currently in the publish store via the provided message handler.\n"
289
+ ":param handler: The message handler to call with each message.\n"
290
+ ":param sequence: The sequence number of the message to replay.\n")
167
291
  .addMethod("get_unpersisted_count", get_unpersisted_count, "get_unpersisted_count()\n\nReturns the number of messages published which have not been ACK'ed by the server.\n")
292
+ .addMethod("get_lowest_unpersisted", get_lowest_unpersisted, "get_lowest_unpersisted()\n\nReturns the sequence number of the oldest message in the publish store.\n")
293
+ .addMethod("get_last_persisted", get_last_persisted, "get_last_persisted()\n\nReturns the sequence number of last message ACK'ed by the server.\n")
168
294
  .addMethod("set_resize_handler", set_resize_handler, "set_resize_handler()\n\nSets the object to call when the store needs to resize.\n")
169
295
  .addMethod("truncate_on_close", truncate_on_close, "truncate_on_close()\n\nSets if the PublishStore should truncate the file to initial capacity when it closes if it is empty.\n")
170
296
  .addMethod("get_error_on_publish_gap", get_error_on_publish_gap, "get_error_on_publish_gap()\n\nReturns If true, PublishStoreGapException can be thrown\n"