amps-python-client 5.3.4.1__zip → 5.3.4.2__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 (917) hide show
  1. amps-python-client-5.3.4.2/PKG-INFO +112 -0
  2. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  3. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  4. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  5. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  6. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  7. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  8. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  9. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  10. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  11. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  12. amps-python-client-5.3.4.2/docs/command-reference/doctrees/environment.pickle +0 -0
  13. amps-python-client-5.3.4.2/docs/command-reference/doctrees/index.doctree +0 -0
  14. amps-python-client-5.3.4.2/docs/command-reference/html/.buildinfo +4 -0
  15. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
  16. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
  17. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
  18. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
  19. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
  20. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
  21. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
  22. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
  23. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
  24. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
  25. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/index.rst.txt +36 -0
  26. amps-python-client-5.3.4.2/docs/command-reference/html/_static/custom.css +161 -0
  27. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/ack-messages.html +95 -0
  28. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/content-messages.html +95 -0
  29. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/intro.html +95 -0
  30. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/logon.html +95 -0
  31. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/protocol-reference.html +93 -0
  32. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/publishing.html +95 -0
  33. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-delimiters.html +95 -0
  34. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-subscribe.html +95 -0
  35. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/removing.html +95 -0
  36. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/utilities.html +95 -0
  37. amps-python-client-5.3.4.2/docs/command-reference/html/genindex.html +97 -0
  38. amps-python-client-5.3.4.2/docs/command-reference/html/index.html +98 -0
  39. amps-python-client-5.3.4.2/docs/command-reference/html/objects.inv +6 -0
  40. amps-python-client-5.3.4.2/docs/command-reference/html/search.html +107 -0
  41. amps-python-client-5.3.4.2/docs/command-reference/html/searchindex.js +1 -0
  42. amps-python-client-5.3.4.2/docs/html/.buildinfo +4 -0
  43. amps-python-client-5.3.4.2/docs/html/code.html +6616 -0
  44. amps-python-client-5.3.4.2/docs/html/genindex.html +1363 -0
  45. amps-python-client-5.3.4.2/docs/html/index.html +131 -0
  46. amps-python-client-5.3.4.2/docs/html/objects.inv +0 -0
  47. amps-python-client-5.3.4.2/docs/html/py-modindex.html +111 -0
  48. amps-python-client-5.3.4.2/docs/html/search.html +107 -0
  49. amps-python-client-5.3.4.2/docs/html/searchindex.js +1 -0
  50. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  51. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  52. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  53. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  54. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/deltas.doctree +0 -0
  55. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  56. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  57. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/first-program.doctree +0 -0
  58. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  59. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/installing.doctree +0 -0
  60. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/introduction.doctree +0 -0
  61. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  62. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  63. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/queues.doctree +0 -0
  64. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/sow.doctree +0 -0
  65. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  66. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/utilities.doctree +0 -0
  67. amps-python-client-5.3.4.2/docs/python/doctrees/environment.pickle +0 -0
  68. amps-python-client-5.3.4.2/docs/python/doctrees/index.doctree +0 -0
  69. amps-python-client-5.3.4.2/docs/python/html/.buildinfo +4 -0
  70. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
  71. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
  72. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
  73. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
  74. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
  75. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
  76. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
  77. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
  78. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
  79. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
  80. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
  81. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
  82. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
  83. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
  84. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
  85. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
  86. amps-python-client-5.3.4.2/docs/python/html/_static/custom.css +161 -0
  87. amps-python-client-5.3.4.2/docs/python/html/chapters/advanced-topics.html +447 -0
  88. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-compiler-list.html +92 -0
  89. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-feature-table.html +156 -0
  90. amps-python-client-5.3.4.2/docs/python/html/chapters/creating-commands.html +2882 -0
  91. amps-python-client-5.3.4.2/docs/python/html/chapters/deltas.html +169 -0
  92. amps-python-client-5.3.4.2/docs/python/html/chapters/error-handling.html +745 -0
  93. amps-python-client-5.3.4.2/docs/python/html/chapters/exceptions.html +266 -0
  94. amps-python-client-5.3.4.2/docs/python/html/chapters/first-program.html +526 -0
  95. amps-python-client-5.3.4.2/docs/python/html/chapters/high-availability.html +1017 -0
  96. amps-python-client-5.3.4.2/docs/python/html/chapters/installing.html +264 -0
  97. amps-python-client-5.3.4.2/docs/python/html/chapters/introduction.html +245 -0
  98. amps-python-client-5.3.4.2/docs/python/html/chapters/moving-from-python-lite.html +118 -0
  99. amps-python-client-5.3.4.2/docs/python/html/chapters/performance-tips.html +499 -0
  100. amps-python-client-5.3.4.2/docs/python/html/chapters/queues.html +352 -0
  101. amps-python-client-5.3.4.2/docs/python/html/chapters/sow.html +383 -0
  102. amps-python-client-5.3.4.2/docs/python/html/chapters/subscriptions.html +535 -0
  103. amps-python-client-5.3.4.2/docs/python/html/chapters/utilities.html +302 -0
  104. amps-python-client-5.3.4.2/docs/python/html/genindex.html +351 -0
  105. amps-python-client-5.3.4.2/docs/python/html/index.html +382 -0
  106. amps-python-client-5.3.4.2/docs/python/html/objects.inv +0 -0
  107. amps-python-client-5.3.4.2/docs/python/html/search.html +107 -0
  108. amps-python-client-5.3.4.2/docs/python/html/searchindex.js +1 -0
  109. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  110. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  111. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/environment.pickle +0 -0
  112. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/index.doctree +0 -0
  113. amps-python-client-5.3.4.2/docs/python-quickstart/html/.buildinfo +4 -0
  114. amps-python-client-5.3.4.2/docs/python-quickstart/html/_static/custom.css +161 -0
  115. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/crankitup.html +271 -0
  116. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/equipment.html +105 -0
  117. amps-python-client-5.3.4.2/docs/python-quickstart/html/genindex.html +97 -0
  118. amps-python-client-5.3.4.2/docs/python-quickstart/html/index.html +381 -0
  119. amps-python-client-5.3.4.2/docs/python-quickstart/html/objects.inv +0 -0
  120. amps-python-client-5.3.4.2/docs/python-quickstart/html/search.html +107 -0
  121. amps-python-client-5.3.4.2/docs/python-quickstart/html/searchindex.js +1 -0
  122. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  123. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  124. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  125. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  126. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  127. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  128. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  129. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  130. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  131. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  132. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  133. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  134. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  135. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  136. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  137. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  138. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  139. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  140. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  141. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  142. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  143. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  144. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  145. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  146. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  147. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  148. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  149. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  150. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  151. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  152. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  153. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  154. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  155. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  156. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  157. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  158. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  159. amps-python-client-5.3.4.2/docs/user-guide/doctrees/environment.pickle +0 -0
  160. amps-python-client-5.3.4.2/docs/user-guide/doctrees/index.doctree +0 -0
  161. amps-python-client-5.3.4.2/docs/user-guide/html/.buildinfo +4 -0
  162. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
  163. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
  164. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
  165. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
  166. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
  167. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
  168. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
  169. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
  170. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
  171. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
  172. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
  173. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
  174. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
  175. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
  176. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
  177. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
  178. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
  179. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
  180. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
  181. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
  182. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
  183. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
  184. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
  185. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
  186. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
  187. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
  188. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
  189. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
  190. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
  191. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
  192. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
  193. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
  194. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
  195. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
  196. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
  197. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
  198. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/index.rst.txt +62 -0
  199. amps-python-client-5.3.4.2/docs/user-guide/html/_static/custom.css +161 -0
  200. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/acks.html +94 -0
  201. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/actions.html +94 -0
  202. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps-statistics.html +94 -0
  203. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_expressions.html +94 -0
  204. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_functions.html +94 -0
  205. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
  206. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
  207. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/conflated_topics.html +94 -0
  208. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/constructing-fields.html +94 -0
  209. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/daemon.html +94 -0
  210. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/delta.html +94 -0
  211. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/distribution.html +94 -0
  212. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/enrichment.html +94 -0
  213. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/events.html +94 -0
  214. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/file_format_versions.html +94 -0
  215. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/glossary.html +92 -0
  216. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/ha.html +94 -0
  217. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
  218. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/intro.html +94 -0
  219. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/logging.html +94 -0
  220. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/messageTypes.html +94 -0
  221. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/monitoring.html +94 -0
  222. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/oof.html +94 -0
  223. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/operation.html +94 -0
  224. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/pub_sub.html +94 -0
  225. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/queues.html +94 -0
  226. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/replication.html +94 -0
  227. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/securing.html +94 -0
  228. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow.html +94 -0
  229. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow_queries.html +94 -0
  230. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/spark.html +819 -0
  231. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/transports.html +94 -0
  232. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/troubleshooting.html +94 -0
  233. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/txlog.html +94 -0
  234. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/usecases.html +94 -0
  235. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/utilities.html +94 -0
  236. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/views.html +94 -0
  237. amps-python-client-5.3.4.2/docs/user-guide/html/genindex.html +133 -0
  238. amps-python-client-5.3.4.2/docs/user-guide/html/index.html +96 -0
  239. amps-python-client-5.3.4.2/docs/user-guide/html/objects.inv +0 -0
  240. amps-python-client-5.3.4.2/docs/user-guide/html/search.html +106 -0
  241. amps-python-client-5.3.4.2/docs/user-guide/html/searchindex.js +1 -0
  242. amps-python-client-5.3.4.2/include/ampspy_bookmarkstore.hpp +63 -0
  243. amps-python-client-5.3.4.2/include/ampspy_compat.h +63 -0
  244. amps-python-client-5.3.4.2/include/ampspy_defs.hpp +181 -0
  245. amps-python-client-5.3.4.2/include/ampspy_recoverypointadapter.hpp +52 -0
  246. amps-python-client-5.3.4.2/include/ampspy_shims.hpp +113 -0
  247. amps-python-client-5.3.4.2/include/ampspy_type_object.hpp +242 -0
  248. amps-python-client-5.3.4.2/include/ampspy_types.hpp +1139 -0
  249. amps-python-client-5.3.4.2/include/ampspyver.h +30 -0
  250. amps-python-client-5.3.4.2/index.html +66 -0
  251. amps-python-client-5.3.4.2/samples/AMPSConsolePublisher.py +59 -0
  252. amps-python-client-5.3.4.2/samples/AMPSConsoleSubscriber.py +63 -0
  253. amps-python-client-5.3.4.2/samples/AMPSFIXBuilderPublisher.py +71 -0
  254. amps-python-client-5.3.4.2/samples/AMPSFIXShredderSubscriber.py +69 -0
  255. amps-python-client-5.3.4.2/samples/AMPSNVFIXBuilderPublisher.py +71 -0
  256. amps-python-client-5.3.4.2/samples/AMPSNVFIXShredderSubscriber.py +67 -0
  257. amps-python-client-5.3.4.2/samples/AMPSPublishForReplay.py +81 -0
  258. amps-python-client-5.3.4.2/samples/AMPSQueueConsumer.py +69 -0
  259. amps-python-client-5.3.4.2/samples/AMPSQueuePublisher.py +59 -0
  260. amps-python-client-5.3.4.2/samples/AMPSSOWConsolePublisher.py +67 -0
  261. amps-python-client-5.3.4.2/samples/AMPSSOWConsoleSubscriber.py +77 -0
  262. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
  263. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
  264. amps-python-client-5.3.4.2/samples/AMPSSubscribeForReplay.py +128 -0
  265. amps-python-client-5.3.4.2/samples/AMPSUpdateForOOF.py +123 -0
  266. amps-python-client-5.3.4.2/samples/CompositeMessagePublisher.py +84 -0
  267. amps-python-client-5.3.4.2/samples/CompositeMessageSubscriber.py +87 -0
  268. amps-python-client-5.3.4.2/samples/RandomServerChooser.py +66 -0
  269. amps-python-client-5.3.4.2/samples/sample.xml +335 -0
  270. amps-python-client-5.3.4.2/setup.py +210 -0
  271. amps-python-client-5.3.4.2/setup_amps.py +94 -0
  272. amps-python-client-5.3.4.2/src/ampspy_shims.cpp +214 -0
  273. amps-python-client-5.3.4.2/src/ampspy_type_object.cpp +495 -0
  274. amps-python-client-5.3.4.2/src/authenticator.cpp +128 -0
  275. amps-python-client-5.3.4.2/src/bookmarkstore.cpp +246 -0
  276. amps-python-client-5.3.4.2/src/client.cpp +2648 -0
  277. amps-python-client-5.3.4.2/src/client_docs.h +956 -0
  278. amps-python-client-5.3.4.2/src/cmessagehandler.cpp +161 -0
  279. amps-python-client-5.3.4.2/src/command.cpp +164 -0
  280. amps-python-client-5.3.4.2/src/command_docs.h +269 -0
  281. amps-python-client-5.3.4.2/src/compositemessagebuilder.cpp +113 -0
  282. amps-python-client-5.3.4.2/src/compositemessageparser.cpp +151 -0
  283. amps-python-client-5.3.4.2/src/conflatingrecoverypointadapter.cpp +197 -0
  284. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockPublishStore.hpp +2053 -0
  285. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockStore.hpp +677 -0
  286. amps-python-client-5.3.4.2/src/cpp/include/amps/BookmarkStore.hpp +542 -0
  287. amps-python-client-5.3.4.2/src/cpp/include/amps/Buffer.hpp +214 -0
  288. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
  289. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
  290. amps-python-client-5.3.4.2/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
  291. amps-python-client-5.3.4.2/src/cpp/include/amps/Field.hpp +719 -0
  292. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClient.hpp +370 -0
  293. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClientImpl.hpp +460 -0
  294. amps-python-client-5.3.4.2/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
  295. amps-python-client-5.3.4.2/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
  296. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
  297. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapStoreBuffer.hpp +290 -0
  298. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
  299. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
  300. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryStoreBuffer.hpp +244 -0
  301. amps-python-client-5.3.4.2/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
  302. amps-python-client-5.3.4.2/src/cpp/include/amps/Message.hpp +1819 -0
  303. amps-python-client-5.3.4.2/src/cpp/include/amps/MessageRouter.hpp +647 -0
  304. amps-python-client-5.3.4.2/src/cpp/include/amps/PublishStore.hpp +158 -0
  305. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
  306. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
  307. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
  308. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
  309. amps-python-client-5.3.4.2/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
  310. amps-python-client-5.3.4.2/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
  311. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooser.hpp +145 -0
  312. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
  313. amps-python-client-5.3.4.2/src/cpp/include/amps/amps.h +803 -0
  314. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_impl.h +208 -0
  315. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_ssl.h +78 -0
  316. amps-python-client-5.3.4.2/src/cpp/include/amps/ampscrc.hpp +210 -0
  317. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsplusplus.hpp +8850 -0
  318. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsuri.h +84 -0
  319. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h +41 -0
  320. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h.in +41 -0
  321. amps-python-client-5.3.4.2/src/cpp/include/amps/constants.hpp +194 -0
  322. amps-python-client-5.3.4.2/src/cpp/include/amps/util.hpp +1722 -0
  323. amps-python-client-5.3.4.2/src/cpp/src/amps_protocol.c +693 -0
  324. amps-python-client-5.3.4.2/src/cpp/src/amps_ssl.c +489 -0
  325. amps-python-client-5.3.4.2/src/cpp/src/atfork.c +451 -0
  326. amps-python-client-5.3.4.2/src/cpp/src/client.c +498 -0
  327. amps-python-client-5.3.4.2/src/cpp/src/message.c +837 -0
  328. amps-python-client-5.3.4.2/src/cpp/src/message_generated.h +611 -0
  329. amps-python-client-5.3.4.2/src/cpp/src/tcp.c +1517 -0
  330. amps-python-client-5.3.4.2/src/cpp/src/tcps.c +1885 -0
  331. amps-python-client-5.3.4.2/src/cpp/src/transports.c +129 -0
  332. amps-python-client-5.3.4.2/src/cpp/src/unix.c +1002 -0
  333. amps-python-client-5.3.4.2/src/cpp/src/uri.c +301 -0
  334. amps-python-client-5.3.4.2/src/exponentialdelaystrategy.cpp +137 -0
  335. amps-python-client-5.3.4.2/src/failedwritehandler.cpp +116 -0
  336. amps-python-client-5.3.4.2/src/fixbuilder.cpp +146 -0
  337. amps-python-client-5.3.4.2/src/fixeddelaystrategy.cpp +114 -0
  338. amps-python-client-5.3.4.2/src/fixshredder.cpp +105 -0
  339. amps-python-client-5.3.4.2/src/fixshredder_docs.h +38 -0
  340. amps-python-client-5.3.4.2/src/haclient.cpp +691 -0
  341. amps-python-client-5.3.4.2/src/haclient_docs.h +186 -0
  342. amps-python-client-5.3.4.2/src/hybridpublishstore.cpp +137 -0
  343. amps-python-client-5.3.4.2/src/hybridpublishstore_docs.h +31 -0
  344. amps-python-client-5.3.4.2/src/memorybookmarkstore.cpp +373 -0
  345. amps-python-client-5.3.4.2/src/memorybookmarkstore_docs.h +39 -0
  346. amps-python-client-5.3.4.2/src/memorypublishstore.cpp +160 -0
  347. amps-python-client-5.3.4.2/src/memorypublishstore_docs.h +32 -0
  348. amps-python-client-5.3.4.2/src/message.cpp +765 -0
  349. amps-python-client-5.3.4.2/src/message_docs.h +306 -0
  350. amps-python-client-5.3.4.2/src/messagestream.cpp +630 -0
  351. amps-python-client-5.3.4.2/src/messagestream_docs.h +45 -0
  352. amps-python-client-5.3.4.2/src/mmapbookmarkstore.cpp +422 -0
  353. amps-python-client-5.3.4.2/src/nvfixbuilder.cpp +160 -0
  354. amps-python-client-5.3.4.2/src/nvfixbuilder_docs.h +35 -0
  355. amps-python-client-5.3.4.2/src/nvfixshredder.cpp +99 -0
  356. amps-python-client-5.3.4.2/src/nvfixshredder_docs.h +43 -0
  357. amps-python-client-5.3.4.2/src/publishstore.cpp +183 -0
  358. amps-python-client-5.3.4.2/src/raw_wrapper.cpp +765 -0
  359. amps-python-client-5.3.4.2/src/reason.cpp +71 -0
  360. amps-python-client-5.3.4.2/src/recoverypoint.cpp +135 -0
  361. amps-python-client-5.3.4.2/src/recoverypointadapter.cpp +171 -0
  362. amps-python-client-5.3.4.2/src/ringbookmarkstore.cpp +360 -0
  363. amps-python-client-5.3.4.2/src/serverchooser.cpp +245 -0
  364. amps-python-client-5.3.4.2/src/serverchooser_docs.h +41 -0
  365. amps-python-client-5.3.4.2/src/sowrecoverypointadapter.cpp +248 -0
  366. amps-python-client-5.3.4.2/src/store.cpp +62 -0
  367. amps-python-client-5.3.4.2/src/versioninfo.cpp +175 -0
  368. amps-python-client-5.3.4.1/PKG-INFO +0 -112
  369. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  370. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  371. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  372. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  373. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  374. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  375. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  376. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  377. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  378. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  379. amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
  380. amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
  381. amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
  382. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
  383. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
  384. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
  385. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
  386. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
  387. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
  388. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
  389. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
  390. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
  391. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
  392. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
  393. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
  394. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
  395. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
  396. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
  397. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
  398. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
  399. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
  400. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
  401. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
  402. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
  403. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
  404. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
  405. amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
  406. amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
  407. amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
  408. amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
  409. amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
  410. amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
  411. amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
  412. amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
  413. amps-python-client-5.3.4.1/docs/html/index.html +0 -131
  414. amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
  415. amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
  416. amps-python-client-5.3.4.1/docs/html/search.html +0 -107
  417. amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
  418. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  419. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  420. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  421. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  422. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
  423. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  424. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  425. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
  426. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  427. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
  428. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
  429. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  430. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  431. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
  432. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
  433. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  434. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
  435. amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
  436. amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
  437. amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
  438. amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
  439. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
  440. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
  441. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
  442. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
  443. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
  444. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
  445. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
  446. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
  447. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
  448. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
  449. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
  450. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
  451. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
  452. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
  453. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
  454. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
  455. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
  456. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
  457. amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
  458. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
  459. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
  460. amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
  461. amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
  462. amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
  463. amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
  464. amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
  465. amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
  466. amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
  467. amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
  468. amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
  469. amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
  470. amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
  471. amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
  472. amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
  473. amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
  474. amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
  475. amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
  476. amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
  477. amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
  478. amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
  479. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  480. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  481. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
  482. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
  483. amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
  484. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
  485. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
  486. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
  487. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
  488. amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
  489. amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
  490. amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
  491. amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
  492. amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
  493. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  494. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  495. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  496. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  497. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  498. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  499. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  500. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  501. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  502. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  503. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  504. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  505. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  506. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  507. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  508. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  509. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  510. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  511. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  512. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  513. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  514. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  515. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  516. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  517. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  518. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  519. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  520. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  521. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  522. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  523. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  524. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  525. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  526. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  527. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  528. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  529. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  530. amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
  531. amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
  532. amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
  533. amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
  534. amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
  535. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
  536. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
  537. amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
  538. amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
  539. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
  540. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
  541. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
  542. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
  543. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
  544. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
  545. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
  546. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
  547. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
  548. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
  549. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
  550. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
  551. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
  552. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
  553. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
  554. amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
  555. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
  556. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
  557. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
  558. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
  559. amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
  560. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
  561. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
  562. amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
  563. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
  564. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
  565. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
  566. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
  567. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
  568. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
  569. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
  570. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
  571. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
  572. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
  573. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
  574. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
  575. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
  576. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
  577. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
  578. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
  579. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
  580. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
  581. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
  582. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
  583. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
  584. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
  585. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
  586. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
  587. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
  588. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
  589. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
  590. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
  591. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
  592. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
  593. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
  594. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
  595. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
  596. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
  597. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
  598. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
  599. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
  600. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
  601. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
  602. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
  603. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
  604. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
  605. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
  606. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
  607. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
  608. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
  609. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
  610. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
  611. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
  612. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
  613. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
  614. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
  615. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
  616. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
  617. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
  618. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
  619. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
  620. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
  621. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
  622. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
  623. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
  624. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
  625. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
  626. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
  627. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
  628. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
  629. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
  630. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
  631. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
  632. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
  633. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
  634. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
  635. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
  636. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
  637. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
  638. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
  639. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
  640. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
  641. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
  642. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
  643. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
  644. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
  645. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
  646. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
  647. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
  648. amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
  649. amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
  650. amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
  651. amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
  652. amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
  653. amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
  654. amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
  655. amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
  656. amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
  657. amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
  658. amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
  659. amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
  660. amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
  661. amps-python-client-5.3.4.1/index.html +0 -66
  662. amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
  663. amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
  664. amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
  665. amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
  666. amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
  667. amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
  668. amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
  669. amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
  670. amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
  671. amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
  672. amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
  673. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
  674. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
  675. amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
  676. amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
  677. amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
  678. amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
  679. amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
  680. amps-python-client-5.3.4.1/samples/sample.xml +0 -335
  681. amps-python-client-5.3.4.1/setup.py +0 -209
  682. amps-python-client-5.3.4.1/setup_amps.py +0 -94
  683. amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
  684. amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
  685. amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
  686. amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
  687. amps-python-client-5.3.4.1/src/client.cpp +0 -2430
  688. amps-python-client-5.3.4.1/src/client_docs.h +0 -956
  689. amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
  690. amps-python-client-5.3.4.1/src/command.cpp +0 -164
  691. amps-python-client-5.3.4.1/src/command_docs.h +0 -194
  692. amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
  693. amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
  694. amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
  695. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
  696. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
  697. amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
  698. amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
  699. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
  700. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
  701. amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
  702. amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
  703. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
  704. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
  705. amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
  706. amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
  707. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
  708. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
  709. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
  710. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
  711. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
  712. amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
  713. amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
  714. amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
  715. amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
  716. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
  717. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
  718. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
  719. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
  720. amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
  721. amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
  722. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
  723. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
  724. amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
  725. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
  726. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
  727. amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
  728. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
  729. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
  730. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
  731. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
  732. amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
  733. amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
  734. amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
  735. amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
  736. amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
  737. amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
  738. amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
  739. amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
  740. amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
  741. amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
  742. amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
  743. amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
  744. amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
  745. amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
  746. amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
  747. amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
  748. amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
  749. amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
  750. amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
  751. amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
  752. amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
  753. amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
  754. amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
  755. amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
  756. amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
  757. amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
  758. amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
  759. amps-python-client-5.3.4.1/src/message.cpp +0 -765
  760. amps-python-client-5.3.4.1/src/message_docs.h +0 -306
  761. amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
  762. amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
  763. amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
  764. amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
  765. amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
  766. amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
  767. amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
  768. amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
  769. amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
  770. amps-python-client-5.3.4.1/src/reason.cpp +0 -71
  771. amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
  772. amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
  773. amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
  774. amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
  775. amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
  776. amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
  777. amps-python-client-5.3.4.1/src/store.cpp +0 -62
  778. amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
  779. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/HISTORY +0 -0
  780. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/LICENSE +0 -0
  781. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/README.md +0 -0
  782. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  783. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/alabaster.css +0 -0
  784. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/basic.css +0 -0
  785. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-bright.png +0 -0
  786. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-close.png +0 -0
  787. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment.png +0 -0
  788. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/doctools.js +0 -0
  789. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down-pressed.png +0 -0
  790. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down.png +0 -0
  791. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/file.png +0 -0
  792. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.png +0 -0
  793. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  794. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  795. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery.js +0 -0
  796. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/minus.png +0 -0
  797. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/plus.png +0 -0
  798. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/pygments.css +0 -0
  799. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/searchtools.js +0 -0
  800. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  801. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore.js +0 -0
  802. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up-pressed.png +0 -0
  803. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up.png +0 -0
  804. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/websupport.js +0 -0
  805. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/code.rst.txt +0 -0
  806. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/index.rst.txt +0 -0
  807. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/ajax-loader.gif +0 -0
  808. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/basic.css +0 -0
  809. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/classic.css +0 -0
  810. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-bright.png +0 -0
  811. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-close.png +0 -0
  812. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment.png +0 -0
  813. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/default.css +0 -0
  814. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/doctools.js +0 -0
  815. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down-pressed.png +0 -0
  816. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down.png +0 -0
  817. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/file.png +0 -0
  818. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery-3.1.0.js +0 -0
  819. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery.js +0 -0
  820. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/minus.png +0 -0
  821. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/plus.png +0 -0
  822. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/pygments.css +0 -0
  823. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/searchtools.js +0 -0
  824. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/sidebar.js +0 -0
  825. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore-1.3.1.js +0 -0
  826. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore.js +0 -0
  827. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up-pressed.png +0 -0
  828. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up.png +0 -0
  829. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/websupport.js +0 -0
  830. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/caution.png +0 -0
  831. {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.2/docs/python}/html/_images/caution.svg +0 -0
  832. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/connection_string.svg +0 -0
  833. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.png +0 -0
  834. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.svg +0 -0
  835. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.png +0 -0
  836. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.svg +0 -0
  837. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/warning.png +0 -0
  838. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  839. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/index.rst.txt +0 -0
  840. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/ajax-loader.gif +0 -0
  841. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/alabaster.css +0 -0
  842. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/basic.css +0 -0
  843. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-bright.png +0 -0
  844. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-close.png +0 -0
  845. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment.png +0 -0
  846. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/doctools.js +0 -0
  847. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down-pressed.png +0 -0
  848. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down.png +0 -0
  849. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/file.png +0 -0
  850. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.png +0 -0
  851. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.svg +0 -0
  852. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  853. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery.js +0 -0
  854. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/minus.png +0 -0
  855. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/plus.png +0 -0
  856. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/pygments.css +0 -0
  857. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/searchtools.js +0 -0
  858. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  859. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore.js +0 -0
  860. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up-pressed.png +0 -0
  861. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up.png +0 -0
  862. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/websupport.js +0 -0
  863. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  864. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  865. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  866. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  867. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  868. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/basic.css +0 -0
  869. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  870. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  871. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment.png +0 -0
  872. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/doctools.js +0 -0
  873. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  874. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down.png +0 -0
  875. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/file.png +0 -0
  876. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  877. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  878. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  879. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery.js +0 -0
  880. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/minus.png +0 -0
  881. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/plus.png +0 -0
  882. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/pygments.css +0 -0
  883. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  884. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  885. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore.js +0 -0
  886. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  887. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up.png +0 -0
  888. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/websupport.js +0 -0
  889. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/custom.css +0 -0
  890. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/flag_logo.svg +0 -0
  891. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  892. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  893. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/alabaster.css +0 -0
  894. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/basic.css +0 -0
  895. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-bright.png +0 -0
  896. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-close.png +0 -0
  897. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment.png +0 -0
  898. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/doctools.js +0 -0
  899. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down-pressed.png +0 -0
  900. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down.png +0 -0
  901. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/file.png +0 -0
  902. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.png +0 -0
  903. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  904. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  905. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery.js +0 -0
  906. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/minus.png +0 -0
  907. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/plus.png +0 -0
  908. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/pygments.css +0 -0
  909. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/searchtools.js +0 -0
  910. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  911. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore.js +0 -0
  912. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up-pressed.png +0 -0
  913. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up.png +0 -0
  914. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/websupport.js +0 -0
  915. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/include/amps/amps_generated.h +0 -0
  916. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/amps_protocol_generated.h +0 -0
  917. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/makefile +0 -0
