amps-python-client 5.3.4.1__zip → 5.3.4.3__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 (918) hide show
  1. amps-python-client-5.3.4.3/LICENSE +168 -0
  2. amps-python-client-5.3.4.3/PKG-INFO +112 -0
  3. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  4. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  5. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  6. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  7. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  8. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  9. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  10. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  11. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  12. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  13. amps-python-client-5.3.4.3/docs/command-reference/doctrees/environment.pickle +0 -0
  14. amps-python-client-5.3.4.3/docs/command-reference/doctrees/index.doctree +0 -0
  15. amps-python-client-5.3.4.3/docs/command-reference/html/.buildinfo +4 -0
  16. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
  17. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
  18. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
  19. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
  20. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
  21. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
  22. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
  23. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
  24. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
  25. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
  26. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/index.rst.txt +36 -0
  27. amps-python-client-5.3.4.3/docs/command-reference/html/_static/custom.css +161 -0
  28. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/ack-messages.html +95 -0
  29. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/content-messages.html +95 -0
  30. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/intro.html +95 -0
  31. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/logon.html +95 -0
  32. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/protocol-reference.html +93 -0
  33. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/publishing.html +95 -0
  34. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-delimiters.html +95 -0
  35. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-subscribe.html +95 -0
  36. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/removing.html +95 -0
  37. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/utilities.html +95 -0
  38. amps-python-client-5.3.4.3/docs/command-reference/html/genindex.html +97 -0
  39. amps-python-client-5.3.4.3/docs/command-reference/html/index.html +98 -0
  40. amps-python-client-5.3.4.3/docs/command-reference/html/objects.inv +6 -0
  41. amps-python-client-5.3.4.3/docs/command-reference/html/search.html +107 -0
  42. amps-python-client-5.3.4.3/docs/command-reference/html/searchindex.js +1 -0
  43. amps-python-client-5.3.4.3/docs/html/.buildinfo +4 -0
  44. amps-python-client-5.3.4.3/docs/html/code.html +6851 -0
  45. amps-python-client-5.3.4.3/docs/html/genindex.html +1363 -0
  46. amps-python-client-5.3.4.3/docs/html/index.html +131 -0
  47. amps-python-client-5.3.4.3/docs/html/objects.inv +0 -0
  48. amps-python-client-5.3.4.3/docs/html/py-modindex.html +111 -0
  49. amps-python-client-5.3.4.3/docs/html/search.html +107 -0
  50. amps-python-client-5.3.4.3/docs/html/searchindex.js +1 -0
  51. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  52. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  53. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  54. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  55. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/deltas.doctree +0 -0
  56. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  57. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  58. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/first-program.doctree +0 -0
  59. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  60. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/installing.doctree +0 -0
  61. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/introduction.doctree +0 -0
  62. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  63. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  64. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/queues.doctree +0 -0
  65. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/sow.doctree +0 -0
  66. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  67. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/utilities.doctree +0 -0
  68. amps-python-client-5.3.4.3/docs/python/doctrees/environment.pickle +0 -0
  69. amps-python-client-5.3.4.3/docs/python/doctrees/index.doctree +0 -0
  70. amps-python-client-5.3.4.3/docs/python/html/.buildinfo +4 -0
  71. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
  72. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
  73. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
  74. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
  75. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
  76. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
  77. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
  78. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
  79. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
  80. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
  81. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
  82. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
  83. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
  84. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
  85. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
  86. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
  87. amps-python-client-5.3.4.3/docs/python/html/_static/custom.css +161 -0
  88. amps-python-client-5.3.4.3/docs/python/html/chapters/advanced-topics.html +447 -0
  89. amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-compiler-list.html +92 -0
  90. amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-feature-table.html +156 -0
  91. amps-python-client-5.3.4.3/docs/python/html/chapters/creating-commands.html +2882 -0
  92. amps-python-client-5.3.4.3/docs/python/html/chapters/deltas.html +169 -0
  93. amps-python-client-5.3.4.3/docs/python/html/chapters/error-handling.html +745 -0
  94. amps-python-client-5.3.4.3/docs/python/html/chapters/exceptions.html +266 -0
  95. amps-python-client-5.3.4.3/docs/python/html/chapters/first-program.html +526 -0
  96. amps-python-client-5.3.4.3/docs/python/html/chapters/high-availability.html +1017 -0
  97. amps-python-client-5.3.4.3/docs/python/html/chapters/installing.html +264 -0
  98. amps-python-client-5.3.4.3/docs/python/html/chapters/introduction.html +245 -0
  99. amps-python-client-5.3.4.3/docs/python/html/chapters/moving-from-python-lite.html +118 -0
  100. amps-python-client-5.3.4.3/docs/python/html/chapters/performance-tips.html +499 -0
  101. amps-python-client-5.3.4.3/docs/python/html/chapters/queues.html +352 -0
  102. amps-python-client-5.3.4.3/docs/python/html/chapters/sow.html +383 -0
  103. amps-python-client-5.3.4.3/docs/python/html/chapters/subscriptions.html +535 -0
  104. amps-python-client-5.3.4.3/docs/python/html/chapters/utilities.html +302 -0
  105. amps-python-client-5.3.4.3/docs/python/html/genindex.html +351 -0
  106. amps-python-client-5.3.4.3/docs/python/html/index.html +382 -0
  107. amps-python-client-5.3.4.3/docs/python/html/objects.inv +0 -0
  108. amps-python-client-5.3.4.3/docs/python/html/search.html +107 -0
  109. amps-python-client-5.3.4.3/docs/python/html/searchindex.js +1 -0
  110. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  111. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  112. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/environment.pickle +0 -0
  113. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/index.doctree +0 -0
  114. amps-python-client-5.3.4.3/docs/python-quickstart/html/.buildinfo +4 -0
  115. amps-python-client-5.3.4.3/docs/python-quickstart/html/_static/custom.css +161 -0
  116. amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/crankitup.html +271 -0
  117. amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/equipment.html +105 -0
  118. amps-python-client-5.3.4.3/docs/python-quickstart/html/genindex.html +97 -0
  119. amps-python-client-5.3.4.3/docs/python-quickstart/html/index.html +381 -0
  120. amps-python-client-5.3.4.3/docs/python-quickstart/html/objects.inv +0 -0
  121. amps-python-client-5.3.4.3/docs/python-quickstart/html/search.html +107 -0
  122. amps-python-client-5.3.4.3/docs/python-quickstart/html/searchindex.js +1 -0
  123. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  124. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  125. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  126. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  127. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  128. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  129. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  130. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  131. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  132. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  133. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  134. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  135. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  136. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  137. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  138. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  139. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  140. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  141. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  142. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  143. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  144. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  145. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  146. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  147. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  148. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  149. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  150. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  151. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  152. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  153. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  154. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  155. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  156. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  157. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  158. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  159. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  160. amps-python-client-5.3.4.3/docs/user-guide/doctrees/environment.pickle +0 -0
  161. amps-python-client-5.3.4.3/docs/user-guide/doctrees/index.doctree +0 -0
  162. amps-python-client-5.3.4.3/docs/user-guide/html/.buildinfo +4 -0
  163. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
  164. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
  165. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
  166. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
  167. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
  168. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
  169. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
  170. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
  171. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
  172. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
  173. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
  174. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
  175. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
  176. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
  177. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
  178. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
  179. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
  180. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
  181. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
  182. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
  183. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
  184. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
  185. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
  186. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
  187. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
  188. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
  189. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
  190. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
  191. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
  192. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
  193. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
  194. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
  195. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
  196. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
  197. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
  198. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
  199. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/index.rst.txt +62 -0
  200. amps-python-client-5.3.4.3/docs/user-guide/html/_static/custom.css +161 -0
  201. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/acks.html +94 -0
  202. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/actions.html +94 -0
  203. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps-statistics.html +94 -0
  204. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_expressions.html +94 -0
  205. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_functions.html +94 -0
  206. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
  207. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
  208. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/conflated_topics.html +94 -0
  209. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/constructing-fields.html +94 -0
  210. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/daemon.html +94 -0
  211. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/delta.html +94 -0
  212. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/distribution.html +94 -0
  213. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/enrichment.html +94 -0
  214. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/events.html +94 -0
  215. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/file_format_versions.html +94 -0
  216. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/glossary.html +92 -0
  217. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/ha.html +94 -0
  218. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
  219. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/intro.html +94 -0
  220. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/logging.html +94 -0
  221. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/messageTypes.html +94 -0
  222. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/monitoring.html +94 -0
  223. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/oof.html +94 -0
  224. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/operation.html +94 -0
  225. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/pub_sub.html +94 -0
  226. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/queues.html +94 -0
  227. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/replication.html +94 -0
  228. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/securing.html +94 -0
  229. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow.html +94 -0
  230. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow_queries.html +94 -0
  231. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/spark.html +819 -0
  232. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/transports.html +94 -0
  233. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/troubleshooting.html +94 -0
  234. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/txlog.html +94 -0
  235. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/usecases.html +94 -0
  236. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/utilities.html +94 -0
  237. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/views.html +94 -0
  238. amps-python-client-5.3.4.3/docs/user-guide/html/genindex.html +133 -0
  239. amps-python-client-5.3.4.3/docs/user-guide/html/index.html +96 -0
  240. amps-python-client-5.3.4.3/docs/user-guide/html/objects.inv +0 -0
  241. amps-python-client-5.3.4.3/docs/user-guide/html/search.html +106 -0
  242. amps-python-client-5.3.4.3/docs/user-guide/html/searchindex.js +1 -0
  243. amps-python-client-5.3.4.3/include/ampspy_bookmarkstore.hpp +63 -0
  244. amps-python-client-5.3.4.3/include/ampspy_compat.h +63 -0
  245. amps-python-client-5.3.4.3/include/ampspy_defs.hpp +181 -0
  246. amps-python-client-5.3.4.3/include/ampspy_recoverypointadapter.hpp +52 -0
  247. amps-python-client-5.3.4.3/include/ampspy_shims.hpp +113 -0
  248. amps-python-client-5.3.4.3/include/ampspy_type_object.hpp +242 -0
  249. amps-python-client-5.3.4.3/include/ampspy_types.hpp +1139 -0
  250. amps-python-client-5.3.4.3/include/ampspyver.h +30 -0
  251. amps-python-client-5.3.4.3/index.html +66 -0
  252. amps-python-client-5.3.4.3/samples/AMPSConsolePublisher.py +59 -0
  253. amps-python-client-5.3.4.3/samples/AMPSConsoleSubscriber.py +63 -0
  254. amps-python-client-5.3.4.3/samples/AMPSFIXBuilderPublisher.py +71 -0
  255. amps-python-client-5.3.4.3/samples/AMPSFIXShredderSubscriber.py +69 -0
  256. amps-python-client-5.3.4.3/samples/AMPSNVFIXBuilderPublisher.py +71 -0
  257. amps-python-client-5.3.4.3/samples/AMPSNVFIXShredderSubscriber.py +67 -0
  258. amps-python-client-5.3.4.3/samples/AMPSPublishForReplay.py +81 -0
  259. amps-python-client-5.3.4.3/samples/AMPSQueueConsumer.py +69 -0
  260. amps-python-client-5.3.4.3/samples/AMPSQueuePublisher.py +59 -0
  261. amps-python-client-5.3.4.3/samples/AMPSSOWConsolePublisher.py +67 -0
  262. amps-python-client-5.3.4.3/samples/AMPSSOWConsoleSubscriber.py +77 -0
  263. amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
  264. amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
  265. amps-python-client-5.3.4.3/samples/AMPSSubscribeForReplay.py +128 -0
  266. amps-python-client-5.3.4.3/samples/AMPSUpdateForOOF.py +123 -0
  267. amps-python-client-5.3.4.3/samples/CompositeMessagePublisher.py +84 -0
  268. amps-python-client-5.3.4.3/samples/CompositeMessageSubscriber.py +87 -0
  269. amps-python-client-5.3.4.3/samples/RandomServerChooser.py +66 -0
  270. amps-python-client-5.3.4.3/samples/sample.xml +335 -0
  271. amps-python-client-5.3.4.3/setup.py +210 -0
  272. amps-python-client-5.3.4.3/setup_amps.py +94 -0
  273. amps-python-client-5.3.4.3/src/ampspy_shims.cpp +214 -0
  274. amps-python-client-5.3.4.3/src/ampspy_type_object.cpp +495 -0
  275. amps-python-client-5.3.4.3/src/authenticator.cpp +128 -0
  276. amps-python-client-5.3.4.3/src/bookmarkstore.cpp +246 -0
  277. amps-python-client-5.3.4.3/src/client.cpp +2648 -0
  278. amps-python-client-5.3.4.3/src/client_docs.h +1210 -0
  279. amps-python-client-5.3.4.3/src/cmessagehandler.cpp +161 -0
  280. amps-python-client-5.3.4.3/src/command.cpp +164 -0
  281. amps-python-client-5.3.4.3/src/command_docs.h +274 -0
  282. amps-python-client-5.3.4.3/src/compositemessagebuilder.cpp +113 -0
  283. amps-python-client-5.3.4.3/src/compositemessageparser.cpp +151 -0
  284. amps-python-client-5.3.4.3/src/conflatingrecoverypointadapter.cpp +197 -0
  285. amps-python-client-5.3.4.3/src/cpp/include/amps/BlockPublishStore.hpp +2050 -0
  286. amps-python-client-5.3.4.3/src/cpp/include/amps/BlockStore.hpp +674 -0
  287. amps-python-client-5.3.4.3/src/cpp/include/amps/BookmarkStore.hpp +542 -0
  288. amps-python-client-5.3.4.3/src/cpp/include/amps/Buffer.hpp +214 -0
  289. amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
  290. amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
  291. amps-python-client-5.3.4.3/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
  292. amps-python-client-5.3.4.3/src/cpp/include/amps/Field.hpp +723 -0
  293. amps-python-client-5.3.4.3/src/cpp/include/amps/HAClient.hpp +370 -0
  294. amps-python-client-5.3.4.3/src/cpp/include/amps/HAClientImpl.hpp +460 -0
  295. amps-python-client-5.3.4.3/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
  296. amps-python-client-5.3.4.3/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
  297. amps-python-client-5.3.4.3/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
  298. amps-python-client-5.3.4.3/src/cpp/include/amps/MMapStoreBuffer.hpp +297 -0
  299. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
  300. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
  301. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryStoreBuffer.hpp +247 -0
  302. amps-python-client-5.3.4.3/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
  303. amps-python-client-5.3.4.3/src/cpp/include/amps/Message.hpp +1827 -0
  304. amps-python-client-5.3.4.3/src/cpp/include/amps/MessageRouter.hpp +647 -0
  305. amps-python-client-5.3.4.3/src/cpp/include/amps/PublishStore.hpp +158 -0
  306. amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
  307. amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
  308. amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
  309. amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
  310. amps-python-client-5.3.4.3/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
  311. amps-python-client-5.3.4.3/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
  312. amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooser.hpp +156 -0
  313. amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
  314. amps-python-client-5.3.4.3/src/cpp/include/amps/amps.h +815 -0
  315. amps-python-client-5.3.4.3/src/cpp/include/amps/amps_impl.h +220 -0
  316. amps-python-client-5.3.4.3/src/cpp/include/amps/amps_ssl.h +78 -0
  317. amps-python-client-5.3.4.3/src/cpp/include/amps/ampscrc.hpp +208 -0
  318. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsplusplus.hpp +8846 -0
  319. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsuri.h +84 -0
  320. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h +41 -0
  321. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h.in +41 -0
  322. amps-python-client-5.3.4.3/src/cpp/include/amps/constants.hpp +194 -0
  323. amps-python-client-5.3.4.3/src/cpp/include/amps/util.hpp +1722 -0
  324. amps-python-client-5.3.4.3/src/cpp/src/amps_protocol.c +693 -0
  325. amps-python-client-5.3.4.3/src/cpp/src/amps_ssl.c +565 -0
  326. amps-python-client-5.3.4.3/src/cpp/src/atfork.c +484 -0
  327. amps-python-client-5.3.4.3/src/cpp/src/client.c +498 -0
  328. amps-python-client-5.3.4.3/src/cpp/src/message.c +837 -0
  329. amps-python-client-5.3.4.3/src/cpp/src/message_generated.h +611 -0
  330. amps-python-client-5.3.4.3/src/cpp/src/tcp.c +1683 -0
  331. amps-python-client-5.3.4.3/src/cpp/src/tcps.c +2005 -0
  332. amps-python-client-5.3.4.3/src/cpp/src/transports.c +129 -0
  333. amps-python-client-5.3.4.3/src/cpp/src/unix.c +1063 -0
  334. amps-python-client-5.3.4.3/src/cpp/src/uri.c +301 -0
  335. amps-python-client-5.3.4.3/src/exponentialdelaystrategy.cpp +131 -0
  336. amps-python-client-5.3.4.3/src/failedwritehandler.cpp +116 -0
  337. amps-python-client-5.3.4.3/src/fixbuilder.cpp +146 -0
  338. amps-python-client-5.3.4.3/src/fixeddelaystrategy.cpp +115 -0
  339. amps-python-client-5.3.4.3/src/fixshredder.cpp +105 -0
  340. amps-python-client-5.3.4.3/src/fixshredder_docs.h +38 -0
  341. amps-python-client-5.3.4.3/src/haclient.cpp +691 -0
  342. amps-python-client-5.3.4.3/src/haclient_docs.h +200 -0
  343. amps-python-client-5.3.4.3/src/hybridpublishstore.cpp +137 -0
  344. amps-python-client-5.3.4.3/src/hybridpublishstore_docs.h +31 -0
  345. amps-python-client-5.3.4.3/src/memorybookmarkstore.cpp +373 -0
  346. amps-python-client-5.3.4.3/src/memorybookmarkstore_docs.h +39 -0
  347. amps-python-client-5.3.4.3/src/memorypublishstore.cpp +160 -0
  348. amps-python-client-5.3.4.3/src/memorypublishstore_docs.h +32 -0
  349. amps-python-client-5.3.4.3/src/message.cpp +765 -0
  350. amps-python-client-5.3.4.3/src/message_docs.h +306 -0
  351. amps-python-client-5.3.4.3/src/messagestream.cpp +630 -0
  352. amps-python-client-5.3.4.3/src/messagestream_docs.h +45 -0
  353. amps-python-client-5.3.4.3/src/mmapbookmarkstore.cpp +422 -0
  354. amps-python-client-5.3.4.3/src/nvfixbuilder.cpp +160 -0
  355. amps-python-client-5.3.4.3/src/nvfixbuilder_docs.h +35 -0
  356. amps-python-client-5.3.4.3/src/nvfixshredder.cpp +99 -0
  357. amps-python-client-5.3.4.3/src/nvfixshredder_docs.h +43 -0
  358. amps-python-client-5.3.4.3/src/publishstore.cpp +183 -0
  359. amps-python-client-5.3.4.3/src/raw_wrapper.cpp +765 -0
  360. amps-python-client-5.3.4.3/src/reason.cpp +71 -0
  361. amps-python-client-5.3.4.3/src/recoverypoint.cpp +135 -0
  362. amps-python-client-5.3.4.3/src/recoverypointadapter.cpp +171 -0
  363. amps-python-client-5.3.4.3/src/ringbookmarkstore.cpp +360 -0
  364. amps-python-client-5.3.4.3/src/serverchooser.cpp +245 -0
  365. amps-python-client-5.3.4.3/src/serverchooser_docs.h +41 -0
  366. amps-python-client-5.3.4.3/src/sowrecoverypointadapter.cpp +248 -0
  367. amps-python-client-5.3.4.3/src/store.cpp +62 -0
  368. amps-python-client-5.3.4.3/src/versioninfo.cpp +175 -0
  369. amps-python-client-5.3.4.1/LICENSE +0 -157
  370. amps-python-client-5.3.4.1/PKG-INFO +0 -112
  371. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  372. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  373. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  374. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  375. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  376. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  377. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  378. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  379. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  380. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  381. amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
  382. amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
  383. amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
  384. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
  385. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
  386. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
  387. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
  388. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
  389. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
  390. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
  391. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
  392. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
  393. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
  394. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
  395. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
  396. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
  397. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
  398. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
  399. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
  400. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
  401. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
  402. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
  403. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
  404. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
  405. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
  406. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
  407. amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
  408. amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
  409. amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
  410. amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
  411. amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
  412. amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
  413. amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
  414. amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
  415. amps-python-client-5.3.4.1/docs/html/index.html +0 -131
  416. amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
  417. amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
  418. amps-python-client-5.3.4.1/docs/html/search.html +0 -107
  419. amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
  420. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  421. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  422. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  423. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  424. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
  425. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  426. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  427. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
  428. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  429. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
  430. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
  431. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  432. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  433. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
  434. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
  435. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  436. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
  437. amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
  438. amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
  439. amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
  440. amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
  441. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
  442. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
  443. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
  444. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
  445. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
  446. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
  447. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
  448. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
  449. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
  450. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
  451. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
  452. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
  453. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
  454. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
  455. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
  456. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
  457. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
  458. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
  459. amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
  460. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
  461. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
  462. amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
  463. amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
  464. amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
  465. amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
  466. amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
  467. amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
  468. amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
  469. amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
  470. amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
  471. amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
  472. amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
  473. amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
  474. amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
  475. amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
  476. amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
  477. amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
  478. amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
  479. amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
  480. amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
  481. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  482. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  483. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
  484. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
  485. amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
  486. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
  487. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
  488. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
  489. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
  490. amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
  491. amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
  492. amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
  493. amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
  494. amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
  495. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  496. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  497. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  498. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  499. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  500. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  501. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  502. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  503. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  504. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  505. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  506. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  507. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  508. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  509. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  510. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  511. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  512. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  513. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  514. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  515. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  516. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  517. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  518. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  519. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  520. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  521. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  522. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  523. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  524. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  525. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  526. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  527. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  528. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  529. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  530. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  531. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  532. amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
  533. amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
  534. amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
  535. amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
  536. amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
  537. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
  538. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
  539. amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
  540. amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
  541. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
  542. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
  543. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
  544. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
  545. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
  546. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
  547. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
  548. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
  549. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
  550. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
  551. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
  552. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
  553. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
  554. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
  555. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
  556. amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
  557. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
  558. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
  559. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
  560. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
  561. amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
  562. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
  563. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
  564. amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
  565. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
  566. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
  567. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
  568. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
  569. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
  570. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
  571. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
  572. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
  573. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
  574. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
  575. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
  576. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
  577. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
  578. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
  579. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
  580. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
  581. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
  582. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
  583. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
  584. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
  585. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
  586. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
  587. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
  588. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
  589. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
  590. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
  591. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
  592. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
  593. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
  594. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
  595. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
  596. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
  597. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
  598. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
  599. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
  600. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
  601. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
  602. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
  603. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
  604. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
  605. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
  606. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
  607. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
  608. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
  609. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
  610. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
  611. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
  612. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
  613. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
  614. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
  615. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
  616. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
  617. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
  618. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
  619. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
  620. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
  621. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
  622. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
  623. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
  624. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
  625. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
  626. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
  627. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
  628. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
  629. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
  630. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
  631. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
  632. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
  633. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
  634. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
  635. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
  636. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
  637. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
  638. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
  639. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
  640. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
  641. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
  642. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
  643. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
  644. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
  645. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
  646. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
  647. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
  648. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
  649. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
  650. amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
  651. amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
  652. amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
  653. amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
  654. amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
  655. amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
  656. amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
  657. amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
  658. amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
  659. amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
  660. amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
  661. amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
  662. amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
  663. amps-python-client-5.3.4.1/index.html +0 -66
  664. amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
  665. amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
  666. amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
  667. amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
  668. amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
  669. amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
  670. amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
  671. amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
  672. amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
  673. amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
  674. amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
  675. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
  676. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
  677. amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
  678. amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
  679. amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
  680. amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
  681. amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
  682. amps-python-client-5.3.4.1/samples/sample.xml +0 -335
  683. amps-python-client-5.3.4.1/setup.py +0 -209
  684. amps-python-client-5.3.4.1/setup_amps.py +0 -94
  685. amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
  686. amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
  687. amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
  688. amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
  689. amps-python-client-5.3.4.1/src/client.cpp +0 -2430
  690. amps-python-client-5.3.4.1/src/client_docs.h +0 -956
  691. amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
  692. amps-python-client-5.3.4.1/src/command.cpp +0 -164
  693. amps-python-client-5.3.4.1/src/command_docs.h +0 -194
  694. amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
  695. amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
  696. amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
  697. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
  698. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
  699. amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
  700. amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
  701. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
  702. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
  703. amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
  704. amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
  705. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
  706. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
  707. amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
  708. amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
  709. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
  710. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
  711. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
  712. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
  713. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
  714. amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
  715. amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
  716. amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
  717. amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
  718. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
  719. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
  720. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
  721. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
  722. amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
  723. amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
  724. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
  725. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
  726. amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
  727. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
  728. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
  729. amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
  730. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
  731. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
  732. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
  733. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
  734. amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
  735. amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
  736. amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
  737. amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
  738. amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
  739. amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
  740. amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
  741. amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
  742. amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
  743. amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
  744. amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
  745. amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
  746. amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
  747. amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
  748. amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
  749. amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
  750. amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
  751. amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
  752. amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
  753. amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
  754. amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
  755. amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
  756. amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
  757. amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
  758. amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
  759. amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
  760. amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
  761. amps-python-client-5.3.4.1/src/message.cpp +0 -765
  762. amps-python-client-5.3.4.1/src/message_docs.h +0 -306
  763. amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
  764. amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
  765. amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
  766. amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
  767. amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
  768. amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
  769. amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
  770. amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
  771. amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
  772. amps-python-client-5.3.4.1/src/reason.cpp +0 -71
  773. amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
  774. amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
  775. amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
  776. amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
  777. amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
  778. amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
  779. amps-python-client-5.3.4.1/src/store.cpp +0 -62
  780. amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
  781. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/HISTORY +0 -0
  782. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/README.md +0 -0
  783. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  784. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/alabaster.css +0 -0
  785. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/basic.css +0 -0
  786. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-bright.png +0 -0
  787. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-close.png +0 -0
  788. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment.png +0 -0
  789. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/doctools.js +0 -0
  790. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down-pressed.png +0 -0
  791. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down.png +0 -0
  792. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/file.png +0 -0
  793. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.png +0 -0
  794. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  795. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  796. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery.js +0 -0
  797. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/minus.png +0 -0
  798. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/plus.png +0 -0
  799. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/pygments.css +0 -0
  800. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/searchtools.js +0 -0
  801. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  802. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore.js +0 -0
  803. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up-pressed.png +0 -0
  804. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up.png +0 -0
  805. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/websupport.js +0 -0
  806. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/code.rst.txt +0 -0
  807. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/index.rst.txt +0 -0
  808. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/ajax-loader.gif +0 -0
  809. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/basic.css +0 -0
  810. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/classic.css +0 -0
  811. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-bright.png +0 -0
  812. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-close.png +0 -0
  813. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment.png +0 -0
  814. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/default.css +0 -0
  815. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/doctools.js +0 -0
  816. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down-pressed.png +0 -0
  817. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down.png +0 -0
  818. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/file.png +0 -0
  819. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery-3.1.0.js +0 -0
  820. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery.js +0 -0
  821. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/minus.png +0 -0
  822. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/plus.png +0 -0
  823. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/pygments.css +0 -0
  824. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/searchtools.js +0 -0
  825. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/sidebar.js +0 -0
  826. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore-1.3.1.js +0 -0
  827. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore.js +0 -0
  828. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up-pressed.png +0 -0
  829. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up.png +0 -0
  830. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/websupport.js +0 -0
  831. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.png +0 -0
  832. {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.3/docs/python}/html/_images/caution.svg +0 -0
  833. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/connection_string.svg +0 -0
  834. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.png +0 -0
  835. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.svg +0 -0
  836. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.png +0 -0
  837. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.svg +0 -0
  838. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/warning.png +0 -0
  839. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  840. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_sources/index.rst.txt +0 -0
  841. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/ajax-loader.gif +0 -0
  842. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/alabaster.css +0 -0
  843. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/basic.css +0 -0
  844. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-bright.png +0 -0
  845. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-close.png +0 -0
  846. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment.png +0 -0
  847. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/doctools.js +0 -0
  848. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down-pressed.png +0 -0
  849. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down.png +0 -0
  850. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/file.png +0 -0
  851. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.png +0 -0
  852. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.svg +0 -0
  853. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  854. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery.js +0 -0
  855. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/minus.png +0 -0
  856. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/plus.png +0 -0
  857. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/pygments.css +0 -0
  858. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/searchtools.js +0 -0
  859. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  860. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore.js +0 -0
  861. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up-pressed.png +0 -0
  862. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up.png +0 -0
  863. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/websupport.js +0 -0
  864. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  865. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  866. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  867. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  868. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  869. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/basic.css +0 -0
  870. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  871. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  872. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment.png +0 -0
  873. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/doctools.js +0 -0
  874. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  875. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down.png +0 -0
  876. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/file.png +0 -0
  877. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  878. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  879. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  880. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery.js +0 -0
  881. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/minus.png +0 -0
  882. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/plus.png +0 -0
  883. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/pygments.css +0 -0
  884. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  885. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  886. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore.js +0 -0
  887. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  888. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up.png +0 -0
  889. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/websupport.js +0 -0
  890. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/custom.css +0 -0
  891. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/flag_logo.svg +0 -0
  892. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  893. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  894. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/alabaster.css +0 -0
  895. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/basic.css +0 -0
  896. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-bright.png +0 -0
  897. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-close.png +0 -0
  898. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment.png +0 -0
  899. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/doctools.js +0 -0
  900. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down-pressed.png +0 -0
  901. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down.png +0 -0
  902. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/file.png +0 -0
  903. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.png +0 -0
  904. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  905. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  906. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery.js +0 -0
  907. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/minus.png +0 -0
  908. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/plus.png +0 -0
  909. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/pygments.css +0 -0
  910. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/searchtools.js +0 -0
  911. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  912. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore.js +0 -0
  913. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up-pressed.png +0 -0
  914. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up.png +0 -0
  915. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/websupport.js +0 -0
  916. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_generated.h +0 -0
  917. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol_generated.h +0 -0
  918. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/makefile +0 -0