@@ -1,1120 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml">
6
- <head>
7
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
-
9
- <title>13. Aggregating and Analyzing Data in AMPS &#8212; AMPS User Guide develop documentation</title>
10
-
11
- <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
12
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
13
-
14
- <script type="text/javascript">
15
- var DOCUMENTATION_OPTIONS = {
16
- URL_ROOT: '../',
17
- VERSION: 'develop',
18
- COLLAPSE_INDEX: false,
19
- FILE_SUFFIX: '.html',
20
- HAS_SOURCE: true,
21
- SOURCELINK_SUFFIX: '.txt'
22
- };
23
- </script>
24
- <script type="text/javascript" src="../_static/jquery.js"></script>
25
- <script type="text/javascript" src="../_static/underscore.js"></script>
26
- <script type="text/javascript" src="../_static/doctools.js"></script>
27
- <link rel="index" title="Index" href="../genindex.html" />
28
- <link rel="search" title="Search" href="../search.html" />
29
- <link rel="next" title="14. Transactional Messaging and Bookmark Subscriptions" href="txlog.html" />
30
- <link rel="prev" title="12. Conflated Topics" href="conflated_topics.html" />
31
-
32
- <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
33
-
34
-
35
- <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
36
-
37
- </head>
38
- <body role="document">
39
- <div class="document">
40
-
41
- <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
42
- <div class="sphinxsidebarwrapper">
43
- <p class="logo"><a href="../index.html">
44
- <img class="logo" src="../_static/flag_logo.png" alt="Logo"/>
45
- </a></p>
46
- <h3><a href="../index.html">Table Of Contents</a></h3>
47
- <ul>
48
- <li><a class="reference internal" href="#">13. Aggregating and Analyzing Data in AMPS</a><ul>
49
- <li><a class="reference internal" href="#understanding-views">Understanding Views</a></li>
50
- <li><a class="reference internal" href="#defining-views-and-aggregations">Defining Views and Aggregations</a><ul>
51
- <li><a class="reference internal" href="#single-topic-aggregation-underlyingtopic">Single Topic Aggregation: UnderlyingTopic</a></li>
52
- <li><a class="reference internal" href="#multiple-topic-aggregation-join">Multiple Topic Aggregation: Join</a></li>
53
- <li><a class="reference internal" href="#setting-the-message-type">Setting the Message Type</a></li>
54
- <li><a class="reference internal" href="#defining-projections">Defining Projections</a></li>
55
- <li><a class="reference internal" href="#data-types-and-projections">Data Types and Projections</a></li>
56
- <li><a class="reference internal" href="#grouping">Grouping</a></li>
57
- <li><a class="reference internal" href="#inline-update-conflation">Inline Update Conflation</a></li>
58
- <li><a class="reference internal" href="#filtering-single-topic-aggregations">Filtering Single Topic Aggregations</a></li>
59
- </ul>
60
- </li>
61
- <li><a class="reference internal" href="#constructing-fields">Constructing Fields</a></li>
62
- <li><a class="reference internal" href="#best-practices-for-views">Best Practices for Views</a></li>
63
- <li><a class="reference internal" href="#examples">Examples</a><ul>
64
- <li><a class="reference internal" href="#simple-aggregate-view-example">Simple Aggregate View Example</a></li>
65
- <li><a class="reference internal" href="#multiple-topic-aggregate-example">Multiple Topic Aggregate Example</a></li>
66
- <li><a class="reference internal" href="#view-projected-into-different-message-type">View Projected Into Different Message Type</a></li>
67
- </ul>
68
- </li>
69
- <li><a class="reference internal" href="#aggregated-subscriptions">Aggregated Subscriptions</a><ul>
70
- <li><a class="reference internal" href="#when-to-use-aggregated-subscriptions">When to Use Aggregated Subscriptions</a></li>
71
- <li><a class="reference internal" href="#requesting-an-aggregated-subscription">Requesting an Aggregated Subscription</a></li>
72
- <li><a class="reference internal" href="#considerations-for-aggregated-subscriptions">Considerations for Aggregated Subscriptions</a></li>
73
- </ul>
74
- </li>
75
- </ul>
76
- </li>
77
- </ul>
78
- <div class="relations">
79
- <h3>Related Topics</h3>
80
- <ul>
81
- <li><a href="../index.html">Documentation overview</a><ul>
82
- <li>Previous: <a href="conflated_topics.html" title="previous chapter">12. Conflated Topics</a></li>
83
- <li>Next: <a href="txlog.html" title="next chapter">14. Transactional Messaging and Bookmark Subscriptions</a></li>
84
- </ul></li>
85
- </ul>
86
- </div>
87
- <div id="searchbox" style="display: none" role="search">
88
- <h3>Quick search</h3>
89
- <form class="search" action="../search.html" method="get">
90
- <div><input type="text" name="q" /></div>
91
- <div><input type="submit" value="Go" /></div>
92
- <input type="hidden" name="check_keywords" value="yes" />
93
- <input type="hidden" name="area" value="default" />
94
- </form>
95
- </div>
96
- <script type="text/javascript">$('#searchbox').show(0);</script>
97
- </div>
98
- </div>
99
- <div class="documentwrapper">
100
- <div class="bodywrapper">
101
- <div class="body" role="main">
102
-
103
- <span class="target" id="index-0"></span><div class="section" id="aggregating-and-analyzing-data-in-amps">
104
- <span id="views"></span><span id="ug-views"></span><h1>13. Aggregating and Analyzing Data in AMPS<a class="headerlink" href="#aggregating-and-analyzing-data-in-amps" title="Permalink to this headline">¶</a></h1>
105
- <p>AMPS contains a high-performance aggregation engine, which can be used
106
- to project one SOW topic onto another, similar to the <code class="docutils literal"><span class="pre">CREATE</span> <span class="pre">VIEW</span></code>
107
- functionality found in most RDBMS software. The aggregation engine can
108
- join input from multiple topics, of the same or different message types,
109
- and can produce output in different message types.</p>
110
- <p>View topics are part of the AMPS SOW, which means that
111
- views support delta subscriptions and out of focus (OOF) tracking. A
112
- view can also be used as the underlying topic for another view.</p>
113
- <p>In addition, for the limited cases where a view is not practical, AMPS
114
- allows an individual subscription to request aggregation and projection
115
- of a single SOW topic.</p>
116
- <p>Notice that the features described in this chapter are designed for cases
117
- where an application needs to aggregate data across messages or to perform
118
- a calculation on an individual message that should not be preserved as a
119
- part of that message.</p>
120
- <p>To modify a message as it is published to AMPS, use <em>preprocessing or
121
- enrichment</em>. To simply retrieve a subset of the fields in a message, use
122
- <em>select lists</em>.</p>
123
- <div class="section" id="understanding-views">
124
- <span id="ug-views-understanding"></span><h2>Understanding Views<a class="headerlink" href="#understanding-views" title="Permalink to this headline">¶</a></h2>
125
- <p>Views allow you to aggregate messages from one or more SOW topics in
126
- AMPS and present the aggregation as a new SOW topic. AMPS stores the
127
- contents of the view as serialized messages in memory, similar to a
128
- materialized view in RDBMS software.</p>
129
- <p>Views are often used to simplify subscriber implementation and can
130
- reduce the network traffic to subscribers. For example, if some clients
131
- will only process orders where the total cost of the order exceeds a
132
- certain value, you can both simplify subscriber code and reduce network
133
- traffic by creating a view that contains a calculated field for the
134
- total cost. Rather than receiving all messages and calculating the cost,
135
- subscribers can filter on the calculated field. You can also combine
136
- information from multiple topics. For example, you could create a view
137
- that contains orders from high-priority customers that exceed a certain
138
- dollar amount.</p>
139
- <p>AMPS sends messages to view topics the same way that AMPS sends messages
140
- to SOW topics: when a publish arrives for a message that is used to
141
- calculate the view, AMPS recalculates the values in the view as
142
- necessary and sends a message on the view topic. Likewise,
143
- you can query a view the same way that you query a SOW topic.</p>
144
- <p>Defining a view is straightforward. You set the name of the view, the
145
- SOW topic or topics from which messages originate and describe how you
146
- want to aggregate, or project, the messages. AMPS creates a topic and
147
- projects the messages as requested.</p>
148
- <p>A view requires one or more underlying topics. Any topic, view,
149
- or queue defined in the <code class="docutils literal"><span class="pre">SOW</span></code> section can be the underlying
150
- topic for a view. However, the underlying topic for the view
151
- must be defined in the AMPS configuration file before the
152
- view itself is defined.</p>
153
- <div class="admonition caution">
154
- <p class="first admonition-title">Caution</p>
155
- <p class="last">All message types that you specify in a view must support view
156
- creation.</p>
157
- </div>
158
- <p>Since AMPS uses the SOW topics of the underlying messages to determine
159
- when to update the view, the underlying topics used in a view must be
160
- in the SOW. Any topic, view, conflated topic, or queue defined
161
- in the <code class="docutils literal"><span class="pre">SOW</span></code> section can be the underlying topic for a view.
162
- However, the underlying topic or topics must be defined in the
163
- AMPS configuration file before the view is defined.</p>
164
- <p>AMPS updates each view after a publish or delta publish to a message in
165
- an underlying topic. Updates are processed for each view in the order in
166
- which AMPS processed the updates to the underlying topic. AMPS processes
167
- these updates asynchronously, after each SOW update is persisted. For
168
- additional performance, AMPS provides the ability to conflate updates to
169
- views that process high velocity updates, as described in
170
- <a class="reference internal" href="#inlineviewconflation"><span class="std std-ref">Inline Update Conflation</span></a>.</p>
171
- <p>As with a SOW topic, an incoming publish that does not change the value
172
- of the underlying message or the calculated value in the view is
173
- considered to be an update to the view topic. If an application
174
- needs to see only changed fields, that application should use a
175
- delta subscription (with the <code class="docutils literal"><span class="pre">no_empties</span></code> option).</p>
176
- <div class="admonition tip">
177
- <p class="first admonition-title">Tip</p>
178
- <p class="last">When the underlying topic for a view is a queue,
179
- the view will show only the messages in the queue
180
- that are not currently leased to subscribers.</p>
181
- </div>
182
- </div>
183
- <div class="section" id="defining-views-and-aggregations">
184
- <h2>Defining Views and Aggregations<a class="headerlink" href="#defining-views-and-aggregations" title="Permalink to this headline">¶</a></h2>
185
- <p id="index-1">Multiple topic aggregation creates a view using more than one topic as a
186
- data source. This allows you to enrich messages as they are processed by
187
- AMPS, enabling aggregate calculations using information published to more
188
- than one topic. You can combine messages from multiple topics and use
189
- filtered subscriptions to determine which messages are of interest. For
190
- example, you can set up a topic that contains orders from high-priority
191
- customers.</p>
192
- <p>You can join topics of different message types, and you can project
193
- messages of a different type than the underlying topic.</p>
194
- <p>To create an aggregate using multiple topics, each topic needs to
195
- maintain a SOW. Since views maintain an underlying SOW, you can create
196
- views from views.</p>
197
- <p>To define an aggregate, you decide:</p>
198
- <ul class="simple">
199
- <li>The topic, or topics, that contain the source for the aggregation</li>
200
- <li>If the aggregation uses more than one topic, how those topics relate
201
- to each other</li>
202
- <li>What messages to publish, or <em>project</em>, from the aggregation</li>
203
- <li>How to group messages for aggregation</li>
204
- <li>The message type of the aggregation</li>
205
- </ul>
206
- <p>Message types provided with AMPS fully support views, with the following
207
- exceptions:</p>
208
- <ul class="simple">
209
- <li><code class="docutils literal"><span class="pre">binary</span></code> message types cannot be the underlying topic for a view or
210
- the type of a view.</li>
211
- <li><code class="docutils literal"><span class="pre">protobuf</span></code> message types can be the underlying topic for a view,
212
- but cannot be the type of a view.</li>
213
- <li><code class="docutils literal"><span class="pre">composite-global</span></code> message types can be the underlying topic for
214
- a view, but cannot be the type of a view.</li>
215
- <li><code class="docutils literal"><span class="pre">struct</span></code> message types can be the underlying topic for a view,
216
- but cannot be the type of a view.</li>
217
- </ul>
218
- <p>If you are using a custom message type, check with the message type
219
- developer as to whether that message type supports aggregation.</p>
220
- <div class="section" id="single-topic-aggregation-underlyingtopic">
221
- <h3>Single Topic Aggregation: UnderlyingTopic<a class="headerlink" href="#single-topic-aggregation-underlyingtopic" title="Permalink to this headline">¶</a></h3>
222
- <p>For aggregations based on a single topic, use the <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code>
223
- element to tell AMPS which topic to use. All messages from the
224
- <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code> will appear in the aggregation.</p>
225
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;UnderlyingTopic&gt;</span>MyOriginalTopic<span class="nt">&lt;/UnderlyingTopic&gt;</span>
226
- </pre></div>
227
- </div>
228
- </div>
229
- <div class="section" id="multiple-topic-aggregation-join">
230
- <h3>Multiple Topic Aggregation: Join<a class="headerlink" href="#multiple-topic-aggregation-join" title="Permalink to this headline">¶</a></h3>
231
- <p><code class="docutils literal"><span class="pre">Join</span></code> definitions tell AMPS how to relate underlying topics to each
232
- other. You use a separate <code class="docutils literal"><span class="pre">Join</span></code> element for each relationship in the
233
- view. Most often, the <code class="docutils literal"><span class="pre">Join</span></code> definition describes a relationship between
234
- topics:</p>
235
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">topic</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">field</span><span class="p">]</span><span class="o">=</span><span class="p">[</span><span class="n">topic</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">field</span><span class="p">]</span>
236
- </pre></div>
237
- </div>
238
- <p>The topics specified must be previously defined in the AMPS
239
- configuration file. The square brackets <code class="docutils literal"><span class="pre">[]</span></code> are optional. If they are
240
- omitted, AMPS uses the first <code class="docutils literal"><span class="pre">/</span></code> in the expression as the start of the
241
- field definition. You can use any number of <code class="docutils literal"><span class="pre">Join</span></code> expressions to define a
242
- multiple topic aggregation.</p>
243
- <p>A <code class="docutils literal"><span class="pre">Join</span></code> definition is an equality comparison between the values of
244
- two fields. The <code class="docutils literal"><span class="pre">Join</span></code> definition is not evaluated as an AMPS expression,
245
- so functions, operators (other than <code class="docutils literal"><span class="pre">=</span></code>) and so forth are not evaluated
246
- in these definitions.</p>
247
- <p>Within a <code class="docutils literal"><span class="pre">Join</span></code> definition, values are always compared as strings.
248
- This means that values such as <code class="docutils literal"><span class="pre">12345</span></code>, <code class="docutils literal"><span class="pre">12345.00</span></code>, and
249
- <code class="docutils literal"><span class="pre">1.2345E+04</span></code> can be considered to be different values by the <code class="docutils literal"><span class="pre">Join</span></code>
250
- expression since these are different strings, even though these strings
251
- contain the same numeric value.</p>
252
- <p>If your aggregation will join messages of different types, or produce
253
- messages of a different type than the underlying topics, you add message
254
- type specifiers to the <code class="docutils literal"><span class="pre">Join</span></code> definition:</p>
255
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">messagetype</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">topic</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">field</span><span class="p">]</span><span class="o">=</span><span class="p">[</span><span class="n">messagetype</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">topic</span><span class="p">]</span><span class="o">.</span><span class="p">[</span><span class="n">field</span><span class="p">]</span>
256
- </pre></div>
257
- </div>
258
- <p>In this case, the square brackets <code class="docutils literal"><span class="pre">[]</span></code> around the <em>messagetype</em> are
259
- mandatory. AMPS creates a projection in the aggregation that combines
260
- the messages from each topic where the expression is true. In other
261
- words, for the expression:</p>
262
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;UnderlyingTopic&gt;</span>
263
- <span class="nt">&lt;Join&gt;</span>[Orders].[/CustomerID]=[Addresses].[/CustomerID]<span class="nt">&lt;/Join&gt;</span>
264
- <span class="nt">&lt;/UnderlyingTopic&gt;</span>
265
- </pre></div>
266
- </div>
267
- <p>AMPS projects every message where the same <code class="docutils literal"><span class="pre">CustomerID</span></code> appears in
268
- both the <code class="docutils literal"><span class="pre">Addresses</span></code> topic and the <code class="docutils literal"><span class="pre">Orders</span></code> topic. If a
269
- <code class="docutils literal"><span class="pre">CustomerID</span></code> value appears in only the <code class="docutils literal"><span class="pre">Addresses</span></code> topic, AMPS does
270
- not create a projection for the message. If a <code class="docutils literal"><span class="pre">CustomerID</span></code> value
271
- appears in only the <code class="docutils literal"><span class="pre">Orders</span></code> topic, AMPS projects the message with
272
- <code class="docutils literal"><span class="pre">NULL</span></code> values for the <code class="docutils literal"><span class="pre">Addresses</span></code> topic. In database terms, this is
273
- equivalent to a <code class="docutils literal"><span class="pre">LEFT</span> <span class="pre">OUTER</span> <span class="pre">JOIN</span></code>.</p>
274
- <div class="admonition tip">
275
- <p class="first admonition-title">Tip</p>
276
- <p>In a <code class="docutils literal"><span class="pre">Join</span></code> expression, AMPS does not consider <code class="docutils literal"><span class="pre">NULL</span></code> values, including
277
- empty strings, to be equivalent. This behavior matches ANSI SQL behavior,
278
- but differs from previous releases of AMPS.</p>
279
- <p>You can disable this behavior and cause <code class="docutils literal"><span class="pre">NULL</span></code> values to match by
280
- including the <code class="docutils literal"><span class="pre">JoinNullEquivalency</span></code> option in the <code class="docutils literal"><span class="pre">View</span></code> definition
281
- and setting that option to <code class="docutils literal"><span class="pre">enabled</span></code>.</p>
282
- <p class="last">60East does not recommend setting this option unless it is necessary
283
- to preserve backward compatibility with previous versions of AMPS.</p>
284
- </div>
285
- <p>You can use any number of <code class="docutils literal"><span class="pre">Join</span></code> definitions in an underlying topic:</p>
286
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;Join&gt;</span>[nvfix].[Orders].[/CustomerID]=[json].[Addresses].[/CustomerID]<span class="nt">&lt;/Join&gt;</span>
287
- <span class="nt">&lt;Join&gt;</span>[nvfix].[Orders].[/ItemID]=[nvfix].[Catalog].[/ItemID]<span class="nt">&lt;/Join&gt;</span>
288
- </pre></div>
289
- </div>
290
- <p>In this case, AMPS creates a projection that combines messages from the
291
- <code class="docutils literal"><span class="pre">Orders</span></code>, <code class="docutils literal"><span class="pre">Addresses</span></code>, and <code class="docutils literal"><span class="pre">Catalog</span></code> topics for any published
292
- message where matching messages are present in all three topics. Where
293
- there are no matching messages in the <code class="docutils literal"><span class="pre">Catalog</span></code> and <code class="docutils literal"><span class="pre">Addresses</span></code>
294
- topics, AMPS projects those values as <code class="docutils literal"><span class="pre">NULL</span></code>.</p>
295
- </div>
296
- <div class="section" id="setting-the-message-type">
297
- <h3>Setting the Message Type<a class="headerlink" href="#setting-the-message-type" title="Permalink to this headline">¶</a></h3>
298
- <p>The <code class="docutils literal"><span class="pre">MessageType</span></code> element of the definition sets the type of the
299
- outgoing messages. The message type of the aggregation does not need to
300
- be the same as the message type of the topics used to create the
301
- aggregation. However, if the <code class="docutils literal"><span class="pre">MessageType</span></code> differs from the type of
302
- the topics used to produce the aggregation, you must explicitly specify
303
- the message type of the underlying topics.</p>
304
- <p>For example, to produce JSON messages regardless of the types of the
305
- topics in the aggregation, you would use the following element:</p>
306
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;MessageType&gt;</span>json<span class="nt">&lt;/MessageType&gt;</span>
307
- </pre></div>
308
- </div>
309
- </div>
310
- <div class="section" id="defining-projections">
311
- <h3>Defining Projections<a class="headerlink" href="#defining-projections" title="Permalink to this headline">¶</a></h3>
312
- <p>AMPS makes available all fields from matching messages in the join
313
- specification. You specify the fields that you want AMPS to project and
314
- how to project them.</p>
315
- <p>To tell AMPS how to project a message, you specify each field to include
316
- in the projection. The specification provides a name for the projected
317
- field and one or more source fields to use for the projected field. The
318
- data can be projected as-is, or aggregated using one of the AMPS
319
- aggregation functions, as described in
320
- <a class="reference internal" href="constructing-fields.html#ug-aggregate-functions"><span class="std std-ref">Aggregate Functions</span></a>.</p>
321
- <p>You refer to source fields using the XPath-like expression for the
322
- field. You name projected fields by creating an XPath-like expression
323
- for the new field. AMPS uses this expression to name the new field.</p>
324
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;Projection&gt;</span>
325
- <span class="nt">&lt;Field&gt;</span>[Orders].[/CustomerID]<span class="nt">&lt;/Field&gt;</span>
326
- <span class="nt">&lt;Field&gt;</span>[Addresses].[/ShippingAddress] AS /DestinationAddress<span class="nt">&lt;/Field&gt;</span>
327
- <span class="nt">&lt;Field&gt;</span>SUM([Orders].[/TotalPrice]) AS /AccountTotal<span class="nt">&lt;/Field&gt;</span>
328
- <span class="nt">&lt;/Projection&gt;</span>
329
- </pre></div>
330
- </div>
331
- <p>The sample above uses the <code class="docutils literal"><span class="pre">CustomerID</span></code> from the orders topic and the
332
- shipping address for that customer from the <code class="docutils literal"><span class="pre">Addresses</span></code> topic. The
333
- sample calculates the sum of all of the orders for that customer as the
334
- <code class="docutils literal"><span class="pre">AccountTotal</span></code>. The sample also renames the <code class="docutils literal"><span class="pre">ShippingAddress</span></code> field
335
- as <code class="docutils literal"><span class="pre">DestinationAddress</span></code> in the projected message.</p>
336
- <p>For more information on constructing fields in a view, see <a class="reference internal" href="constructing-fields.html#ug-constructing-fields"><span class="std std-ref">Constructing Fields</span></a>.</p>
337
- </div>
338
- <div class="section" id="data-types-and-projections">
339
- <h3>Data Types and Projections<a class="headerlink" href="#data-types-and-projections" title="Permalink to this headline">¶</a></h3>
340
- <p>When projecting views, AMPS converts the original values into the AMPS
341
- internal type system and serializes those values into a new message.
342
- This approach allows AMPS to efficiently aggregate messages of different
343
- types and produce predictable results. The data type of the
344
- serialization is determined by the message type of the projected
345
- message: the message types provided by 60East in this release project
346
- the AMPS internal type.</p>
347
- <p>This means that, for message types that rely on type markers to identify
348
- the type (such as <code class="docutils literal"><span class="pre">bson</span></code>), the type of the field in the projected
349
- message may reflect the AMPS internal type rather than the original
350
- type. This conversion is typically a widening conversion for numeric
351
- types (for example, input typed as a 32-bit integer will typically be
352
- widened to a 64-bit integer). For other types, the most common
353
- conversion is from a specific data type (such as regular expression) to
354
- a string type.</p>
355
- <p>A projection is evaluated as projecting a single value in the
356
- AMPS type system. This means that complex or nested data types
357
- are typically projected as the string equivalent. For example,
358
- a nested set of XML elements could be projected as an
359
- empty string (the text value of the containing element), or
360
- an array could be projected as the first value in the
361
- array.</p>
362
- <p>If necessary, and if the destination data type supports
363
- nested data structures, you can project the individual
364
- fields of a complex type. For example, given a set
365
- of messages like the following (in a Topic with keys
366
- of <code class="docutils literal"><span class="pre">/orderId</span></code> and <code class="docutils literal"><span class="pre">/line</span></code>):</p>
367
- <div class="highlight-js"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;orderId&quot;</span><span class="o">:</span><span class="mf">42</span><span class="p">,</span> <span class="s2">&quot;line&quot;</span><span class="o">:</span><span class="mf">1</span><span class="p">,</span> <span class="s2">&quot;detail&quot;</span><span class="o">:</span><span class="p">{</span><span class="s2">&quot;product&quot;</span><span class="o">:</span><span class="s2">&quot;AAPL&quot;</span><span class="p">,</span> <span class="s2">&quot;qty&quot;</span><span class="o">:</span><span class="mf">40</span><span class="p">}}</span>
368
-
369
- <span class="p">{</span><span class="s2">&quot;orderId&quot;</span><span class="o">:</span><span class="mf">42</span><span class="p">,</span> <span class="s2">&quot;line&quot;</span><span class="o">:</span><span class="mf">2</span><span class="p">,</span> <span class="s2">&quot;detail&quot;</span><span class="o">:</span><span class="p">{</span><span class="s2">&quot;product&quot;</span><span class="o">:</span><span class="s2">&quot;AAPL&quot;</span><span class="p">,</span> <span class="s2">&quot;qty&quot;</span><span class="o">:</span><span class="mf">60</span><span class="p">}}</span>
370
- </pre></div>
371
- </div>
372
- <p>You could produce summaries for each detailed product by using
373
- a projection like:</p>
374
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;Projection&gt;</span>
375
- <span class="nt">&lt;Field&gt;</span>/orderId<span class="nt">&lt;/Field&gt;</span>
376
- <span class="nt">&lt;Field&gt;</span>/detail/product<span class="nt">&lt;/Field&gt;</span>
377
- <span class="nt">&lt;Field&gt;</span>SUM(/detail/qty) as /detail/qty<span class="nt">&lt;/Field&gt;</span>
378
- <span class="nt">&lt;/Projection&gt;</span>
379
- <span class="nt">&lt;Grouping&gt;</span>
380
- <span class="nt">&lt;Field&gt;</span>/orderId<span class="nt">&lt;/Field&gt;</span>
381
- <span class="nt">&lt;Field&gt;</span>/detail/product<span class="nt">&lt;/Field&gt;</span>
382
- <span class="nt">&lt;/Grouping&gt;</span>
383
- </pre></div>
384
- </div>
385
- <p>For the messages above, this would produce the following
386
- summary record:</p>
387
- <div class="highlight-js"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;detail&quot;</span><span class="o">:</span><span class="p">{</span><span class="s2">&quot;product&quot;</span><span class="o">:</span><span class="s2">&quot;AAPL&quot;</span><span class="p">,</span><span class="s2">&quot;qty&quot;</span><span class="o">:</span><span class="mf">100.0</span><span class="p">},</span><span class="s2">&quot;orderId&quot;</span><span class="o">:</span><span class="mf">42</span><span class="p">}</span>
388
- </pre></div>
389
- </div>
390
- <p>For details on the AMPS data types, see the section called
391
- <a class="reference internal" href="amps_expressions.html#ug-expressions-data-types"><span class="std std-ref">AMPS Data Types</span></a>.</p>
392
- </div>
393
- <div class="section" id="grouping">
394
- <h3>Grouping<a class="headerlink" href="#grouping" title="Permalink to this headline">¶</a></h3>
395
- <p>Use <code class="docutils literal"><span class="pre">Grouping</span></code> statements to tell AMPS how to aggregate data across
396
- messages and generate projected messages.</p>
397
- <p>For example, an <code class="docutils literal"><span class="pre">Orders</span></code> topic that contains messages for incoming
398
- orders could be used to calculate aggregates for each customer, or
399
- aggregates for each symbol ordered. The <code class="docutils literal"><span class="pre">Grouping</span></code> statement tells AMPS
400
- which way to group messages for aggregation.</p>
401
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;Grouping&gt;</span>
402
- <span class="nt">&lt;Field&gt;</span>[Orders].[/CustomerID]<span class="nt">&lt;/Field&gt;</span>
403
- <span class="nt">&lt;/Grouping&gt;</span>
404
- </pre></div>
405
- </div>
406
- <p>The sample above groups and aggregates the projected messages by
407
- <code class="docutils literal"><span class="pre">CustomerId</span></code>. Since this statement tells AMPS to group by
408
- <code class="docutils literal"><span class="pre">CustomerId</span></code>, AMPS projects a message for each distinct <code class="docutils literal"><span class="pre">CustomerId</span></code>
409
- value. A message to the <code class="docutils literal"><span class="pre">Orders</span></code> topic will create an outgoing message
410
- with data aggregated over the <code class="docutils literal"><span class="pre">CustomerId</span></code>.</p>
411
- <div class="admonition tip">
412
- <p class="first admonition-title">Tip</p>
413
- <p class="last">Fields used in the <code class="docutils literal"><span class="pre">Grouping</span></code> element should be the fields
414
- in the underlying topics.</p>
415
- </div>
416
- <p>Each field in the projection should either be an aggregate or be
417
- specified in the <code class="docutils literal"><span class="pre">Grouping</span></code> element. Otherwise, AMPS returns the last
418
- processed value for the field.</p>
419
- <div class="admonition caution" id="grouping-note">
420
- <p class="first admonition-title">Caution</p>
421
- <p class="last">Unlike ANSI SQL, AMPS allows you to include fields in the
422
- projection that are not included in the <code class="docutils literal"><span class="pre">Grouping</span></code> or used
423
- within the aggregate functions. In this case, AMPS uses the value
424
- present in the last message processed as the value for these fields.
425
- AMPS enforces a consistent order of updates to ensure that
426
- the value of the field is consistent across recovery and restart.</p>
427
- </div>
428
- </div>
429
- <div class="section" id="inline-update-conflation">
430
- <span id="inlineviewconflation"></span><h3>Inline Update Conflation<a class="headerlink" href="#inline-update-conflation" title="Permalink to this headline">¶</a></h3>
431
- <p>AMPS has the ability to <em>conflate</em> updates to a view. Conflation is
432
- particularly useful when a view receives a high velocity of updates and
433
- subscribers to the view have no need to track every update, but instead
434
- want to see the current state of the view as quickly as possible. For
435
- applications that have a high update rate and relatively complicated
436
- view processing, inline conflation can significantly reduce the total
437
- number of updates processed for the view and increase overall
438
- throughput.</p>
439
- <p>Inline conflation changes how AMPS manages pending updates for a view.
440
- Without inline conflation enabled for a view, AMPS processes all
441
- messages for a view strictly in the order in which those messages were
442
- published. Even if there are multiple pending updates to the same record,
443
- AMPS processes each of those messages in turn and updates the view for
444
- each message.</p>
445
- <p>When inline conflation is enabled and a message arrives with the same
446
- <code class="docutils literal"><span class="pre">Grouping</span></code> value as a message waiting to be processed, AMPS replaces
447
- the pending message with the new message, and only processes the new
448
- message. Inline conflation <em>does not</em> cause AMPS to slow down the rate
449
- at which AMPS processes updates for a view. AMPS continues to process
450
- updates for the view as fast as possible, and makes no guarantees as to
451
- the number of updates to a view produced by a given set of updates to an
452
- underlying topic.</p>
453
- <p>The diagram below shows a simplified representation of inline conflation
454
- for a view where the underlying SOW uses the <code class="docutils literal"><span class="pre">id</span></code> field of the message as
455
- the <code class="docutils literal"><span class="pre">Key</span></code>. With conflation set to <code class="docutils literal"><span class="pre">none</span></code> (the default for a view), each
456
- message is added to the end of the messages waiting to be processed, whether
457
- or not an update for that group is already waiting. Both updates are processed.
458
- By contrast, when conflation is set to <code class="docutils literal"><span class="pre">inline</span></code>, if there is an existing
459
- update waiting, the new update replaces the existing update, and only
460
- the new update is processed.</p>
461
- <img alt="../_images/inline_view_conflation.svg" src="../_images/inline_view_conflation.svg" /><p>Given that inline conflation replaces messages while processing is pending,
462
- the following considerations apply to views that enable inline
463
- conflation:</p>
464
- <ul class="simple">
465
- <li>Not every update to the underlying topic will produce an individual
466
- update to the view: when multiple updates occur to the same record in
467
- a short period of time, AMPS may only process the last update.</li>
468
- <li>Updates to the view may be produced in an order different than the
469
- order in which the messages were published to the underlying topic,
470
- since AMPS replaces messages waiting to be processed.</li>
471
- <li>The final state of the view will be exactly as if each update were
472
- processed, since it will be based on the latest values in the underlying
473
- topic (or topics).</li>
474
- </ul>
475
- <p>To enable inline conflation, add the <code class="docutils literal"><span class="pre">Conflation</span></code> element to the
476
- configuration for the <code class="docutils literal"><span class="pre">View</span></code>, as shown below:</p>
477
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
478
- <span class="nt">&lt;View&gt;</span>
479
- ...
480
- <span class="nt">&lt;Conflation&gt;</span>inline<span class="nt">&lt;/Conflation&gt;</span>
481
- ...
482
- <span class="nt">&lt;/View&gt;</span>
483
- <span class="nt">&lt;/SOW&gt;</span>
484
- </pre></div>
485
- </div>
486
- </div>
487
- <div class="section" id="filtering-single-topic-aggregations">
488
- <h3>Filtering Single Topic Aggregations<a class="headerlink" href="#filtering-single-topic-aggregations" title="Permalink to this headline">¶</a></h3>
489
- <p>When a view aggregates a single topic, you can use a <code class="docutils literal"><span class="pre">Filter</span></code> element
490
- in the view definition to limit the messages included in the view to
491
- only those messages that match the filter. For example, to aggregate
492
- only messages from an underlying topic where the <code class="docutils literal"><span class="pre">/status</span></code> is
493
- complete, you could define your view as follows:</p>
494
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
495
- ...
496
-
497
- <span class="nt">&lt;Topic&gt;</span>
498
- <span class="nt">&lt;Name&gt;</span>orders<span class="nt">&lt;/Name&gt;</span>
499
- <span class="nt">&lt;MessageType&gt;</span>json<span class="nt">&lt;/MessageType&gt;</span>
500
- <span class="nt">&lt;Key&gt;</span>/orderId<span class="nt">&lt;/Key&gt;</span>
501
- <span class="nt">&lt;FileName&gt;</span>./sow/%n.sow<span class="nt">&lt;/FileName&gt;</span>
502
- <span class="nt">&lt;/Topic&gt;</span>
503
- <span class="nt">&lt;View&gt;</span>
504
- <span class="nt">&lt;Name&gt;</span>CompleteByRegion<span class="nt">&lt;/Name&gt;</span>
505
- <span class="nt">&lt;UnderlyingTopic&gt;</span>orders<span class="nt">&lt;/UnderlyingTopic&gt;</span>
506
- <span class="nt">&lt;MessageType&gt;</span>json<span class="nt">&lt;/MessageType&gt;</span>
507
- <span class="nt">&lt;Projection&gt;</span>
508
- <span class="nt">&lt;Field&gt;</span>COUNT(/orderId) AS /completedOrders<span class="nt">&lt;/Field&gt;</span>
509
- <span class="nt">&lt;Field&gt;</span>/region AS /region<span class="nt">&lt;/Field&gt;</span>
510
- <span class="nt">&lt;/Projection&gt;</span>
511
- <span class="nt">&lt;Grouping&gt;</span>
512
- <span class="nt">&lt;Field&gt;</span>/region<span class="nt">&lt;/Field&gt;</span>
513
- <span class="nt">&lt;/Grouping&gt;</span>
514
- <span class="nt">&lt;Filter&gt;</span>/status = &#39;complete&#39;<span class="nt">&lt;/Filter&gt;</span>
515
- <span class="nt">&lt;/View&gt;</span>
516
-
517
- ...
518
- <span class="nt">&lt;/SOW&gt;</span>
519
- </pre></div>
520
- </div>
521
- <p>The <code class="docutils literal"><span class="pre">Filter</span></code> element is not supported for multiple topic aggregation.</p>
522
- </div>
523
- </div>
524
- <div class="section" id="constructing-fields">
525
- <h2>Constructing Fields<a class="headerlink" href="#constructing-fields" title="Permalink to this headline">¶</a></h2>
526
- <p>The AMPS expression language is used to construct fields in aggregates.</p>
527
- <p>The expression language is described in <a class="reference internal" href="amps_expressions.html#ug-amps-expressions"><span class="std std-ref">AMPS Expressions</span></a>, and
528
- the available functions that you can use for constructing fields in a
529
- view are described in <a class="reference internal" href="amps_functions.html#ug-amps-functions"><span class="std std-ref">AMPS Functions</span></a>.</p>
530
- <p>Using an expression to construct a field for a view is described in
531
- <a class="reference internal" href="constructing-fields.html#ug-constructing-view-fields"><span class="std std-ref">Constructing View Fields</span></a>.</p>
532
- </div>
533
- <div class="section" id="best-practices-for-views">
534
- <h2>Best Practices for Views<a class="headerlink" href="#best-practices-for-views" title="Permalink to this headline">¶</a></h2>
535
- <p>When creating a view, consider the following best practices:</p>
536
- <ul>
537
- <li><p class="first">AMPS must compute and serialize each field in the view. Smaller
538
- numbers of views, and less expensive calculations, may provide
539
- better performance.</p>
540
- </li>
541
- <li><p class="first">AMPS must determine the update to the view for each change
542
- to an underlying topic.</p>
543
- </li>
544
- <li><p class="first">For views that join multiple topics, consider the amount
545
- of work produced by an update to each topic in the join.
546
- You can estimate this by paying attention to the number
547
- of matching messages on each side of the join.</p>
548
- <p>Consider a view that joins a large <code class="docutils literal"><span class="pre">orders</span></code> topic to
549
- an <code class="docutils literal"><span class="pre">order_type</span></code> topic with a much smaller number of
550
- messages. If, for each <code class="docutils literal"><span class="pre">order_type</span></code>, there are
551
- 10000 matching messages in the <code class="docutils literal"><span class="pre">orders</span></code> topic,
552
- then a publish that updates a message in the <code class="docutils literal"><span class="pre">order_type</span></code>
553
- topic would produce 10000 updates to a view joining these
554
- two topics together. In cases like this, avoid making
555
- unnecessary updates to an underlying topic with messages
556
- that match a large number of messages on the other side
557
- of the join. (For example, a change to update a value
558
- in <code class="docutils literal"><span class="pre">order_type</span></code> would be a necessary change. Simply
559
- republishing the same messages to <code class="docutils literal"><span class="pre">order_type</span></code> on
560
- a periodic basis would produce a large number of updates
561
- to the view without changing the results, and is more likely
562
- to be unnecessary work.)</p>
563
- </li>
564
- <li><p class="first">If an underlying message can have frequent updates
565
- and subscribers only need to receive the final state
566
- of the message in the view, consider using
567
- the <code class="docutils literal"><span class="pre">InlineConflation</span></code> option to allow the view
568
- to avoid processing intermediate changes where possible.</p>
569
- </li>
570
- <li><p class="first">For topics that are the underlying topics of views,
571
- avoid publishing updates that do not change the values
572
- of the fields used in the view. Each update to an
573
- underlying topic causes an update to the view. In
574
- particular, an approach such as republishing a set
575
- of lookup values every few minutes will produce a
576
- large amount of work (while AMPS fully recalculates
577
- the view) without a change in the results. In general,
578
- unless the set of values that was republished is
579
- significant, avoid republishing values to a topic
580
- underlying a view.</p>
581
- </li>
582
- </ul>
583
- </div>
584
- <div class="section" id="examples">
585
- <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
586
- <p>The following sections provide examples of practical scenarios that
587
- demonstrate AMPS views and how they can be used to aggregate
588
- and analyze data.</p>
589
- <div class="section" id="simple-aggregate-view-example">
590
- <span id="ug-view-examples-simple"></span><h3>Simple Aggregate View Example<a class="headerlink" href="#simple-aggregate-view-example" title="Permalink to this headline">¶</a></h3>
591
- <p>For a potential usage scenario, imagine the topic <code class="docutils literal"><span class="pre">ORDERS</span></code> which
592
- includes the following NVFIX message schema:</p>
593
- <table border="1" class="docutils" id="id1">
594
- <caption><span class="caption-text"><em>ORDERS Table Identifiers</em></span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
595
- <colgroup>
596
- <col width="50%" />
597
- <col width="50%" />
598
- </colgroup>
599
- <thead valign="bottom">
600
- <tr class="row-odd"><th class="head"><strong>NVFIX
601
- Tag</strong></th>
602
- <th class="head"><strong>Description</strong></th>
603
- </tr>
604
- </thead>
605
- <tbody valign="top">
606
- <tr class="row-even"><td>OrderID</td>
607
- <td>Unique order identifier</td>
608
- </tr>
609
- <tr class="row-odd"><td>Tick</td>
610
- <td>Symbol</td>
611
- </tr>
612
- <tr class="row-even"><td>ClientId</td>
613
- <td>Unique client identifier</td>
614
- </tr>
615
- <tr class="row-odd"><td>Shares</td>
616
- <td>Currently executed shares for the chain of orders</td>
617
- </tr>
618
- <tr class="row-even"><td>Price</td>
619
- <td>Average price for the chain of orders</td>
620
- </tr>
621
- </tbody>
622
- </table>
623
- <p>This topic includes information on the current state of executed orders,
624
- but may not include all the information we want updated in real-time.
625
- For example, we may want to monitor the total value of all orders
626
- executed by a client at any moment. If <code class="docutils literal"><span class="pre">ORDERS</span></code> was a SQL Table within
627
- an RDBMS, the “view” we would want to create would be similar to:</p>
628
- <div class="highlight-sql"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">VIEW</span> <span class="n">TOTAL_VALUE</span> <span class="k">AS</span>
629
- <span class="k">SELECT</span> <span class="n">ClientId</span><span class="p">,</span> <span class="k">SUM</span><span class="p">(</span><span class="n">Shares</span> <span class="o">*</span> <span class="n">Price</span><span class="p">)</span> <span class="k">AS</span> <span class="n">TotalCost</span><span class="p">,</span>
630
- <span class="k">SUM</span><span class="p">(</span><span class="n">Shares</span> <span class="o">*</span> <span class="n">Price</span><span class="p">)</span><span class="o">/</span><span class="k">SUM</span><span class="p">(</span><span class="n">Shares</span><span class="p">)</span> <span class="k">AS</span> <span class="n">WeightedAveragePrice</span>
631
- <span class="k">FROM</span> <span class="n">ORDERS</span>
632
- <span class="k">GROUP</span> <span class="k">BY</span> <span class="n">ClientId</span>
633
- </pre></div>
634
- </div>
635
- <p>As defined above, the <code class="docutils literal"><span class="pre">TOTAL_VALUE</span></code> view would only have two fields:</p>
636
- <ol class="arabic simple">
637
- <li>ClientId: the client identifier</li>
638
- <li>TotalCost: the summation of current order values by client</li>
639
- </ol>
640
- <p>Views in AMPS are specified in the AMPS configuration file in <code class="docutils literal"><span class="pre">View</span></code>
641
- sections, which are defined in the <code class="docutils literal"><span class="pre">SOW</span></code> section. The example above
642
- would be defined as:</p>
643
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
644
- <span class="nt">&lt;Topic&gt;</span>
645
- <span class="nt">&lt;Name&gt;</span>ORDERS<span class="nt">&lt;/Name&gt;</span>
646
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
647
- <span class="nt">&lt;Key&gt;</span>/OrderID<span class="nt">&lt;/Key&gt;</span>
648
- <span class="nt">&lt;FileName&gt;</span>./sow/%n.sow<span class="nt">&lt;/FileName&gt;</span>
649
- <span class="nt">&lt;/Topic&gt;</span>
650
- <span class="nt">&lt;View&gt;</span>
651
- <span class="nt">&lt;Name&gt;</span>TOTAL_VALUE<span class="nt">&lt;/Name&gt;</span>
652
- <span class="nt">&lt;UnderlyingTopic&gt;</span>ORDERS<span class="nt">&lt;/UnderlyingTopic&gt;</span>
653
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
654
- <span class="nt">&lt;Projection&gt;</span>
655
- <span class="nt">&lt;Field&gt;</span>/ClientId<span class="nt">&lt;/Field&gt;</span>
656
- <span class="nt">&lt;Field&gt;</span>SUM(/Shares * /Price) AS /TotalCost<span class="nt">&lt;/Field&gt;</span>
657
- <span class="nt">&lt;Field&gt;</span>SUM(/Shares * /Price) / SUM(/Shares) AS /WeightedAveragePrice<span class="nt">&lt;/Field&gt;</span>
658
- <span class="nt">&lt;/Projection&gt;</span>
659
- <span class="nt">&lt;Grouping&gt;</span>
660
- <span class="nt">&lt;Field&gt;</span>/ClientId<span class="nt">&lt;/Field&gt;</span>
661
- <span class="nt">&lt;/Grouping&gt;</span>
662
- <span class="nt">&lt;/View&gt;</span>
663
- <span class="nt">&lt;/SOW&gt;</span>
664
- </pre></div>
665
- </div>
666
- <div class="admonition important">
667
- <p class="first admonition-title">Important</p>
668
- <p class="last">Views require an underlying SOW topic. See
669
- <a class="reference internal" href="sow.html#ug-sow"><span class="std std-ref">State of the World (SOW)</span></a> for
670
- more information on creating and configuring SOW topics.</p>
671
- </div>
672
- <p>The <code class="docutils literal"><span class="pre">Topic</span></code> element is the name of the new topic that is being
673
- defined. This <code class="docutils literal"><span class="pre">Topic</span></code> value will be the topic that can be used by
674
- clients to subscribe for future updates or perform SOW queries against.</p>
675
- <p>The <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code> is the SOW topic or topics that the view
676
- operates on. That is, the <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code> is where the view gets its
677
- data from. All XPath references within the <code class="docutils literal"><span class="pre">Projection</span></code> fields are
678
- references to values within this underlying SOW topic (unless they
679
- appear on the right-hand side of the <code class="docutils literal"><span class="pre">AS</span></code> keyword.)</p>
680
- <p>The <code class="docutils literal"><span class="pre">Projection</span></code> section is a list of 1 or more <code class="docutils literal"><span class="pre">Field</span></code> tags that
681
- define what the view will contain. The field specifications can contain
682
- either a raw XPath value, as in <code class="docutils literal"><span class="pre">/ClientId</span></code> above, which is a straight
683
- copy of the value found in the underlying topic into the view topic using
684
- the same target XPath or an expression as described in <a class="reference internal" href="constructing-fields.html#ug-constructing-view-fields"><span class="std std-ref">Constructing View Fields</span></a>.
685
- In the case of <code class="docutils literal"><span class="pre">ClientId</span></code>, if we had wanted to translate the tag
686
- into a different tag, such as <code class="docutils literal"><span class="pre">CID</span></code>, then we could have used the
687
- <code class="docutils literal"><span class="pre">AS</span></code> keyword to do the translation as in <code class="docutils literal"><span class="pre">/ClientId</span> <span class="pre">AS</span> <span class="pre">/CID</span></code>.</p>
688
- <div class="admonition tip">
689
- <p class="first admonition-title">Tip</p>
690
- <p class="last">Unlike ANSI SQL, AMPS allows you to include fields in the
691
- <code class="docutils literal"><span class="pre">Projection</span></code> that are not included in the <code class="docutils literal"><span class="pre">Grouping</span></code> or used
692
- within the aggregate functions. In this case, AMPS uses the last
693
- value processed for the value of these fields. AMPS enforces a
694
- consistent order of updates to ensure that the value of the
695
- field is consistent across recovery and restart.</p>
696
- </div>
697
- <div class="admonition caution">
698
- <p class="first admonition-title">Caution</p>
699
- <p class="last">An unexpected 0 (zero) or null value in an aggregate field within a view
700
- usually means that the value is either zero or <code class="docutils literal"><span class="pre">NaN</span></code>. Most AMPS
701
- message types default to using 0 instead of <code class="docutils literal"><span class="pre">NaN</span></code>. However, any numeric
702
- aggregate function will result in a <code class="docutils literal"><span class="pre">NaN</span></code> if the aggregation
703
- includes a field that is not a number.</p>
704
- </div>
705
- <p>Finally, the <code class="docutils literal"><span class="pre">Grouping</span></code> section is a list of one or more <code class="docutils literal"><span class="pre">Field</span></code> tags
706
- that define how the records in the <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code> will be grouped to
707
- form the records in the view. In this example, we grouped by the tag
708
- holding the client identifier. However, we could have easily made this
709
- the “Symbol” tag <code class="docutils literal"><span class="pre">/Tick</span></code>.</p>
710
- <p>In the below example, we group by the <code class="docutils literal"><span class="pre">/ClientId</span></code> because we want to
711
- count the number of orders <em>for each client</em> that have a value greater
712
- than 1,000,000:</p>
713
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
714
- ...
715
-
716
- <span class="nt">&lt;View&gt;</span>
717
- <span class="nt">&lt;Name&gt;</span>NUMBER_OF_ORDERS_OVER_ONEMILL<span class="nt">&lt;/Name&gt;</span>
718
- <span class="nt">&lt;UnderlyingTopic&gt;</span>ORDERS<span class="nt">&lt;/UnderlyingTopic&gt;</span>
719
- <span class="nt">&lt;Projection&gt;</span>
720
- <span class="nt">&lt;Field&gt;</span>/ClientId<span class="nt">&lt;/Field&gt;</span>
721
- <span class="nt">&lt;Field&gt;</span><span class="cp">&lt;![CDATA[SUM(IF(/shares * /price &gt; 1000000, /shares * /price, NULL)) AS /AggregateValue]]&gt;</span><span class="nt">&lt;/Field&gt;</span>
722
- <span class="nt">&lt;Field&gt;</span>SUM(IF(/Shares * /Price <span class="ni">&amp;gt;</span> 1000000, /Shares * /Price, NULL)) AS /AggregateValue2<span class="nt">&lt;/Field&gt;</span>
723
- <span class="nt">&lt;/Projection&gt;</span>
724
- <span class="nt">&lt;Grouping&gt;</span>
725
- <span class="nt">&lt;Field&gt;</span>/ClientId<span class="nt">&lt;/Field&gt;</span>
726
- <span class="nt">&lt;/Grouping&gt;</span>
727
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
728
- <span class="nt">&lt;/View&gt;</span>
729
-
730
- ...
731
- <span class="nt">&lt;/SOW&gt;</span>
732
- </pre></div>
733
- </div>
734
- <p>Notice that the <code class="docutils literal"><span class="pre">/AggregateValue</span></code> and <code class="docutils literal"><span class="pre">/AggregateValue2</span></code> will
735
- contain the same value; however <code class="docutils literal"><span class="pre">/AggregateValue</span></code> was defined using an
736
- XML <code class="docutils literal"><span class="pre">CDATA</span></code> block and <code class="docutils literal"><span class="pre">/AggregateValue2</span></code> was defined using the XML
737
- <code class="docutils literal"><span class="pre">&gt;</span></code> entity reference.</p>
738
- <div class="admonition caution">
739
- <p class="first admonition-title">Caution</p>
740
- <p class="last">Since the AMPS configuration is XML, special characters in
741
- projection expressions must either be escaped with XML entity
742
- references or wrapped in a CDATA section.</p>
743
- </div>
744
- <p>Updates to underlying topics can potentially cause many more updates to
745
- downstream views, which can create stress on downstream clients
746
- subscribed to the view. If any underlying topic has frequent updates to
747
- the same records and/or a real-time view is not required, as in a GUI,
748
- then a replica of the topic may be a good solution to reduce the
749
- frequency of the updates and conserve bandwidth. For more on conflated
750
- topics, please see
751
- <a class="reference internal" href="conflated_topics.html#ug-topic-replicas"><span class="std std-ref">Conflated Topics</span></a>.</p>
752
- </div>
753
- <div class="section" id="multiple-topic-aggregate-example">
754
- <h3>Multiple Topic Aggregate Example<a class="headerlink" href="#multiple-topic-aggregate-example" title="Permalink to this headline">¶</a></h3>
755
- <p>This example demonstrates how to create an aggregate view that uses more
756
- than one topic as a data source. For a potential usage scenario, imagine
757
- that another publisher provides a <code class="docutils literal"><span class="pre">COMPANIES</span></code> topic which includes the
758
- following NVFIX message schema:</p>
759
- <table border="1" class="docutils" id="id2">
760
- <caption><span class="caption-text"><em>COMPANIES Table Identifiers</em></span><a class="headerlink" href="#id2" title="Permalink to this table">¶</a></caption>
761
- <colgroup>
762
- <col width="50%" />
763
- <col width="50%" />
764
- </colgroup>
765
- <thead valign="bottom">
766
- <tr class="row-odd"><th class="head"><strong>NVFIX
767
- Tag</strong></th>
768
- <th class="head"><strong>Description</strong></th>
769
- </tr>
770
- </thead>
771
- <tbody valign="top">
772
- <tr class="row-even"><td>CompanyId</td>
773
- <td>Unique identifier for the company</td>
774
- </tr>
775
- <tr class="row-odd"><td>Tick</td>
776
- <td>Symbol</td>
777
- </tr>
778
- <tr class="row-even"><td>Name</td>
779
- <td>Company name</td>
780
- </tr>
781
- </tbody>
782
- </table>
783
- <p>This topic includes the name of the company, and an identifier used for
784
- internal record keeping in the trading system. Using this information,
785
- we want to provide a running total of orders for that company, including
786
- the company name.</p>
787
- <p>If <code class="docutils literal"><span class="pre">ORDERS</span></code> and <code class="docutils literal"><span class="pre">COMPANIES</span></code> were a SQL Table within an RDBMS, the
788
- “view” we would want to create would be similar to:</p>
789
- <div class="highlight-sql"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">VIEW</span> <span class="n">TOTAL_COMPANY_VOLUME</span> <span class="k">AS</span>
790
- <span class="k">SELECT</span> <span class="n">COMPANIES</span><span class="p">.</span><span class="n">CompanyId</span><span class="p">,</span> <span class="n">COMPANIES</span><span class="p">.</span><span class="n">Tick</span><span class="p">,</span> <span class="n">COMPANIES</span><span class="p">.</span><span class="n">Name</span><span class="p">,</span> <span class="k">SUM</span><span class="p">(</span><span class="n">ORDERS</span><span class="p">.</span><span class="n">Shares</span><span class="p">)</span> <span class="k">AS</span> <span class="n">TotalVolume</span>
791
- <span class="k">FROM</span> <span class="n">COMPANIES</span> <span class="k">LEFT</span> <span class="k">OUTER</span> <span class="k">JOIN</span> <span class="n">ORDERS</span>
792
- <span class="k">ON</span> <span class="n">COMPANIES</span><span class="p">.</span><span class="n">Tick</span> <span class="o">=</span> <span class="n">ORDERS</span><span class="p">.</span><span class="n">Tick</span>
793
- <span class="k">GROUP</span> <span class="k">BY</span> <span class="n">ORDERS</span><span class="p">.</span><span class="n">Tick</span>
794
- </pre></div>
795
- </div>
796
- <p>As defined above, the <code class="docutils literal"><span class="pre">TOTAL_COMPANY_VOLUME</span></code> table would have four
797
- columns:</p>
798
- <ol class="arabic simple">
799
- <li>CompanyId: the identifier for the company</li>
800
- <li>Tick: The ticker symbol for the company</li>
801
- <li>Name: The name of the company</li>
802
- <li>TotalVolume: The total number of shares involved in orders</li>
803
- </ol>
804
- <p>To create this view, use the following definition in the AMPS
805
- configuration file:</p>
806
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
807
- <span class="nt">&lt;Topic&gt;</span>
808
- <span class="nt">&lt;Name&gt;</span>ORDERS<span class="nt">&lt;/Name&gt;</span>
809
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
810
- <span class="nt">&lt;Key&gt;</span>/OrderID<span class="nt">&lt;/Key&gt;</span>
811
- <span class="nt">&lt;FileName&gt;</span>./sow/%n.sow<span class="nt">&lt;/FileName&gt;</span>
812
- <span class="nt">&lt;/Topic&gt;</span>
813
- <span class="nt">&lt;Topic&gt;</span>
814
- <span class="nt">&lt;Name&gt;</span>COMPANIES<span class="nt">&lt;/Name&gt;</span>
815
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
816
- <span class="nt">&lt;Key&gt;</span>/CompanyId<span class="nt">&lt;/Key&gt;</span>
817
- <span class="nt">&lt;FileName&gt;</span>./sow/%n.sow<span class="nt">&lt;/FileName&gt;</span>
818
- <span class="nt">&lt;/Topic&gt;</span>
819
- <span class="nt">&lt;View&gt;</span>
820
- <span class="nt">&lt;Name&gt;</span>TOTAL_COMPANY_VOLUME<span class="nt">&lt;/Name&gt;</span>
821
- <span class="nt">&lt;UnderlyingTopic&gt;</span>
822
- <span class="nt">&lt;Join&gt;</span>[ORDERS]./Tick = [COMPANIES]./Tick<span class="nt">&lt;/Join&gt;</span>
823
- <span class="nt">&lt;/UnderlyingTopic&gt;</span>
824
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
825
- <span class="nt">&lt;Projection&gt;</span>
826
- <span class="nt">&lt;Field&gt;</span>[COMPANIES]./CompanyId<span class="nt">&lt;/Field&gt;</span>
827
- <span class="nt">&lt;Field&gt;</span>[COMPANIES]./Tick<span class="nt">&lt;/Field&gt;</span>
828
- <span class="nt">&lt;Field&gt;</span>[COMPANIES]./Name<span class="nt">&lt;/Field&gt;</span>
829
- <span class="nt">&lt;Field&gt;</span>SUM([ORDERS]./Shares) AS /TotalVolume<span class="nt">&lt;/Field&gt;</span>
830
- <span class="nt">&lt;/Projection&gt;</span>
831
- <span class="nt">&lt;Grouping&gt;</span>
832
- <span class="nt">&lt;Field&gt;</span>[ORDERS]./Tick<span class="nt">&lt;/Field&gt;</span>
833
- <span class="nt">&lt;/Grouping&gt;</span>
834
- <span class="nt">&lt;/View&gt;</span>
835
- <span class="nt">&lt;/SOW&gt;</span>
836
- </pre></div>
837
- </div>
838
- <p>As with the single topic example, first define the underlying topics
839
- as SOW topics. Next, the view defines the underlying topic that is the
840
- source of the data. In this case, the underlying topic is a join between
841
- two topics in the instance. The definition next declares the message
842
- type of the projected messages. The message types that you join can be
843
- different types, and the projected messages can be a different type than
844
- the underlying message types. The projection uses three fields from the
845
- <code class="docutils literal"><span class="pre">COMPANIES</span></code> topic and one field that is aggregated from messages in the
846
- <code class="docutils literal"><span class="pre">ORDERS</span></code> topic. The projection groups results by the <code class="docutils literal"><span class="pre">Tick</span></code> symbols that
847
- appear in messages in the <code class="docutils literal"><span class="pre">ORDERS</span></code> topic.</p>
848
- </div>
849
- <div class="section" id="view-projected-into-different-message-type">
850
- <h3>View Projected Into Different Message Type<a class="headerlink" href="#view-projected-into-different-message-type" title="Permalink to this headline">¶</a></h3>
851
- <p>This example shows how to project an underlying topic of one message
852
- type into a topic of a different message type.</p>
853
- <p>There is very little difference between this example and the single topic view
854
- example - <a class="reference internal" href="#ug-view-examples-simple"><span class="std std-ref">Simple Aggregate View Example</span></a>.
855
- The main difference is that, because the destination view has a different message
856
- type than the underlying topic, every reference to a field from the
857
- underlying topic must be fully-qualified with the message type.</p>
858
- <p>As before, imagine the topic <code class="docutils literal"><span class="pre">ORDERS</span></code> which includes the following
859
- NVFIX message schema:</p>
860
- <table border="1" class="docutils" id="id3">
861
- <caption><span class="caption-text"><em>ORDERS Table Identifiers</em></span><a class="headerlink" href="#id3" title="Permalink to this table">¶</a></caption>
862
- <colgroup>
863
- <col width="50%" />
864
- <col width="50%" />
865
- </colgroup>
866
- <thead valign="bottom">
867
- <tr class="row-odd"><th class="head"><strong>NVFIX
868
- Tag</strong></th>
869
- <th class="head"><strong>Description</strong></th>
870
- </tr>
871
- </thead>
872
- <tbody valign="top">
873
- <tr class="row-even"><td>OrderID</td>
874
- <td>Unique order identifier</td>
875
- </tr>
876
- <tr class="row-odd"><td>Tick</td>
877
- <td>Symbol</td>
878
- </tr>
879
- <tr class="row-even"><td>ClientId</td>
880
- <td>Unique client identifier</td>
881
- </tr>
882
- <tr class="row-odd"><td>Shares</td>
883
- <td>Currently executed shares for the chain of orders</td>
884
- </tr>
885
- <tr class="row-even"><td>Price</td>
886
- <td>Average price for the chain of orders</td>
887
- </tr>
888
- </tbody>
889
- </table>
890
- <p>As before, we want to project the summation of current order values by
891
- client. The <code class="docutils literal"><span class="pre">TOTAL_VALUE</span></code> view will have two fields:</p>
892
- <ol class="arabic simple">
893
- <li>ClientId: the client identifier</li>
894
- <li>TotalCost: the summation of current order values by client</li>
895
- </ol>
896
- <p>However, in this case, we want to project the summary into a JSON
897
- document. To do this we simply specify that the final view will be in
898
- JSON format, and fully qualify all references to the underlying topic in
899
- the view definition.</p>
900
- <p>The example above would be defined as:</p>
901
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;SOW&gt;</span>
902
- <span class="nt">&lt;Topic&gt;</span>
903
- <span class="nt">&lt;Name&gt;</span>ORDERS<span class="nt">&lt;/Name&gt;</span>
904
- <span class="nt">&lt;MessageType&gt;</span>nvfix<span class="nt">&lt;/MessageType&gt;</span>
905
- <span class="nt">&lt;Key&gt;</span>/OrderID<span class="nt">&lt;/Key&gt;</span>
906
- <span class="nt">&lt;FileName&gt;</span>./sow/%n.sow<span class="nt">&lt;/FileName&gt;</span>
907
- <span class="nt">&lt;/Topic&gt;</span>
908
- <span class="nt">&lt;View&gt;</span>
909
- <span class="nt">&lt;Name&gt;</span>TOTAL_VALUE<span class="nt">&lt;/Name&gt;</span>
910
- <span class="nt">&lt;UnderlyingTopic&gt;</span>[nvfix].[ORDERS]<span class="nt">&lt;/UnderlyingTopic&gt;</span>
911
- <span class="nt">&lt;MessageType&gt;</span>json<span class="nt">&lt;/MessageType&gt;</span>
912
- <span class="nt">&lt;Projection&gt;</span>
913
- <span class="nt">&lt;Field&gt;</span>[nvfix].[ORDERS]./ClientId AS /ClientId<span class="nt">&lt;/Field&gt;</span>
914
- <span class="nt">&lt;Field&gt;</span>SUM([nvfix].[ORDERS]./Shares * [nvfix].[ORDERS]./Price) AS /TotalCost<span class="nt">&lt;/Field&gt;</span>
915
- <span class="nt">&lt;/Projection&gt;</span>
916
- <span class="nt">&lt;Grouping&gt;</span>
917
- <span class="nt">&lt;Field&gt;</span>[nvfix].[ORDERS]./ClientId<span class="nt">&lt;/Field&gt;</span>
918
- <span class="nt">&lt;/Grouping&gt;</span>
919
- <span class="nt">&lt;/View&gt;</span>
920
- <span class="nt">&lt;/SOW&gt;</span>
921
- </pre></div>
922
- </div>
923
- <p>This example uses an underlying topic in NVFIX format, computes an
924
- aggregation by <code class="docutils literal"><span class="pre">ClientId</span></code>, and then produces output in JSON format.</p>
925
- </div>
926
- </div>
927
- <div class="section" id="aggregated-subscriptions">
928
- <span id="index-2"></span><h2>Aggregated Subscriptions<a class="headerlink" href="#aggregated-subscriptions" title="Permalink to this headline">¶</a></h2>
929
- <p>In addition to precomputed views and aggregates, AMPS provides the
930
- ability for the server to compute an aggregation for an individual
931
- subscription. When an application requests an <em>aggregated subscription</em>,
932
- rather than providing messages for the subscription verbatim, the AMPS
933
- server will calculate the requested aggregates and produce a message
934
- that contains the aggregated data.</p>
935
- <p>Most of the time, AMPS applications use views to provide aggregation, as
936
- described in the section <a class="reference internal" href="#ug-views-understanding"><span class="std std-ref">Understanding Views</span></a>.
937
- AMPS views are shared across subscriptions, and are calculated once, when
938
- a message updates a view, regardless of the number of subscribers that
939
- subscribe to the view. AMPS provides aggregated subscriptions as a way to
940
- do <em>ad hoc</em> aggregation in cases where a specific aggregate is only needed
941
- for a short period time, will only be used by a single subscriber, or must
942
- be provided before the server can be restarted with a defined view. If the
943
- aggregation is frequently used, or if multiple subscribers will use the
944
- aggregation, consider using a view rather than an aggregated
945
- subscription.</p>
946
- <p>To request an aggregated subscription, the subscriber provides a
947
- definition of the fields to project and the grouping to apply with each
948
- subscription. AMPS performs the aggregation and constructs the specified
949
- message before delivering the message.</p>
950
- <p>For example, imagine a topic in the SOW that uses the <code class="docutils literal"><span class="pre">/id</span></code> field to
951
- create the SOW key. The topic contains the following messages:</p>
952
- <div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="mf">1</span><span class="p">,</span> <span class="s2">&quot;tickerId&quot;</span> <span class="o">:</span> <span class="s2">&quot;IBM&quot;</span><span class="p">,</span> <span class="s2">&quot;price&quot;</span> <span class="o">:</span> <span class="mf">150.34</span> <span class="p">}</span>
953
- <span class="p">{</span> <span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="mf">2</span><span class="p">,</span> <span class="s2">&quot;tickerId&quot;</span> <span class="o">:</span> <span class="s2">&quot;IBM&quot;</span><span class="p">,</span> <span class="s2">&quot;price&quot;</span> <span class="o">:</span> <span class="mf">149.76</span> <span class="p">}</span>
954
- <span class="p">{</span> <span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="mf">3</span><span class="p">,</span> <span class="s2">&quot;tickerId&quot;</span> <span class="o">:</span> <span class="s2">&quot;IBM&quot;</span><span class="p">,</span> <span class="s2">&quot;price&quot;</span> <span class="o">:</span> <span class="mf">149.32</span> <span class="p">}</span>
955
- <span class="p">{</span> <span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="mf">4</span><span class="p">,</span> <span class="s2">&quot;tickerId&quot;</span> <span class="o">:</span> <span class="s2">&quot;IBM&quot;</span><span class="p">,</span> <span class="s2">&quot;price&quot;</span> <span class="o">:</span> <span class="mf">151.10</span> <span class="p">}</span>
956
- </pre></div>
957
- </div>
958
- <p>A subscriber enters a SOW query with the following options:</p>
959
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="n">projection</span><span class="o">=</span><span class="p">[</span><span class="n">MAX</span><span class="p">(</span><span class="o">/</span><span class="n">price</span><span class="p">)</span> <span class="n">AS</span> <span class="o">/</span><span class="nb">max</span><span class="p">,</span><span class="o">/</span><span class="n">tickerId</span> <span class="k">as</span> <span class="o">/</span><span class="n">ticker</span><span class="p">],</span><span class="n">grouping</span><span class="o">=</span><span class="p">[</span><span class="o">/</span><span class="n">tickerId</span><span class="p">]</span>
960
- </pre></div>
961
- </div>
962
- <p>AMPS aggregates the messages in the SOW and delivers the following
963
- projected record:</p>
964
- <div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="s2">&quot;ticker&quot;</span> <span class="o">:</span> <span class="s2">&quot;IBM&quot;</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span> <span class="o">:</span> <span class="mf">151.10</span> <span class="p">}</span>
965
- </pre></div>
966
- </div>
967
- <p>Aggregated subscriptions are supported for commands that use the
968
- SOW: <code class="docutils literal"><span class="pre">sow</span></code>, <code class="docutils literal"><span class="pre">sow_and_subscribe</span></code>, and <code class="docutils literal"><span class="pre">sow_and_delta_subscribe</span></code>. However, there
969
- are limitations on some variants of the commands, as described in the following sections.</p>
970
- <p>The memory consumed to maintain an aggregated subscription is counted as part of the total
971
- memory for the client that submitted the subscription when considering the
972
- <code class="docutils literal"><span class="pre">MessageMemoryLimit</span></code> for that client.</p>
973
- <div class="section" id="when-to-use-aggregated-subscriptions">
974
- <h3>When to Use Aggregated Subscriptions<a class="headerlink" href="#when-to-use-aggregated-subscriptions" title="Permalink to this headline">¶</a></h3>
975
- <p>Aggregated subscriptions require AMPS to compute the aggregate for each
976
- subscription individually, at the time that messages are processed for
977
- the subscription. In addition, for aggregated subscriptions, the current
978
- state of the aggregation is retained for each subscription.</p>
979
- <p>In cases where more than one subscriber is using the same aggregation, a
980
- <code class="docutils literal"><span class="pre">View</span></code> is more efficient: each record in the view is only computed
981
- once, saving CPU cycles, and ongoing updates for the record are only
982
- stored once, requiring less memory. Likewise, if the aggregation uses
983
- more than one topic or aggregates messages of a different type than
984
- the final result, you must configure a <code class="docutils literal"><span class="pre">View</span></code> on the server.</p>
985
- <p>An aggregated subscription could be more appropriate than a persistent
986
- view if one or more of the following is true:</p>
987
- <ul class="simple">
988
- <li>A subscription has <strong>unique and unpredictable aggregation needs</strong>.
989
- For example, if no other subscription is computing a given
990
- aggregation, and it is not possible to predict in advance the
991
- aggregates to compute, then per-subscription aggregation is a good
992
- solution.</li>
993
- <li>The application is <strong>under development and iterating quickly</strong>. It
994
- can be convenient to use aggregated subscriptions while developing
995
- aggregate definitions that will be eventually provided as view
996
- topics.</li>
997
- <li>The persistent view is <strong>expensive and seldom needed</strong>. For
998
- example, if an aggregation is memory-intensive and only needed once
999
- a week at a time when the instance is otherwise lightly-used, the
1000
- overall memory usage of the AMPS instance may be reduced during the
1001
- rest of the week by using an aggregated subscription.</li>
1002
- </ul>
1003
- <p>The considerations above are general guidance to help you consider
1004
- options between per-subscription aggregation and a persistent view. In
1005
- general, if it is possible to use an AMPS view for a given aggregation
1006
- task and that view will be frequently used, a view is often the best
1007
- option. If a view cannot be used (because the aggregation is not known
1008
- in advance) or the view would seldom be used, an aggregated subscription
1009
- may be a better option.</p>
1010
- </div>
1011
- <div class="section" id="requesting-an-aggregated-subscription">
1012
- <h3>Requesting an Aggregated Subscription<a class="headerlink" href="#requesting-an-aggregated-subscription" title="Permalink to this headline">¶</a></h3>
1013
- <p>To request an aggregated subscription, set the following options on the
1014
- subscription:</p>
1015
- <table border="1" class="docutils" id="id4">
1016
- <caption><span class="caption-text"><em>Aggregated subscription options</em></span><a class="headerlink" href="#id4" title="Permalink to this table">¶</a></caption>
1017
- <colgroup>
1018
- <col width="50%" />
1019
- <col width="50%" />
1020
- </colgroup>
1021
- <thead valign="bottom">
1022
- <tr class="row-odd"><th class="head">Option</th>
1023
- <th class="head">Description</th>
1024
- </tr>
1025
- </thead>
1026
- <tbody valign="top">
1027
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">projection=[field</span> <span class="pre">specifications]</span></code></td>
1028
- <td><p class="first">Specifies a comma-delimited set of fields to project, within
1029
- brackets. Each entry has the format described in
1030
- <a class="reference internal" href="constructing-fields.html#ug-constructing-fields"><span class="std std-ref">Constructing Fields</span></a>.</p>
1031
- <p>This option must contain an entry for every field in the aggregated
1032
- message. If there is no entry for a field in this option, that field
1033
- will not appear in the aggregated message, even if the field is in
1034
- the underlying message.</p>
1035
- <p>For example, to project the total value of orders for a specific
1036
- item, you might take the sum of the <code class="docutils literal"><span class="pre">/price</span></code> multiplied by the
1037
- <code class="docutils literal"><span class="pre">/quantity</span></code> for each item, along with the original <code class="docutils literal"><span class="pre">/description</span></code>,
1038
- as follows:</p>
1039
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="n">projection</span><span class="o">=</span><span class="p">[</span><span class="n">SUM</span><span class="p">(</span><span class="o">/</span><span class="n">price</span> <span class="o">*</span> <span class="o">/</span><span class="n">quantity</span><span class="p">)</span> <span class="n">AS</span> <span class="o">/</span><span class="n">total</span><span class="p">,</span> <span class="o">/</span><span class="n">description</span><span class="p">]</span>
1040
- </pre></div>
1041
- </div>
1042
- <p>When a field appears in the projection option, but is not part of a
1043
- grouping clause or used in an aggregation function, the message will
1044
- have the value of that field in the last message processed by AMPS.</p>
1045
- <p class="last">There is no default for this option. When this option is provided, a
1046
- <code class="docutils literal"><span class="pre">grouping</span></code> must also be provided.</p>
1047
- </td>
1048
- </tr>
1049
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">grouping=[keys]</span></code></td>
1050
- <td><p class="first">For an aggregated subscription, the format of this option is a
1051
- comma-delimited list of XPath identifiers within brackets. For
1052
- example, to aggregate entries based on their <code class="docutils literal"><span class="pre">/description</span></code>
1053
- (producing one record in the aggregation for each distinct value in
1054
- <code class="docutils literal"><span class="pre">/description</span></code>), you would use the following option:</p>
1055
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="n">grouping</span><span class="o">=</span><span class="p">[</span><span class="o">/</span><span class="n">description</span><span class="p">]</span>
1056
- </pre></div>
1057
- </div>
1058
- <p class="last">There is no default for this option. When this option is provided, a
1059
- <code class="docutils literal"><span class="pre">projection</span></code> must also be provided.</p>
1060
- </td>
1061
- </tr>
1062
- </tbody>
1063
- </table>
1064
- <p>For example, to request a count, by customer, of the order records
1065
- stored in a topic in the SOW, you could use the following options:</p>
1066
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="n">projection</span><span class="o">=</span><span class="p">[</span><span class="n">COUNT</span><span class="p">(</span><span class="o">/</span><span class="n">orderId</span><span class="p">)</span><span class="n">AS</span> <span class="o">/</span><span class="n">orderCount</span><span class="p">,</span> <span class="o">/</span><span class="n">customer</span> <span class="n">AS</span> <span class="o">/</span><span class="n">customer</span><span class="p">],</span><span class="n">grouping</span><span class="o">=</span><span class="p">[</span><span class="o">/</span><span class="n">customer</span><span class="p">]</span>
1067
- </pre></div>
1068
- </div>
1069
- </div>
1070
- <div class="section" id="considerations-for-aggregated-subscriptions">
1071
- <h3>Considerations for Aggregated Subscriptions<a class="headerlink" href="#considerations-for-aggregated-subscriptions" title="Permalink to this headline">¶</a></h3>
1072
- <p>When planning to use an aggregated subscription, the following
1073
- considerations apply:</p>
1074
- <ul class="simple">
1075
- <li>The source of an aggregated subscription is a single topic, of
1076
- the same message type as will be produced by the aggregation.
1077
- The topic for the subscription must not be a regular expression.</li>
1078
- <li>The topic for the subscription must be a topic in the SOW. This includes
1079
- views and the SOW view of a queue.</li>
1080
- <li>When subscribing to a queue, an aggregated subscription does <em>not</em>
1081
- remove messages from the queue. Like a view definition with the queue
1082
- as an underlying topic, an aggregated subscription browses the queue
1083
- without taking messages from the queue.</li>
1084
- <li>Filters for the subscription apply to the original messages, <em>not</em>
1085
- the results of the projection. A filter for an aggregated
1086
- subscription is equivalent to the <code class="docutils literal"><span class="pre">Filter</span></code> element in a <code class="docutils literal"><span class="pre">View</span></code>
1087
- definition rather than a filter for a subscription that uses the
1088
- view.</li>
1089
- <li>A subscription that uses per-subscription aggregation does not
1090
- support the <code class="docutils literal"><span class="pre">replace</span></code> option <strong>except</strong> for changing pagination
1091
- options.</li>
1092
- <li>An aggregated subscription <em>cannot</em> be a bookmark subscription. That
1093
- is, replay from the transaction log does not support aggregated
1094
- subscriptions.</li>
1095
- <li>Select lists cannot be used with aggregated subscriptions.</li>
1096
- </ul>
1097
- </div>
1098
- </div>
1099
- </div>
1100
-
1101
-
1102
- </div>
1103
- </div>
1104
- </div>
1105
- <div class="clearer"></div>
1106
- </div>
1107
- <div class="footer">
1108
- &copy;2023 60East Technologies, Inc. (version develop).
1109
-
1110
- |
1111
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.3</a>
1112
- &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
1113
-
1114
- </div>
1115
-
1116
-
1117
-
1118
-
1119
- </body>
1120
- </html>