@@ -1,1280 +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>16. Message Types &#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="17. Command Acknowledgment" href="acks.html" />
30
- <link rel="prev" title="15. Message Queues" href="queues.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="#">16. Message Types</a><ul>
49
- <li><a class="reference internal" href="#default-message-types">Default Message Types</a></li>
50
- <li><a class="reference internal" href="#bflat-messages">BFlat Messages</a><ul>
51
- <li><a class="reference internal" href="#bflat-data-types">BFlat Data Types</a><ul>
52
- <li><a class="reference internal" href="#representing-data-in-bflat">Representing Data in BFlat</a></li>
53
- </ul>
54
- </li>
55
- </ul>
56
- </li>
57
- <li><a class="reference internal" href="#messagepack-messages">MessagePack Messages</a></li>
58
- <li><a class="reference internal" href="#composite-messages">Composite Messages</a><ul>
59
- <li><a class="reference internal" href="#configuring-composite-message-types">Configuring Composite Message Types</a><ul>
60
- <li><a class="reference internal" href="#unparsed-payload-section">Unparsed Payload Section</a></li>
61
- </ul>
62
- </li>
63
- <li><a class="reference internal" href="#content-filtering-with-composite-message-types">Content Filtering with Composite Message Types</a><ul>
64
- <li><a class="reference internal" href="#composite-global">composite-global</a></li>
65
- <li><a class="reference internal" href="#composite-local">composite-local</a></li>
66
- </ul>
67
- </li>
68
- <li><a class="reference internal" href="#choosing-a-composite-type">Choosing a Composite Type</a></li>
69
- </ul>
70
- </li>
71
- <li><a class="reference internal" href="#protobuf-message-types">Protobuf Message Types</a><ul>
72
- <li><a class="reference internal" href="#configuring-protobuf-message-types">Configuring Protobuf Message Types</a></li>
73
- <li><a class="reference internal" href="#filtering-with-protobuf-messages">Filtering with Protobuf Messages</a></li>
74
- <li><a class="reference internal" href="#working-with-multiple-protocol-buffer-types">Working with Multiple Protocol Buffer Types</a></li>
75
- <li><a class="reference internal" href="#union-types">Union Types</a></li>
76
- <li><a class="reference internal" href="#limitations-of-the-protobuf-message-type">Limitations of the Protobuf Message Type</a></li>
77
- <li><a class="reference internal" href="#working-with-optional-default-values">Working with Optional Default Values</a></li>
78
- </ul>
79
- </li>
80
- <li><a class="reference internal" href="#struct-message-types">Struct Message Types</a><ul>
81
- <li><a class="reference internal" href="#configuring-a-struct-message-type">Configuring a Struct Message Type</a></li>
82
- <li><a class="reference internal" href="#limitations-of-struct-message-types">Limitations of Struct Message Types</a></li>
83
- </ul>
84
- </li>
85
- <li><a class="reference internal" href="#loading-additional-message-types">Loading Additional Message Types</a></li>
86
- </ul>
87
- </li>
88
- </ul>
89
- <div class="relations">
90
- <h3>Related Topics</h3>
91
- <ul>
92
- <li><a href="../index.html">Documentation overview</a><ul>
93
- <li>Previous: <a href="queues.html" title="previous chapter">15. Message Queues</a></li>
94
- <li>Next: <a href="acks.html" title="next chapter">17. Command Acknowledgment</a></li>
95
- </ul></li>
96
- </ul>
97
- </div>
98
- <div id="searchbox" style="display: none" role="search">
99
- <h3>Quick search</h3>
100
- <form class="search" action="../search.html" method="get">
101
- <div><input type="text" name="q" /></div>
102
- <div><input type="submit" value="Go" /></div>
103
- <input type="hidden" name="check_keywords" value="yes" />
104
- <input type="hidden" name="area" value="default" />
105
- </form>
106
- </div>
107
- <script type="text/javascript">$('#searchbox').show(0);</script>
108
- </div>
109
- </div>
110
- <div class="documentwrapper">
111
- <div class="bodywrapper">
112
- <div class="body" role="main">
113
-
114
- <div class="section" id="message-types">
115
- <span id="messagetypes"></span><span id="ug-messagetypes"></span><span id="index-0"></span><h1>16. Message Types<a class="headerlink" href="#message-types" title="Permalink to this headline">¶</a></h1>
116
- <p>Message communication between the publisher and subscriber in AMPS is
117
- managed through the use of message types. Message types define the data
118
- contained within an AMPS message. Each topic has a specific message
119
- type. Transports used for publishers and subscribers can also define
120
- specific message types. For a given transport, AMPS will only process
121
- messages of the type or types that the transport accepts.</p>
122
- <p>When AMPS needs to use the data within a message, AMPS uses the message
123
- type to parse the message into an internal representation. AMPS uses the
124
- same internal representation for all message types. Likewise, if AMPS
125
- needs to create a new message from a set of values (for example, for a
126
- view), AMPS uses the message type to serialize that set of values into
127
- the correct format. AMPS filters, commands, processing flow, and so
128
- forth are the same for every message type. Message types do not change
129
- how AMPS processes messages. A message type simply allows AMPS to work
130
- with data of a particular format.</p>
131
- <p>In some cases, a given message type cannot support all of the
132
- capabilities in AMPS. For example, the unparsed <code class="docutils literal"><span class="pre">binary</span></code> message type
133
- allows arbitrary payloads. This can be extremely useful, but because
134
- there is no set format for that message type, none of the capabilities
135
- that rely on parsing data are supported by the <code class="docutils literal"><span class="pre">binary</span></code> message type.
136
- Where a message type cannot provide a specific capability to AMPS, those
137
- limitations are described below.</p>
138
- <p>Except where limitations are described in this section, all message
139
- types provided with the AMPS server support all AMPS features. The AMPS
140
- engine itself is message-type agnostic. There is no difference in
141
- configuring a SOW that uses a composite type than there is configuring a
142
- SOW that uses JSON, or BFlat, or Google Protocol buffers.</p>
143
- <p>Message types in AMPS are implemented as plug-in modules. For more
144
- information on plug-in modules, contact 60East support for access to the
145
- AMPS Server SDK.</p>
146
- <div class="section" id="default-message-types">
147
- <h2>Default Message Types<a class="headerlink" href="#default-message-types" title="Permalink to this headline">¶</a></h2>
148
- <p>AMPS automatically loads modules for the following message types:</p>
149
- <table border="1" class="docutils" id="id1">
150
- <caption><span class="caption-text"><em>AMPS Default Message Types</em></span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
151
- <colgroup>
152
- <col width="50%" />
153
- <col width="50%" />
154
- </colgroup>
155
- <thead valign="bottom">
156
- <tr class="row-odd"><th class="head">Message Type</th>
157
- <th class="head">Description</th>
158
- </tr>
159
- </thead>
160
- <tbody valign="top">
161
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">bson</span></code></td>
162
- <td>Binary JSON (BSON) messages. See <a class="reference external" href="http://www.bsonspec.org">http://www.bsonspec.org</a> for information on this format.</td>
163
- </tr>
164
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">bflat</span></code></td>
165
- <td>BFlat, a schemaless message format based on key-value pairs that includes support for binary
166
- representations of numeric data. See <a class="reference external" href="http://bflat.io">http://bflat.io</a> for information on this format.</td>
167
- </tr>
168
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">fix</span></code></td>
169
- <td>FIX messages using numeric tags. FIX is a standard format widely used in the financial
170
- industry. See <a class="reference external" href="https://www.fixtrading.org/what-is-fix/">https://www.fixtrading.org/what-is-fix/</a> for more information on
171
- this format.</td>
172
- </tr>
173
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">json</span></code></td>
174
- <td>JSON (JavaScript Object Notation) messages. See <a class="reference external" href="http://www.json.org">http://www.json.org</a> for information on this
175
- format.</td>
176
- </tr>
177
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">msgpack</span></code></td>
178
- <td>MessagePack messages. MessagePack is a schemaless serialization format designed to
179
- efficiently encode data. See <a class="reference external" href="http://msgpack.org/index.html">http://msgpack.org/index.html</a> for more information on
180
- MessagePack.</td>
181
- </tr>
182
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">nvfix</span></code></td>
183
- <td>NVFIX (name/value FIX) messages. NVFIX uses the same basic format as FIX, but allows tags to
184
- contain any byte that is not <code class="docutils literal"><span class="pre">=</span></code> or the configured field separator character (by default,
185
- the ASCII <code class="docutils literal"><span class="pre">SOH</span></code> character.) By contrast, FIX requires that tags are numeric.</td>
186
- </tr>
187
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">xml</span></code></td>
188
- <td>XML messages (of any schema)</td>
189
- </tr>
190
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">binary</span></code></td>
191
- <td>Uninterpreted binary payload. Because this module does not attempt to parse the payload, it
192
- does not support content filtering, views and aggregates. Likewise, because there is no set
193
- format for the payload, this message type cannot support features that construct messages
194
- (such as delta messaging, <code class="docutils literal"><span class="pre">/AMPS/.*</span></code> topic subscriptions and <code class="docutils literal"><span class="pre">stats</span></code> acks).</td>
195
- </tr>
196
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">protobuf</span></code></td>
197
- <td>Google protocol buffer messages. To use this message type, you must configure a
198
- <code class="docutils literal"><span class="pre">MessageType</span></code> with the format of the messages (the <code class="docutils literal"><span class="pre">.proto</span></code> files).</td>
199
- </tr>
200
- </tbody>
201
- </table>
202
- <p>With these message types, AMPS automatically loads the module that
203
- provides the message type. AMPS declares message types for all of the
204
- above message types except for <code class="docutils literal"><span class="pre">protobuf</span></code>.</p>
205
- <p id="index-1">For efficiency, AMPS only parses the content of a message if required,
206
- and only to the extent required. For example, if AMPS only needs to find
207
- the <code class="docutils literal"><span class="pre">id</span></code> tag in an NVFIX message, AMPS will not fully parse the
208
- message, but will stop parsing the message after finding the <code class="docutils literal"><span class="pre">id</span></code> tag.
209
- This provides significant performance improvements, and also means that
210
- AMPS does not verify the format or validity of messages unless it needs
211
- to parse the messages. When AMPS parses a message, it may only partially
212
- parse a message, and may not detect corruption or invalid format in a
213
- message if that corruption occurs after the point at which AMPS has all
214
- of the required information from the message.</p>
215
- <p>The FIX and NVFIX message types support configuration of the field and
216
- message delimiters.</p>
217
- <p>AMPS also allows you to create new message types by assembling existing
218
- message types into a composite message. Composite message types are
219
- described in <a class="reference internal" href="#ug-messagetypes-composite"><span class="std std-ref">Composite Messages</span></a>, and
220
- require additional configuration:</p>
221
- <table border="1" class="docutils" id="id2">
222
- <caption><span class="caption-text"><em>AMPS Composite Message Types</em></span><a class="headerlink" href="#id2" title="Permalink to this table">¶</a></caption>
223
- <colgroup>
224
- <col width="50%" />
225
- <col width="50%" />
226
- </colgroup>
227
- <thead valign="bottom">
228
- <tr class="row-odd"><th class="head">Message Type Name</th>
229
- <th class="head">Description</th>
230
- </tr>
231
- </thead>
232
- <tbody valign="top">
233
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">composite-global</span></code></td>
234
- <td>Composite message type that combines message parts for content filtering. This
235
- message type combines one or more existing message types into a message. This
236
- type is described in more detail in
237
- <a class="reference internal" href="#ug-messagetypes-composite"><span class="std std-ref">Composite Messages</span></a>.</td>
238
- </tr>
239
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">composite-local</span></code></td>
240
- <td>Composite message type, filterable by individual parts. This message type
241
- combines one or more existing message types into a message. This type is
242
- described in more detail in
243
- <a class="reference internal" href="#ug-messagetypes-composite"><span class="std std-ref">Composite Messages</span></a>.</td>
244
- </tr>
245
- </tbody>
246
- </table>
247
- </div>
248
- <div class="section" id="bflat-messages">
249
- <span id="index-2"></span><h2>BFlat Messages<a class="headerlink" href="#bflat-messages" title="Permalink to this headline">¶</a></h2>
250
- <p>The BFlat message format combines the simplicity and efficiency of
251
- simple, schemaless data formats such as FIX and NVFIX with the ability
252
- to manage binary data and preserve the full precision of numeric values.
253
- BFlat is especially useful for applications that deal with binary data
254
- or precise numeric values while demanding high levels of throughput.</p>
255
- <p>A BFlat message is composed of any number of tag/value pairs, similar to
256
- FIX and NVFIX messages. Tags and values can contain any value and can
257
- be of any length. Unlike formats such as FIX, there are no reserved
258
- characters. In practical terms, the name of a tag must be a valid XPath
259
- identifier to filter the message in AMPS. However, this is a limitation
260
- of XPath and not of the BFlat message format.</p>
261
- <p>The BFlat message type supports all AMPS features and there are no
262
- special considerations when using the BFlat message type.</p>
263
- <p>Open-source libraries for producing and parsing BFlat messages are available
264
- from the <a class="reference external" href="http://bflat.io">BFlat project</a> site.</p>
265
- <div class="section" id="bflat-data-types">
266
- <h3>BFlat Data Types<a class="headerlink" href="#bflat-data-types" title="Permalink to this headline">¶</a></h3>
267
- <p>BFlat messages are strongly typed. For numeric values, BFlat can preserve
268
- the precise value of the following numeric types:</p>
269
- <table border="1" class="colwidths-given docutils" id="id3">
270
- <caption><span class="caption-text"><em>BFlat Numeric Types</em></span><a class="headerlink" href="#id3" title="Permalink to this table">¶</a></caption>
271
- <colgroup>
272
- <col width="25%" />
273
- <col width="75%" />
274
- </colgroup>
275
- <thead valign="bottom">
276
- <tr class="row-odd"><th class="head">Type</th>
277
- <th class="head">Description</th>
278
- </tr>
279
- </thead>
280
- <tbody valign="top">
281
- <tr class="row-even"><td>int8</td>
282
- <td>8-bit integer</td>
283
- </tr>
284
- <tr class="row-odd"><td>int16</td>
285
- <td>16-bit integer</td>
286
- </tr>
287
- <tr class="row-even"><td>int32</td>
288
- <td>32-bit integer</td>
289
- </tr>
290
- <tr class="row-odd"><td>int64</td>
291
- <td>64-bit integer</td>
292
- </tr>
293
- <tr class="row-even"><td>double</td>
294
- <td>64-bit IEEE 754 floating point
295
- number</td>
296
- </tr>
297
- <tr class="row-odd"><td>datetime</td>
298
- <td>UTC datetime containing milliseconds
299
- since Unix epoch (64-bit
300
- representation)</td>
301
- </tr>
302
- <tr class="row-even"><td>leb128</td>
303
- <td>Signed LEB128 integer (variable
304
- length)</td>
305
- </tr>
306
- </tbody>
307
- </table>
308
- <p>BFlat also includes the following non-numeric types:</p>
309
- <table border="1" class="colwidths-given docutils" id="id4">
310
- <caption><span class="caption-text"><em>BFlat non-numeric Types</em></span><a class="headerlink" href="#id4" title="Permalink to this table">¶</a></caption>
311
- <colgroup>
312
- <col width="25%" />
313
- <col width="75%" />
314
- </colgroup>
315
- <thead valign="bottom">
316
- <tr class="row-odd"><th class="head">Type</th>
317
- <th class="head">Description</th>
318
- </tr>
319
- </thead>
320
- <tbody valign="top">
321
- <tr class="row-even"><td>null</td>
322
- <td>Empty field</td>
323
- </tr>
324
- <tr class="row-odd"><td>string</td>
325
- <td><p class="first">String of bytes</p>
326
- <p class="last">BFlat does not specify the encoding
327
- of a string; this is up to the
328
- application to determine.</p>
329
- </td>
330
- </tr>
331
- <tr class="row-even"><td>binary</td>
332
- <td>Untyped sequence of bytes</td>
333
- </tr>
334
- </tbody>
335
- </table>
336
- <p>BFlat includes the ability to represent arrays of values.</p>
337
- <div class="section" id="representing-data-in-bflat">
338
- <h4>Representing Data in BFlat<a class="headerlink" href="#representing-data-in-bflat" title="Permalink to this headline">¶</a></h4>
339
- <p>By convention, BFlat serializers should choose the most compact representation of a
340
- given value. For example, if an integer value can fit into 8 bits, it should be
341
- serialized as a value of type <code class="docutils literal"><span class="pre">int8</span></code>. An application that parses BFlat should
342
- assume that a serializer may use different types for values in the same field,
343
- to optimize for a compact representation, and should not rely on a value being
344
- of a specific type.</p>
345
- <p>For example, a <code class="docutils literal"><span class="pre">TotalValue</span></code> field that can have any integer value could
346
- be serialized with a type of <code class="docutils literal"><span class="pre">int8</span></code> for values that fit in 8 bits, but could
347
- be serialized with a integer type that includes more bits if the value is larger,
348
- and could be serialized with the <code class="docutils literal"><span class="pre">leb128</span></code> type for integer values that cannot
349
- be represented in 64 bits.</p>
350
- <p>When the AMPS server must serialize a BFlat message (for example, when projecting
351
- a view or as a result of enrichment), AMPS tries to optimize for the most compact message size,
352
- which could change the representation if the serializer did not choose the most
353
- compact type for a value.</p>
354
- </div>
355
- </div>
356
- </div>
357
- <div class="section" id="messagepack-messages">
358
- <span id="index-3"></span><h2>MessagePack Messages<a class="headerlink" href="#messagepack-messages" title="Permalink to this headline">¶</a></h2>
359
- <p>AMPS fully supports MessagePack messages, with the following
360
- implementation decisions to represent MessagePack messages in
361
- the AMPS type system. See <a class="reference internal" href="amps_expressions.html#ug-expressions-data-types"><span class="std std-ref">AMPS Data Types</span></a> for
362
- information on the AMPS data types. Notice, in particular, that
363
- the AMPS expression language supports automatic type conversion,
364
- so while this table shows the default AMPS representation for
365
- a given MessagePack type, AMPS will convert a value as needed
366
- once the message has been parsed.</p>
367
- <table border="1" class="docutils" id="id5">
368
- <caption><span class="caption-text"><em>MessagePack Types and AMPS Types</em></span><a class="headerlink" href="#id5" title="Permalink to this table">¶</a></caption>
369
- <colgroup>
370
- <col width="50%" />
371
- <col width="50%" />
372
- </colgroup>
373
- <thead valign="bottom">
374
- <tr class="row-odd"><th class="head">MessagePack Type</th>
375
- <th class="head">AMPS Representation</th>
376
- </tr>
377
- </thead>
378
- <tbody valign="top">
379
- <tr class="row-even"><td>nil</td>
380
- <td>NULL</td>
381
- </tr>
382
- <tr class="row-odd"><td>bool</td>
383
- <td>Boolean</td>
384
- </tr>
385
- <tr class="row-even"><td>int (all widths)</td>
386
- <td>Integer</td>
387
- </tr>
388
- <tr class="row-odd"><td>float (all widths)</td>
389
- <td>Float</td>
390
- </tr>
391
- <tr class="row-even"><td>str (all widths)</td>
392
- <td>String</td>
393
- </tr>
394
- <tr class="row-odd"><td>bin (all widths)</td>
395
- <td>String</td>
396
- </tr>
397
- <tr class="row-even"><td>array (all widths)</td>
398
- <td>array of AMPS values</td>
399
- </tr>
400
- <tr class="row-odd"><td>map (all widths)</td>
401
- <td>nested AMPS values</td>
402
- </tr>
403
- <tr class="row-even"><td>ext (all widths)</td>
404
- <td>String</td>
405
- </tr>
406
- </tbody>
407
- </table>
408
- <p>Notice that AMPS does not attempt to interpret extension types, and instead
409
- represents them as arrays of bytes (a String in the AMPS type system).</p>
410
- </div>
411
- <div class="section" id="composite-messages">
412
- <span id="ug-messagetypes-composite"></span><h2>Composite Messages<a class="headerlink" href="#composite-messages" title="Permalink to this headline">¶</a></h2>
413
- <p>Sometimes, applications only need to filter on a small subset of the
414
- fields in a message. Sometimes applications need to send and receive
415
- messages that cannot be meaningfully parsed by AMPS, such as images or
416
- audio files. For these cases, AMPS provides a composite message type
417
- that lets you create a new message type by combining existing message
418
- types.</p>
419
- <p>For example, you might create a message type that includes three parts:
420
- the metadata for an image as a <code class="docutils literal"><span class="pre">json</span></code> document, a small JPG thumbnail
421
- as a <code class="docutils literal"><span class="pre">binary</span></code> message part, and a full size PNG image as another
422
- <code class="docutils literal"><span class="pre">binary</span></code> message part.</p>
423
- <p>Composite messages can also be useful when the message itself is large
424
- or resource-intensive to parse. In this case, you can create a message
425
- type that includes the information needed to filter messages in a JSON
426
- or NVFIX part, and include the full message in the unparsed payload of
427
- the composite message, as described below.</p>
428
- <p>AMPS provides two different types of composite messages. Messages
429
- created using the <code class="docutils literal"><span class="pre">composite-local</span></code> module preserve information about
430
- the individual parts for filtering, aggregation, and projection.
431
- Messages created using the <code class="docutils literal"><span class="pre">composite-global</span></code> module treat the
432
- individual parts as elements of a single document.</p>
433
- <div class="section" id="configuring-composite-message-types">
434
- <span id="index-4"></span><h3>Configuring Composite Message Types<a class="headerlink" href="#configuring-composite-message-types" title="Permalink to this headline">¶</a></h3>
435
- <p>To use a composite message type, you must first configure the type by
436
- declaring it in the <code class="docutils literal"><span class="pre">MessageTypes</span></code> section of the AMPS configuration
437
- file. The declaration contains the name of the new composite message
438
- type, specifies that the new type is composite, and lists the parts of
439
- the composite message type.</p>
440
- <p>For example, the <code class="docutils literal"><span class="pre">MessageType</span></code> element below declares a new composite
441
- message type named <code class="docutils literal"><span class="pre">images</span></code>. The new type contains a <code class="docutils literal"><span class="pre">json</span></code> document
442
- at the beginning of the message, followed by two uninterpreted binary
443
- message parts. AMPS will combine the XPath identifiers for all message
444
- parts into a single set of identifiers. Notice that, because only one
445
- part of the message type is parsable, using <code class="docutils literal"><span class="pre">composite-global</span></code>
446
- simplifies the identifiers for the message.</p>
447
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;MessageTypes&gt;</span>
448
- ...
449
-
450
- <span class="nt">&lt;MessageType&gt;</span>
451
- <span class="nt">&lt;Name&gt;</span>images<span class="nt">&lt;/Name&gt;</span>
452
- <span class="nt">&lt;Module&gt;</span>composite-global<span class="nt">&lt;/Module&gt;</span>
453
- <span class="nt">&lt;MessageType&gt;</span>json<span class="nt">&lt;/MessageType&gt;</span>
454
- <span class="nt">&lt;MessageType&gt;</span>binary<span class="nt">&lt;/MessageType&gt;</span>
455
- <span class="nt">&lt;MessageType&gt;</span>binary<span class="nt">&lt;/MessageType&gt;</span>
456
- <span class="nt">&lt;/MessageType&gt;</span>
457
-
458
- ...
459
-
460
- <span class="nt">&lt;/MessageTypes&gt;</span>
461
- </pre></div>
462
- </div>
463
- <p>The <code class="docutils literal"><span class="pre">MessageType</span></code> entries for the composite message can be any AMPS
464
- message type, including both the built-in types and any previously
465
- defined message type.</p>
466
- <p>Once the new composite message type is created, you can use the new type
467
- in the configuration file.</p>
468
- <p>Composite message types have the following restrictions:</p>
469
- <ul class="simple">
470
- <li>Delta subscribe and delta publish are not supported for message types
471
- that use <code class="docutils literal"><span class="pre">composite-global</span></code>.</li>
472
- <li>Views, joins, and aggregation cannot project message types that use
473
- <code class="docutils literal"><span class="pre">composite-global</span></code>. (However, composite message types that use
474
- <code class="docutils literal"><span class="pre">composite-global</span></code> <em>can</em> be an <code class="docutils literal"><span class="pre">UnderlyingTopic</span></code> or one of the
475
- topics in a <code class="docutils literal"><span class="pre">Join</span></code>.)</li>
476
- <li>Composite message types do not support features that automatically
477
- construct messages, such as subscriptions to the <code class="docutils literal"><span class="pre">AMPS/.*</span></code> topics and
478
- stats acks, regardless of the module the type uses.</li>
479
- </ul>
480
- <div class="section" id="unparsed-payload-section">
481
- <h4>Unparsed Payload Section<a class="headerlink" href="#unparsed-payload-section" title="Permalink to this headline">¶</a></h4>
482
- <p>All composite message types, regardless of how they are defined, provide
483
- an <em>unparsed payload</em> section. The unparsed payload section does not
484
- need to be declared in the <code class="docutils literal"><span class="pre">MessageType</span></code> declaration. As the name
485
- suggests, AMPS does not parse or interpret this section, so the unparsed
486
- payload can contain any content of any type. In an AMPS client,
487
- the unparsed payload section is represented as bytes that appear
488
- at the end of the message, after the last defined part.</p>
489
- <p>The unparsed payload is included to simplify the common technique where
490
- a message type contains a header that is used for filtering followed by
491
- an unparsed binary. If your composite message type contains a single
492
- binary part, consider using the unparsed payload section in your
493
- application rather than declaring a binary message part. Notice,
494
- however, that since AMPS does not parse or interpret this section,
495
- it may not appear in serialized representations of the message
496
- (for example, log messages, Galvanometer display, and so on).</p>
497
- </div>
498
- </div>
499
- <div class="section" id="content-filtering-with-composite-message-types">
500
- <h3>Content Filtering with Composite Message Types<a class="headerlink" href="#content-filtering-with-composite-message-types" title="Permalink to this headline">¶</a></h3>
501
- <p>Composite message types support filtering on the contents of the
502
- composite message. There are some simple conventions to remember when
503
- constructing expressions to filter on. For more details about content
504
- filtering, see <a class="reference internal" href="pub_sub.html#pub-sub-content"><span class="std std-ref">Filtering Subscriptions by Content</span></a>.</p>
505
- <p>These conventions are consistent anywhere that AMPS needs to find a
506
- value within the composite message type. That includes content filters
507
- for client subscriptions, identifying SOW keys, creating views and
508
- aggregates, creating conflated topics, and so on.</p>
509
- <div class="section" id="composite-global">
510
- <h4>composite-global<a class="headerlink" href="#composite-global" title="Permalink to this headline">¶</a></h4>
511
- <p>When using the <code class="docutils literal"><span class="pre">composite-global</span></code> message type, AMPS combines all
512
- parts of the message into a unified set of XPath identifiers. AMPS
513
- creates the set of identifiers for each part of the message. If
514
- different parts of the message contain the same identifier, AMPS treats
515
- that identifier as though the identifier contained an array of values:
516
- AMPS creates an array that contains all of the values in the different
517
- parts of the message. Message types that do not support content
518
- filtering do not provide XPath identifiers.</p>
519
- <p>For example, consider the message below for a <code class="docutils literal"><span class="pre">composite-global</span></code>
520
- message type that includes two <code class="docutils literal"><span class="pre">json</span></code> parts and a <code class="docutils literal"><span class="pre">binary</span></code> part:</p>
521
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">&quot;data&quot;</span><span class="p">:</span><span class="s2">&quot;sample&quot;</span><span class="p">,</span><span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;part one message&quot;</span><span class="p">}</span>
522
- <span class="p">{</span><span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;another part&quot;</span><span class="p">,</span><span class="s2">&quot;customer&quot;</span><span class="p">:</span><span class="s2">&quot;Awesome Amalgamated, Ltd.&quot;</span><span class="p">}</span>
523
- <span class="mh">0xDEEA0934DF23A37780934</span><span class="o">...</span>
524
- </pre></div>
525
- </div>
526
- <p>AMPS constructs the following set of XPath identifiers and values:</p>
527
- <table border="1" class="docutils" id="id6">
528
- <caption><span class="caption-text"><em>Composite-global Message Identifiers</em></span><a class="headerlink" href="#id6" title="Permalink to this table">¶</a></caption>
529
- <colgroup>
530
- <col width="50%" />
531
- <col width="50%" />
532
- </colgroup>
533
- <thead valign="bottom">
534
- <tr class="row-odd"><th class="head">Identifier</th>
535
- <th class="head">Value</th>
536
- </tr>
537
- </thead>
538
- <tbody valign="top">
539
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">/id</span></code></td>
540
- <td><code class="docutils literal"><span class="pre">1</span></code></td>
541
- </tr>
542
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">/data</span></code></td>
543
- <td><code class="docutils literal"><span class="pre">&quot;sample&quot;</span></code></td>
544
- </tr>
545
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">/message</span></code></td>
546
- <td><code class="docutils literal"><span class="pre">[&quot;part</span> <span class="pre">one</span> <span class="pre">message&quot;,</span> <span class="pre">&quot;another</span> <span class="pre">part&quot;]</span></code></td>
547
- </tr>
548
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">/customer</span></code></td>
549
- <td><code class="docutils literal"><span class="pre">&quot;Awesome</span> <span class="pre">Amalgamated,</span> <span class="pre">Ltd.&quot;</span></code></td>
550
- </tr>
551
- </tbody>
552
- </table>
553
- <p>In short, when using <code class="docutils literal"><span class="pre">composite-global</span></code>, AMPS combines the parsable
554
- parts of the message into a single global set of XPath values, and
555
- ignores any part of the message that cannot be parsed.</p>
556
- </div>
557
- <div class="section" id="composite-local">
558
- <h4>composite-local<a class="headerlink" href="#composite-local" title="Permalink to this headline">¶</a></h4>
559
- <p>When using the <code class="docutils literal"><span class="pre">composite-local</span></code> message type, AMPS creates a distinct
560
- set of XPath identifiers for each part of the message. AMPS adds an
561
- XPath step with the position of the message part at the beginning of the
562
- identifier. Message types that do not support content filtering do not
563
- provide XPath identifiers, and AMPS skips over them.</p>
564
- <p>For example, consider the message below for a <code class="docutils literal"><span class="pre">composite-local</span></code>
565
- message type that includes two <code class="docutils literal"><span class="pre">json</span></code> parts and a <code class="docutils literal"><span class="pre">binary</span></code> part:</p>
566
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">&quot;data&quot;</span><span class="p">:</span><span class="s2">&quot;sample&quot;</span><span class="p">,</span><span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;part one message&quot;</span><span class="p">}</span>
567
- <span class="p">{</span><span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;another part&quot;</span><span class="p">,</span><span class="s2">&quot;customer&quot;</span><span class="p">:</span><span class="s2">&quot;Awesome Amalgamated, Ltd.&quot;</span><span class="p">}</span>
568
- <span class="mh">0xDEEA0934DF23A37780934</span><span class="o">...</span>
569
- </pre></div>
570
- </div>
571
- <p>AMPS constructs the following set of XPath identifiers and values:</p>
572
- <table border="1" class="docutils" id="id7">
573
- <caption><span class="caption-text"><em>Composite-local Message Identifiers</em></span><a class="headerlink" href="#id7" title="Permalink to this table">¶</a></caption>
574
- <colgroup>
575
- <col width="50%" />
576
- <col width="50%" />
577
- </colgroup>
578
- <thead valign="bottom">
579
- <tr class="row-odd"><th class="head">Identifier</th>
580
- <th class="head">Value</th>
581
- </tr>
582
- </thead>
583
- <tbody valign="top">
584
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">/0/id</span></code></td>
585
- <td><code class="docutils literal"><span class="pre">1</span></code></td>
586
- </tr>
587
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">/0/data</span></code></td>
588
- <td><code class="docutils literal"><span class="pre">&quot;sample&quot;</span></code></td>
589
- </tr>
590
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">/0/message</span></code></td>
591
- <td><code class="docutils literal"><span class="pre">&quot;part</span> <span class="pre">one</span> <span class="pre">message&quot;</span></code></td>
592
- </tr>
593
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">/1/message</span></code></td>
594
- <td><code class="docutils literal"><span class="pre">&quot;another</span> <span class="pre">part&quot;</span></code></td>
595
- </tr>
596
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">/1/customer</span></code></td>
597
- <td><code class="docutils literal"><span class="pre">&quot;Awesome</span> <span class="pre">Amalgamated,</span> <span class="pre">Ltd.&quot;</span></code></td>
598
- </tr>
599
- </tbody>
600
- </table>
601
- <p>In short, when using <code class="docutils literal"><span class="pre">composite-local</span></code>, AMPS creates XPath identifiers
602
- for each part of the message, using the position of the message part
603
- within the composite as the first part of the identifier. AMPS skips
604
- over any part of the message that cannot be parsed, and simply produces
605
- no values for that part of the message.</p>
606
- </div>
607
- </div>
608
- <div class="section" id="choosing-a-composite-type">
609
- <h3>Choosing a Composite Type<a class="headerlink" href="#choosing-a-composite-type" title="Permalink to this headline">¶</a></h3>
610
- <p>To choose which composite type best fits your application, consider the
611
- following factors:</p>
612
- <ul class="simple">
613
- <li>If you need to use delta messaging with this message type, use
614
- <code class="docutils literal"><span class="pre">composite-local</span></code>.</li>
615
- <li>If there may be redundant field names in the parts of the message,
616
- and it is important to be able to filter based on which part contains
617
- the field, use <code class="docutils literal"><span class="pre">composite-local</span></code>.</li>
618
- <li>If you need to be able to create views of this type, use
619
- <code class="docutils literal"><span class="pre">composite-local</span></code>.</li>
620
- </ul>
621
- <p>Otherwise, <code class="docutils literal"><span class="pre">composite-global</span></code> may be easier and more straightforward
622
- for client filtering, since clients do not need to know the detailed
623
- structure of the message type to be able to filter on the message.</p>
624
- </div>
625
- </div>
626
- <div class="section" id="protobuf-message-types">
627
- <h2>Protobuf Message Types<a class="headerlink" href="#protobuf-message-types" title="Permalink to this headline">¶</a></h2>
628
- <p>Protocol buffers, or protobufs for short, is an efficient, automated
629
- mechanism for serializing structured data. AMPS supports Google protobuf
630
- messages (version 2 and version 3) as a message format.</p>
631
- <p>Since Google protocol buffers use a fixed format for messages, to use
632
- protobuf, you must configure AMPS with the definition of the messages
633
- AMPS will process. This involves defining a <code class="docutils literal"><span class="pre">MessageType</span></code>. You must
634
- define a <code class="docutils literal"><span class="pre">MessageType</span></code> for AMPS to be able to parse protobuf messages.</p>
635
- <p>60East recommends that the <code class="docutils literal"><span class="pre">.proto</span></code> files used with AMPS explicitly
636
- declare the protocol buffer syntax version used. If there is no explicit
637
- declaration, AMPS assumes the file uses protocol buffer 2 syntax.</p>
638
- <p>The AMPS engine is message-type agnostic. Except for the limitations
639
- described in this section, there is no difference to the AMPS engine
640
- between message types that use protocol buffers and other message types
641
- such as JSON or XML or FIX.</p>
642
- <div class="section" id="configuring-protobuf-message-types">
643
- <h3>Configuring Protobuf Message Types<a class="headerlink" href="#configuring-protobuf-message-types" title="Permalink to this headline">¶</a></h3>
644
- <p>To use a protobuf message, you must first edit the configuration file to
645
- include a new <code class="docutils literal"><span class="pre">MessageType</span></code>. Then, specify the path to the protobuf
646
- file and the name of the protobuf file itself inside the
647
- <code class="docutils literal"><span class="pre">MessageType</span></code>. Below is a sample configuration of a protobuf message
648
- type:</p>
649
- <div class="highlight-xml"><div class="highlight"><pre><span></span>...
650
-
651
- <span class="nt">&lt;MessageType&gt;</span>
652
- <span class="nt">&lt;Name&gt;</span>my-protobuf-messages<span class="nt">&lt;/Name&gt;</span>
653
- <span class="nt">&lt;Module&gt;</span>protobuf<span class="nt">&lt;/Module&gt;</span>
654
- <span class="nt">&lt;ProtoPath&gt;</span>proto-archive;/mnt/shared/protofiles<span class="nt">&lt;/ProtoPath&gt;</span>
655
- <span class="nt">&lt;ProtoFile&gt;</span>proto-archive/person.proto<span class="nt">&lt;/ProtoFile&gt;</span>
656
- <span class="nt">&lt;Type&gt;</span>MyNamespace.Message<span class="nt">&lt;/Type&gt;</span>
657
- <span class="nt">&lt;/MessageType&gt;</span>
658
-
659
- ...
660
- </pre></div>
661
- </div>
662
- <p>Each message type references a <code class="docutils literal"><span class="pre">ProtoFile</span></code>, and specifies a single
663
- top-level type from the file. The <code class="docutils literal"><span class="pre">ProtoFile</span></code> may include other files
664
- through the standard protocol buffer include mechanism. Likewise, the
665
- top-level type may be any valid protocol buffer definition, including
666
- definitions that contain other types.</p>
667
- <p>Once the protocol buffer <code class="docutils literal"><span class="pre">MessageType</span></code> is created as described
668
- above, you must either create a <code class="docutils literal"><span class="pre">Transport</span></code> that specifies that
669
- message type exactly, or you must create a <code class="docutils literal"><span class="pre">Transport</span></code> that can
670
- accept any known message type and ensure that the client specifies the
671
- new message type (in the example case, <code class="docutils literal"><span class="pre">my-protobuf-message</span></code>) in the
672
- connect string.</p>
673
- <p>When creating a <code class="docutils literal"><span class="pre">protobuf</span></code> message type, you must provide the
674
- following parameters:</p>
675
- <table border="1" class="docutils" id="id8">
676
- <caption><span class="caption-text"><em>Protobuf Message Type Parameters</em></span><a class="headerlink" href="#id8" title="Permalink to this table">¶</a></caption>
677
- <colgroup>
678
- <col width="50%" />
679
- <col width="50%" />
680
- </colgroup>
681
- <thead valign="bottom">
682
- <tr class="row-odd"><th class="head">Parameter</th>
683
- <th class="head">Description</th>
684
- </tr>
685
- </thead>
686
- <tbody valign="top">
687
- <tr class="row-even"><td><div class="code first last highlight-default"><div class="highlight"><pre><span></span><span class="n">Name</span>
688
- </pre></div>
689
- </div>
690
- </td>
691
- <td>The name of the new, customized message type. The rest of the configuration file will
692
- use this name to refer to the message type.</td>
693
- </tr>
694
- <tr class="row-odd"><td><div class="code first last highlight-default"><div class="highlight"><pre><span></span><span class="n">Module</span>
695
- </pre></div>
696
- </div>
697
- </td>
698
- <td>The module that contains the message type. Use <code class="docutils literal"><span class="pre">protobuf</span></code> for protocol buffer
699
- messages.</td>
700
- </tr>
701
- <tr class="row-even"><td><div class="code first last highlight-default"><div class="highlight"><pre><span></span><span class="n">ProtoPath</span>
702
- </pre></div>
703
- </div>
704
- </td>
705
- <td><p class="first">The path in which to search for <code class="docutils literal"><span class="pre">.proto</span></code> files. The content of this element has the
706
- following syntax:</p>
707
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="n">alias</span> <span class="p">;</span> <span class="n">full</span><span class="o">-</span><span class="n">path</span>
708
- </pre></div>
709
- </div>
710
- <p>The alias provides a short identifier to use when searching for .proto files. The
711
- full path is the path that is substituted for that identifier.</p>
712
- <p>For example, in the sample above, <code class="docutils literal"><span class="pre">proto-archive</span></code> is an alias for
713
- <code class="docutils literal"><span class="pre">/mnt/shared/protofiles</span></code>.</p>
714
- <p>A configuration may omit the alias and simply provide the path. For example:</p>
715
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="p">;</span><span class="o">/</span><span class="n">mnt</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">protodefs</span>
716
- </pre></div>
717
- </div>
718
- <p class="last">You may specify any number of <code class="docutils literal"><span class="pre">ProtoPath</span></code> declarations.</p>
719
- </td>
720
- </tr>
721
- <tr class="row-odd"><td><div class="code first last highlight-default"><div class="highlight"><pre><span></span><span class="n">ProtoFile</span>
722
- </pre></div>
723
- </div>
724
- </td>
725
- <td>The name of the <code class="docutils literal"><span class="pre">.proto</span></code> file to use for this message type. To use an alias, prefix
726
- the name of the file with the alias, as shown in the example above.</td>
727
- </tr>
728
- <tr class="row-even"><td><div class="code first last highlight-default"><div class="highlight"><pre><span></span><span class="n">Type</span>
729
- </pre></div>
730
- </div>
731
- </td>
732
- <td>The name of the type inside the <code class="docutils literal"><span class="pre">.proto</span></code> file to use for this message type. AMPS
733
- requires a single type.</td>
734
- </tr>
735
- </tbody>
736
- </table>
737
- </div>
738
- <div class="section" id="filtering-with-protobuf-messages">
739
- <h3>Filtering with Protobuf Messages<a class="headerlink" href="#filtering-with-protobuf-messages" title="Permalink to this headline">¶</a></h3>
740
- <p>To filter protobuf messages, there are a couple of conventions you must
741
- remember. AMPS XPath identifiers begin at the outermost message, so you
742
- can simply use member names for that message. If you have nested
743
- messages, you use the name of the nested message and the member name
744
- when creating an XPath identifier.</p>
745
- <p>For example, suppose you have the following definition in a
746
- <code class="docutils literal"><span class="pre">.proto</span></code> file:</p>
747
- <div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="n">message</span> <span class="n">person</span> <span class="p">{</span>
748
- <span class="n">required</span> <span class="n">string</span> <span class="n">name</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
749
- <span class="n">required</span> <span class="n">int32</span> <span class="n">personID</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
750
- <span class="p">}</span>
751
- </pre></div>
752
- </div>
753
- <p>To access the <code class="docutils literal"><span class="pre">personID</span></code> data member, you simply use the name of the
754
- data member as the XPath identifier. An example filter that verifies
755
- that a <code class="docutils literal"><span class="pre">personID</span></code> is greater than 1000 would be:</p>
756
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">personID</span> <span class="o">&gt;</span> <span class="mi">1000</span>
757
- </pre></div>
758
- </div>
759
- <p>If you have nested messages, you simply provide the path to the nested
760
- message you want to access.</p>
761
- <p>Let&#8217;s assume that the <code class="docutils literal"><span class="pre">person</span></code> message from the above example was
762
- nested inside another message with the name of <code class="docutils literal"><span class="pre">record</span></code>. The example
763
- filter below shows how to access the nested <code class="docutils literal"><span class="pre">person</span></code> message, and then
764
- filter to the <code class="docutils literal"><span class="pre">personID</span></code>:</p>
765
- <div class="code highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">person</span><span class="o">/</span><span class="n">personID</span> <span class="o">&gt;</span> <span class="mi">1000</span>
766
- </pre></div>
767
- </div>
768
- <p>In this case, the first part of the identifier (<code class="docutils literal"><span class="pre">/person</span></code>) specifies
769
- the sub-message. The second part of the identifier (<code class="docutils literal"><span class="pre">/personID</span></code>)
770
- specifies the field within that sub-message. Notice that, as always,
771
- there is no need to specify the name of the message for the outermost
772
- message.</p>
773
- </div>
774
- <div class="section" id="working-with-multiple-protocol-buffer-types">
775
- <h3>Working with Multiple Protocol Buffer Types<a class="headerlink" href="#working-with-multiple-protocol-buffer-types" title="Permalink to this headline">¶</a></h3>
776
- <p>Some applications require messages of different types: for example, an
777
- inventory management system may work with customer records,
778
- inventory records, and shipping order records.</p>
779
- <p>When using protocol buffers, each of these messages would use a
780
- different <code class="docutils literal"><span class="pre">.proto</span></code> file, and therefore would be a different
781
- message type. Unlike a self-describing format such as JSON or
782
- XML, the serialized form of a protocol buffer message type
783
- does not automatically contain any information about the type
784
- of message or the fields that the message contains. Therefore,
785
- each protocol buffer message type is best considered as a
786
- completely distinct type. For example, the parser created for
787
- an order record and the parser created for a customer record
788
- are different. Unlike self-describing formats, it is not possible
789
- to use a single parser for these types, or for a parser to
790
- correctly handle a previously-unknown message structure.</p>
791
- <p>There are two approaches to working with multiple protocol
792
- buffer types in an AMPS application:</p>
793
- <ol class="arabic simple">
794
- <li>Keep the message types distinct. Each message type requires
795
- a separate connection to AMPS. The advantage of this approach
796
- is that the <code class="docutils literal"><span class="pre">.proto</span></code> files can be maintained and updated
797
- separately. Each connection has a distinct type and only
798
- needs to handle messages of that type. The disadvantage of
799
- this approach is that the application must make a connection
800
- to AMPS for each type of message received.</li>
801
- <li>Create a &#8220;container&#8221; type that can
802
- <em>optionally</em> contain any of the needed message types. The
803
- advantage of this approach is that this requires only a
804
- single connection to AMPS. Since there is a single
805
- &#8220;container&#8221; type, a topic can hold this &#8220;container&#8221; type
806
- and have heterogeneous actual contents. The disadvantage
807
- to this approach is that it requires a consumer to
808
- understand the &#8220;container&#8221; type and changes to the
809
- contained types may need to be carefully managed across
810
- the consumers that use the container. A &#8220;container&#8221; type
811
- is typically a <code class="docutils literal"><span class="pre">oneof</span></code> of the contained types.</li>
812
- </ol>
813
- <p>For example, you might define a container as follows:</p>
814
- <div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="n">message</span> <span class="n">Container</span> <span class="p">{</span>
815
-
816
- <span class="n">oneof</span> <span class="p">{</span>
817
- <span class="n">Order</span> <span class="n">order_type</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
818
- <span class="n">Payment</span> <span class="n">payment_type</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
819
- <span class="p">}</span>
820
- <span class="p">}</span>
821
-
822
- <span class="n">message</span> <span class="n">Order</span> <span class="p">{</span>
823
- <span class="n">required</span> <span class="n">string</span> <span class="n">customer_id</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
824
- <span class="p">...</span>
825
- <span class="p">}</span>
826
-
827
- <span class="n">message</span> <span class="n">Payment</span> <span class="p">{</span>
828
- <span class="n">required</span> <span class="n">string</span> <span class="n">customer_id</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
829
- <span class="p">...</span>
830
- <span class="p">}</span>
831
- </pre></div>
832
- </div>
833
- <p>In this case, the container type will include <strong>either</strong> an
834
- <code class="docutils literal"><span class="pre">Order</span></code> or a <code class="docutils literal"><span class="pre">Payment</span></code>.</p>
835
- </div>
836
- <div class="section" id="union-types">
837
- <span id="ug-protobuf-union-types"></span><h3>Union Types<a class="headerlink" href="#union-types" title="Permalink to this headline">¶</a></h3>
838
- <p>When using a protocol buffer message type that contains a union, you can
839
- navigate the union using the names defined in the top-level element. For
840
- example, given the union defined below:</p>
841
- <div class="highlight-cpp"><div class="highlight"><pre><span></span><span class="n">message</span> <span class="n">MyUnion</span> <span class="p">{</span>
842
- <span class="n">optional</span> <span class="n">Order</span> <span class="n">order_type</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
843
- <span class="n">optional</span> <span class="n">Payment</span> <span class="n">payment_type</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
844
- <span class="p">}</span>
845
-
846
- <span class="n">message</span> <span class="n">Order</span> <span class="p">{</span>
847
- <span class="n">required</span> <span class="n">string</span> <span class="n">customer_id</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
848
- <span class="p">...</span>
849
- <span class="p">}</span>
850
-
851
- <span class="n">message</span> <span class="n">Payment</span> <span class="p">{</span>
852
- <span class="n">required</span> <span class="n">string</span> <span class="n">customer_id</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
853
- <span class="p">...</span>
854
- <span class="p">}</span>
855
- </pre></div>
856
- </div>
857
- <p>Providing a filter of <code class="docutils literal"><span class="pre">/order_type</span> <span class="pre">IS</span> <span class="pre">NOT</span> <span class="pre">NULL</span></code> will return all of the
858
- <code class="docutils literal"><span class="pre">MyUnion</span></code> messages that contain an <code class="docutils literal"><span class="pre">Order</span></code>, while providing a filter
859
- of <code class="docutils literal"><span class="pre">/payment_type/customer_id</span> <span class="pre">=</span> <span class="pre">'42'</span></code> will return only the <code class="docutils literal"><span class="pre">MyUnion</span></code>
860
- messages that contain a <code class="docutils literal"><span class="pre">Payment</span></code> message with a <code class="docutils literal"><span class="pre">customer_id</span></code> of
861
- <code class="docutils literal"><span class="pre">42</span></code>.</p>
862
- </div>
863
- <div class="section" id="limitations-of-the-protobuf-message-type">
864
- <h3>Limitations of the Protobuf Message Type<a class="headerlink" href="#limitations-of-the-protobuf-message-type" title="Permalink to this headline">¶</a></h3>
865
- <p>Because the <code class="docutils literal"><span class="pre">protobuf</span></code> message type requires a specific, fixed
866
- definition for messages, AMPS does not support operations that construct
867
- messages that may contain arbitrary values. In particular, protobuf does
868
- not support:</p>
869
- <ul class="simple">
870
- <li>Creating a View with a <code class="docutils literal"><span class="pre">protobuf</span></code> type as the <code class="docutils literal"><span class="pre">MessageType</span></code>. AMPS
871
- allows you to aggregate protobuf messages and project the results as
872
- another type, but the destination <code class="docutils literal"><span class="pre">MessageType</span></code> for a View cannot be a
873
- <code class="docutils literal"><span class="pre">protobuf</span></code> message type.</li>
874
- <li>Creating an aggregated subscription for a topic that contains messages
875
- of a <code class="docutils literal"><span class="pre">protobuf</span></code> message type.</li>
876
- <li>Subscriptions to AMPS internal topics. Protobuf message types do not
877
- support creating messages for AMPS internal topics, such as
878
- <code class="docutils literal"><span class="pre">/AMPS/ClientStatus</span></code>.</li>
879
- <li>Enriching or preprocessing <code class="docutils literal"><span class="pre">protobuf</span></code> message types. AMPS does
880
- not support enrichment or preprocessing of <code class="docutils literal"><span class="pre">protobuf</span></code> messages.</li>
881
- </ul>
882
- <p>Protocol buffer version 3 messages provide fixed default values for
883
- omitted fields. This means that there is no reliable way for AMPS to
884
- determine if a missing field has been intentionally left out of the
885
- message, or simply contains the fixed default value. The result
886
- is an additional limitation for protocol buffer version 3 message types:</p>
887
- <ul class="simple">
888
- <li>Protocol buffer version 3 message types do not support delta publish
889
- or delta subscribe.</li>
890
- </ul>
891
- <p>Protocol buffer version 2 message types can require that specific
892
- fields are provided in a message (that is, fields can be marked
893
- required). The result is an additional limitation for
894
- protocol buffer version 2 message types:</p>
895
- <ul class="simple">
896
- <li>Protocol buffer version 2 message types do not support providing a
897
- subset of fields in a message by specifying a select list.</li>
898
- </ul>
899
- <p>There are no other limitations in working with protocol buffer message
900
- types.</p>
901
- </div>
902
- <div class="section" id="working-with-optional-default-values">
903
- <h3>Working with Optional Default Values<a class="headerlink" href="#working-with-optional-default-values" title="Permalink to this headline">¶</a></h3>
904
- <p>Google protocol buffers provide the ability for a message to have fields
905
- that are both <em>optional</em>, so they need not be provided in the serialized
906
- message, and <em>defaulted</em>, so that there is a specific value interpreted
907
- when there is no value provided.</p>
908
- <p>When no value is provided in the serialized message for an optional
909
- default value, AMPS interprets the message differently depending on the
910
- context:</p>
911
- <ul class="simple">
912
- <li>For most uses, AMPS interprets the message as though the value is
913
- <em>present and set to the default value</em>. This means that you can
914
- filter on optional default values, use them as SOW keys, and
915
- aggregate optional default values regardless of whether a value is
916
- present in the serialized message.</li>
917
- <li>For <em>delta messaging</em> with protocol buffer version 2, AMPS treats an
918
- optional default value as though there is <em>no value present</em>. AMPS does
919
- not provide the default value. This means that a delta update must provide
920
- the default value <em>explicitly</em> in the serialized message to set the field to the
921
- default value. This also means that, if the value present in the
922
- message is not the default value, but was not changed on the current
923
- update, AMPS will not emit that value in messages to delta
924
- subscribers. (Since delta messaging is not supported with protocol
925
- buffer version 3, this issue does not arise with that version.)</li>
926
- </ul>
927
- </div>
928
- </div>
929
- <div class="section" id="struct-message-types">
930
- <h2>Struct Message Types<a class="headerlink" href="#struct-message-types" title="Permalink to this headline">¶</a></h2>
931
- <p>AMPS includes a message type that allows the server to parse and interpret
932
- binary data in a fixed format. When configuring the message type, you must
933
- include a definition of the format.</p>
934
- <p>This format is designed to allow AMPS to process messages serialized from
935
- raw memory, such as would be specified in a C-language <code class="docutils literal"><span class="pre">struct</span></code>.</p>
936
- <div class="section" id="configuring-a-struct-message-type">
937
- <h3>Configuring a Struct Message Type<a class="headerlink" href="#configuring-a-struct-message-type" title="Permalink to this headline">¶</a></h3>
938
- <p>To configure a <code class="docutils literal"><span class="pre">struct</span></code> message type, you must define each field that
939
- AMPS will use. This does not necessarily have to match the original definition
940
- of the data. It is possible to &#8220;skip over&#8221; parts of the binary data
941
- that AMPS should ignore by declaring that data to be padding.</p>
942
- <p>A <code class="docutils literal"><span class="pre">struct</span></code> message type definition must include one or more <code class="docutils literal"><span class="pre">Field</span></code> elements,
943
- specified in the order in which the data appears in the message. Each <code class="docutils literal"><span class="pre">Field</span></code> specifies
944
- the name of the field, and the type and length of the data to be used for that
945
- <code class="docutils literal"><span class="pre">Field</span></code>. The specifier for a field is composed of: <em>field name</em> <code class="docutils literal"><span class="pre">=</span></code> <em>data format specifier</em>
946
- where the field name is the XPath identifier that AMPS will use for this field and the
947
- data format specifier is a specifier for the type of data and number of bytes for this field.</p>
948
- <p>The data format specifier is modeled after the specifiers for the Python
949
- <code class="docutils literal"><span class="pre">struct</span></code> module. The format requires a data type specifier. The data
950
- type specifier may be preceded by an optional byte order specifier. For
951
- variable-width data types (for example, strings), include
952
- an optional byte order specifier and an optional count specifier.</p>
953
- <p>The following data type specifiers are recognized by the module:</p>
954
- <table border="1" class="docutils" id="id9">
955
- <caption><span class="caption-text"><em>Data type specifiers</em></span><a class="headerlink" href="#id9" title="Permalink to this table">¶</a></caption>
956
- <colgroup>
957
- <col width="25%" />
958
- <col width="25%" />
959
- <col width="25%" />
960
- <col width="25%" />
961
- </colgroup>
962
- <thead valign="bottom">
963
- <tr class="row-odd"><th class="head"><strong>Specifier</strong></th>
964
- <th class="head"><strong>C Type</strong></th>
965
- <th class="head"><strong>Size (bytes)</strong></th>
966
- <th class="head"><strong>AMPS Type</strong></th>
967
- </tr>
968
- </thead>
969
- <tbody valign="top">
970
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">x</span></code></td>
971
- <td><em>n/a</em></td>
972
- <td>(number of
973
- bytes must
974
- be specified)</td>
975
- <td>Padding bytes, ignored by AMPS</td>
976
- </tr>
977
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">c</span></code></td>
978
- <td><code class="docutils literal"><span class="pre">char</span></code></td>
979
- <td>1
980
- (number of bytes may
981
- be specified)</td>
982
- <td>string</td>
983
- </tr>
984
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">b</span></code></td>
985
- <td><code class="docutils literal"><span class="pre">signed</span> <span class="pre">char</span></code></td>
986
- <td>1</td>
987
- <td>integer</td>
988
- </tr>
989
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">B</span></code></td>
990
- <td><code class="docutils literal"><span class="pre">unsigned</span> <span class="pre">char</span></code></td>
991
- <td>1</td>
992
- <td>integer</td>
993
- </tr>
994
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">?</span></code></td>
995
- <td><p class="first"><code class="docutils literal"><span class="pre">bool</span></code></p>
996
- <p class="last">(as though
997
- <code class="docutils literal"><span class="pre">stdbool.h</span></code> were
998
- included)</p>
999
- </td>
1000
- <td>1</td>
1001
- <td>boolean</td>
1002
- </tr>
1003
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">h</span></code></td>
1004
- <td><code class="docutils literal"><span class="pre">short</span></code></td>
1005
- <td>2</td>
1006
- <td>integer</td>
1007
- </tr>
1008
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">H</span></code></td>
1009
- <td><code class="docutils literal"><span class="pre">unsigned</span> <span class="pre">short</span></code></td>
1010
- <td>2</td>
1011
- <td>integer</td>
1012
- </tr>
1013
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">i</span></code></td>
1014
- <td><code class="docutils literal"><span class="pre">int</span></code></td>
1015
- <td>4</td>
1016
- <td>integer</td>
1017
- </tr>
1018
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">I</span></code></td>
1019
- <td><code class="docutils literal"><span class="pre">unsigned</span> <span class="pre">int</span></code></td>
1020
- <td>4</td>
1021
- <td>integer</td>
1022
- </tr>
1023
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">l</span></code></td>
1024
- <td><code class="docutils literal"><span class="pre">long</span></code></td>
1025
- <td>4</td>
1026
- <td>integer</td>
1027
- </tr>
1028
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">L</span></code></td>
1029
- <td><code class="docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span></code></td>
1030
- <td>4</td>
1031
- <td>integer</td>
1032
- </tr>
1033
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">q</span></code></td>
1034
- <td><code class="docutils literal"><span class="pre">long</span> <span class="pre">long</span></code></td>
1035
- <td>8</td>
1036
- <td>integer</td>
1037
- </tr>
1038
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">Q</span></code></td>
1039
- <td><code class="docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span> <span class="pre">long</span></code></td>
1040
- <td>8</td>
1041
- <td>integer</td>
1042
- </tr>
1043
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">n</span></code></td>
1044
- <td><code class="docutils literal"><span class="pre">ssize_t</span></code></td>
1045
- <td>&#160;</td>
1046
- <td>integer</td>
1047
- </tr>
1048
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">N</span></code></td>
1049
- <td><code class="docutils literal"><span class="pre">size_t</span></code></td>
1050
- <td>&#160;</td>
1051
- <td>integer</td>
1052
- </tr>
1053
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">f</span></code></td>
1054
- <td><code class="docutils literal"><span class="pre">float</span></code></td>
1055
- <td>4</td>
1056
- <td>double</td>
1057
- </tr>
1058
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">d</span></code></td>
1059
- <td><code class="docutils literal"><span class="pre">double</span></code></td>
1060
- <td>8</td>
1061
- <td>double</td>
1062
- </tr>
1063
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">s</span></code></td>
1064
- <td><code class="docutils literal"><span class="pre">char[]</span></code></td>
1065
- <td>Number of bytes
1066
- must be specified,
1067
- AMPS will interpret
1068
- the specified number of
1069
- bytes as the string.</td>
1070
- <td>string</td>
1071
- </tr>
1072
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">S</span></code></td>
1073
- <td><code class="docutils literal"><span class="pre">char[]</span></code></td>
1074
- <td>Number of bytes
1075
- must be specified,
1076
- AMPS will interpret
1077
- the string up to the
1078
- first NULL character
1079
- or the number of
1080
- bytes specified.</td>
1081
- <td>string</td>
1082
- </tr>
1083
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">p</span></code></td>
1084
- <td><code class="docutils literal"><span class="pre">uint8_t</span></code>
1085
- followed by
1086
- <code class="docutils literal"><span class="pre">char[]</span></code></td>
1087
- <td><p class="first">Number of bytes
1088
- must be specified.</p>
1089
- <p class="last">AMPS will consume the
1090
- number of bytes
1091
- specified in the
1092
- <code class="docutils literal"><span class="pre">Field</span></code> configuration.
1093
- The first byte of data
1094
- specifies the length of
1095
- the string. Only that
1096
- number of bytes, starting
1097
- with the second byte of
1098
- the data, will be
1099
- interpreted as the value.</p>
1100
- </td>
1101
- <td>string</td>
1102
- </tr>
1103
- </tbody>
1104
- </table>
1105
- <p>The byte order specifiers are as follows:</p>
1106
- <table border="1" class="docutils" id="id10">
1107
- <caption><span class="caption-text"><em>Byte order specifiers</em></span><a class="headerlink" href="#id10" title="Permalink to this table">¶</a></caption>
1108
- <colgroup>
1109
- <col width="50%" />
1110
- <col width="50%" />
1111
- </colgroup>
1112
- <thead valign="bottom">
1113
- <tr class="row-odd"><th class="head"><strong>Specifier</strong></th>
1114
- <th class="head"><strong>Byte Order</strong></th>
1115
- </tr>
1116
- </thead>
1117
- <tbody valign="top">
1118
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">&#64;</span></code></td>
1119
- <td>Native (little-endian for AMPS server)</td>
1120
- </tr>
1121
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">=</span></code></td>
1122
- <td>Native (little-endian for AMPS server)</td>
1123
- </tr>
1124
- <tr class="row-even"><td><code class="docutils literal"><span class="pre">&lt;</span></code></td>
1125
- <td>Little-endian</td>
1126
- </tr>
1127
- <tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;</span></code></td>
1128
- <td>Big-endian</td>
1129
- </tr>
1130
- </tbody>
1131
- </table>
1132
- <p>If no byte order is specified, AMPS assumes a little-endian byte order to
1133
- match the native byte order of the AMPS server.</p>
1134
- <p>For example, given the following C struct:</p>
1135
- <div class="highlight-c"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">data_type</span>
1136
- <span class="p">{</span>
1137
- <span class="kt">int32_t</span> <span class="n">id</span><span class="p">;</span>
1138
- <span class="kt">int32_t</span> <span class="n">internal_id</span><span class="p">;</span>
1139
- <span class="kt">float</span> <span class="n">price</span><span class="p">;</span>
1140
- <span class="kt">char</span> <span class="n">label</span><span class="p">[</span><span class="mi">32</span><span class="p">];</span>
1141
- <span class="kt">char</span> <span class="n">code</span><span class="p">[</span><span class="mi">16</span><span class="p">];</span>
1142
- <span class="kt">char</span> <span class="n">routing_instructions</span><span class="p">[</span><span class="mi">32</span><span class="p">];</span>
1143
- <span class="p">};</span>
1144
- </pre></div>
1145
- </div>
1146
- <p>A message type declaration that would make the <cite>id</cite>, <cite>price</cite>, and <cite>code</cite>
1147
- members available to AMPS could be constructed as follows:</p>
1148
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;MessageType&gt;</span>
1149
- <span class="nt">&lt;Name&gt;</span>sample_struct_type<span class="nt">&lt;/Name&gt;</span>
1150
- <span class="nt">&lt;Module&gt;</span>struct<span class="nt">&lt;/Module&gt;</span>
1151
- <span class="nt">&lt;Field&gt;</span>/id = i<span class="nt">&lt;/Field&gt;</span>
1152
- <span class="nt">&lt;Field&gt;</span>/ignored = 4x<span class="nt">&lt;/Field&gt;</span>
1153
- <span class="nt">&lt;Field&gt;</span>/price = f<span class="nt">&lt;/Field&gt;</span>
1154
- <span class="nt">&lt;Field&gt;</span>/ignored = 32x<span class="nt">&lt;/Field&gt;</span>
1155
- <span class="nt">&lt;Field&gt;</span>/code = 16s<span class="nt">&lt;/Field&gt;</span>
1156
- <span class="nt">&lt;/MessageType&gt;</span>
1157
- </pre></div>
1158
- </div>
1159
- <p>This configuration declares that the message will be interpreted as follows:</p>
1160
- <ul class="simple">
1161
- <li>The first four bytes of the message will be interpreted
1162
- as a (little-endian) integer, and that value will be considered to be the <cite>/id</cite>
1163
- field of the message.</li>
1164
- <li>The next four bytes are skipped as padding &#8211; notice that,
1165
- although a field name is required in the specifier syntax, padding bytes are
1166
- ignored by AMPS, so there is no field named <code class="docutils literal"><span class="pre">/ignored</span></code> generated. However, if
1167
- the message is pretty-printed (or displayed in Galvanometer), AMPS will indicate
1168
- that there are padding bytes present for this field.</li>
1169
- <li>The next four bytes are interpreted as a (little-endian) float, and that value
1170
- will be considered the value of the <code class="docutils literal"><span class="pre">/price</span></code> field.</li>
1171
- <li>The next 32 bytes (the <code class="docutils literal"><span class="pre">label</span></code> in the C struct) are skipped as padding. Again,
1172
- if the message is pretty-printed (or displayed in Galvanometer), AMPS will indicate
1173
- that there are padding bytes present for this field.</li>
1174
- <li>The next 16 bytes of the message are an AMPS string that will be used for the value
1175
- of the <code class="docutils literal"><span class="pre">/code</span></code> field.</li>
1176
- <li>Any remaining bytes (the <code class="docutils literal"><span class="pre">routing_instructions</span></code> from the C struct, in this case)
1177
- are ignored. If the message is pretty-printed (or displayed in Galvanometer), AMPS
1178
- will indicate that there are extra bytes present.</li>
1179
- </ul>
1180
- </div>
1181
- <div class="section" id="limitations-of-struct-message-types">
1182
- <h3>Limitations of Struct Message Types<a class="headerlink" href="#limitations-of-struct-message-types" title="Permalink to this headline">¶</a></h3>
1183
- <p>Since the <code class="docutils literal"><span class="pre">struct</span></code> message type requires a specific, fixed
1184
- definition for messages, AMPS does not support operations that
1185
- construct messages that may contain arbitrary values. In
1186
- particular, message types defined using the <code class="docutils literal"><span class="pre">struct</span></code> message type
1187
- do not support:</p>
1188
- <ul class="simple">
1189
- <li>Creating a View with a <code class="docutils literal"><span class="pre">struct</span></code> message type as the <code class="docutils literal"><span class="pre">MessageType</span></code>.
1190
- AMPS allows you to aggregate <code class="docutils literal"><span class="pre">struct</span></code> message types and project the
1191
- results as another message type, but the destination <code class="docutils literal"><span class="pre">MessageType</span></code> for
1192
- a View cannot be a <code class="docutils literal"><span class="pre">struct</span></code> message type.</li>
1193
- <li>Creating an aggregated subscription for a topic that contains
1194
- messages of a <code class="docutils literal"><span class="pre">struct</span></code> message type.</li>
1195
- <li>Subscriptions to AMPS internal topics (for example, <code class="docutils literal"><span class="pre">/AMPS/ClientStatus</span></code>).</li>
1196
- <li>Enriching or preprocessing messages of a <code class="docutils literal"><span class="pre">struct</span></code> message type.</li>
1197
- <li>Delta publish or delta subscribe.</li>
1198
- <li>Select lists.</li>
1199
- </ul>
1200
- </div>
1201
- </div>
1202
- <div class="section" id="loading-additional-message-types">
1203
- <h2>Loading Additional Message Types<a class="headerlink" href="#loading-additional-message-types" title="Permalink to this headline">¶</a></h2>
1204
- <p>AMPS includes the ability to load custom message types in external
1205
- modules. As with all AMPS modules, custom message types are compiled
1206
- into shared object files. AMPS dynamically loads these message types on
1207
- startup, using the information provided in the configuration file. Once
1208
- you have loaded and declared those types, you can use the type just as
1209
- you use the default message types.</p>
1210
- <p>For example, the configuration below creates a message type named
1211
- <code class="docutils literal"><span class="pre">custom-type</span></code> that uses a module named <code class="docutils literal"><span class="pre">libmy-type-module.so</span></code> and
1212
- specifies a transport for messages of that type:</p>
1213
- <div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;Modules&gt;</span>
1214
- <span class="nt">&lt;Module&gt;</span>
1215
- <span class="c">&lt;!-- Specifies the name to use to refer to this module in the rest of the</span>
1216
- <span class="c"> configuration file --&gt;</span>
1217
- <span class="nt">&lt;Name&gt;</span>custom-type-module<span class="nt">&lt;/Name&gt;</span>
1218
-
1219
- <span class="c">&lt;!-- Path to the library to load for this module. In this example, the path is a</span>
1220
- <span class="c"> relative path below the directory where AMPS is started. --&gt;</span>
1221
- <span class="nt">&lt;Library&gt;</span>./custom-modules/libmy-type-module.so<span class="nt">&lt;/Library&gt;</span>
1222
- <span class="nt">&lt;/Module&gt;</span>
1223
- <span class="nt">&lt;/Modules&gt;</span>
1224
-
1225
- <span class="nt">&lt;MessageTypes&gt;</span>
1226
- <span class="nt">&lt;MessageType&gt;</span>
1227
- <span class="c">&lt;!-- The name to use for this message type in the rest of the configuration file. --&gt;</span>
1228
- <span class="nt">&lt;Name&gt;</span>custom-type<span class="nt">&lt;/Name&gt;</span>
1229
-
1230
- <span class="c">&lt;!-- Reference to the module that implements this message type, using the Name</span>
1231
- <span class="c"> defined in the Module configuration. --&gt;</span>
1232
- <span class="nt">&lt;Module&gt;</span>custom-type-module<span class="nt">&lt;/Module&gt;</span>
1233
- <span class="nt">&lt;/MessageType&gt;</span>
1234
- <span class="nt">&lt;/MessageTypes&gt;</span>
1235
-
1236
- <span class="nt">&lt;Transports&gt;</span>
1237
- <span class="nt">&lt;Transport&gt;</span>
1238
- <span class="nt">&lt;Name&gt;</span>custom-type-tcp<span class="nt">&lt;/Name&gt;</span>
1239
- <span class="nt">&lt;Type&gt;</span>tcp<span class="nt">&lt;/Type&gt;</span>
1240
- <span class="nt">&lt;InetAddr&gt;</span>9008<span class="nt">&lt;/InetAddr&gt;</span>
1241
-
1242
- <span class="c">&lt;!-- The message type that this transport uses, using the Name defined in the</span>
1243
- <span class="c"> MessageType configuration. --&gt;</span>
1244
- <span class="nt">&lt;MessageType&gt;</span>custom-type<span class="nt">&lt;/MessageType&gt;</span>
1245
- <span class="nt">&lt;Protocol&gt;</span>amps<span class="nt">&lt;/Protocol&gt;</span>
1246
- <span class="nt">&lt;/Transport&gt;</span>
1247
- <span class="nt">&lt;/Transports&gt;</span>
1248
- </pre></div>
1249
- </div>
1250
- <p>Once a message type has been declared, you can use it in exactly the
1251
- same way you use the default message types.</p>
1252
- <p>Notice, however, that custom-developed message types may only provide
1253
- support for a subset of the features of AMPS. For example, the
1254
- <code class="docutils literal"><span class="pre">binary</span></code> message type provided with AMPS does not support features
1255
- that require AMPS to parse or construct a message, as described above.
1256
- The developer of the message type must provide information on what
1257
- capabilities the message type provides.</p>
1258
- </div>
1259
- </div>
1260
-
1261
-
1262
- </div>
1263
- </div>
1264
- </div>
1265
- <div class="clearer"></div>
1266
- </div>
1267
- <div class="footer">
1268
- &copy;2023 60East Technologies, Inc. (version develop).
1269
-
1270
- |
1271
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.3</a>
1272
- &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
1273
-
1274
- </div>
1275
-
1276
-
1277
-
1278
-
1279
- </body>
1280
- </html>