amps-python-client 5.3.4.1__zip → 5.3.4.2__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. amps-python-client-5.3.4.2/PKG-INFO +112 -0
  2. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  3. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  4. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  5. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  6. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  7. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  8. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  9. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  10. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  11. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  12. amps-python-client-5.3.4.2/docs/command-reference/doctrees/environment.pickle +0 -0
  13. amps-python-client-5.3.4.2/docs/command-reference/doctrees/index.doctree +0 -0
  14. amps-python-client-5.3.4.2/docs/command-reference/html/.buildinfo +4 -0
  15. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
  16. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
  17. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
  18. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
  19. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
  20. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
  21. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
  22. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
  23. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
  24. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
  25. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/index.rst.txt +36 -0
  26. amps-python-client-5.3.4.2/docs/command-reference/html/_static/custom.css +161 -0
  27. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/ack-messages.html +95 -0
  28. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/content-messages.html +95 -0
  29. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/intro.html +95 -0
  30. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/logon.html +95 -0
  31. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/protocol-reference.html +93 -0
  32. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/publishing.html +95 -0
  33. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-delimiters.html +95 -0
  34. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-subscribe.html +95 -0
  35. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/removing.html +95 -0
  36. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/utilities.html +95 -0
  37. amps-python-client-5.3.4.2/docs/command-reference/html/genindex.html +97 -0
  38. amps-python-client-5.3.4.2/docs/command-reference/html/index.html +98 -0
  39. amps-python-client-5.3.4.2/docs/command-reference/html/objects.inv +6 -0
  40. amps-python-client-5.3.4.2/docs/command-reference/html/search.html +107 -0
  41. amps-python-client-5.3.4.2/docs/command-reference/html/searchindex.js +1 -0
  42. amps-python-client-5.3.4.2/docs/html/.buildinfo +4 -0
  43. amps-python-client-5.3.4.2/docs/html/code.html +6616 -0
  44. amps-python-client-5.3.4.2/docs/html/genindex.html +1363 -0
  45. amps-python-client-5.3.4.2/docs/html/index.html +131 -0
  46. amps-python-client-5.3.4.2/docs/html/objects.inv +0 -0
  47. amps-python-client-5.3.4.2/docs/html/py-modindex.html +111 -0
  48. amps-python-client-5.3.4.2/docs/html/search.html +107 -0
  49. amps-python-client-5.3.4.2/docs/html/searchindex.js +1 -0
  50. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  51. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  52. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  53. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  54. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/deltas.doctree +0 -0
  55. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  56. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  57. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/first-program.doctree +0 -0
  58. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  59. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/installing.doctree +0 -0
  60. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/introduction.doctree +0 -0
  61. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  62. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  63. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/queues.doctree +0 -0
  64. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/sow.doctree +0 -0
  65. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  66. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/utilities.doctree +0 -0
  67. amps-python-client-5.3.4.2/docs/python/doctrees/environment.pickle +0 -0
  68. amps-python-client-5.3.4.2/docs/python/doctrees/index.doctree +0 -0
  69. amps-python-client-5.3.4.2/docs/python/html/.buildinfo +4 -0
  70. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
  71. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
  72. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
  73. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
  74. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
  75. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
  76. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
  77. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
  78. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
  79. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
  80. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
  81. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
  82. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
  83. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
  84. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
  85. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
  86. amps-python-client-5.3.4.2/docs/python/html/_static/custom.css +161 -0
  87. amps-python-client-5.3.4.2/docs/python/html/chapters/advanced-topics.html +447 -0
  88. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-compiler-list.html +92 -0
  89. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-feature-table.html +156 -0
  90. amps-python-client-5.3.4.2/docs/python/html/chapters/creating-commands.html +2882 -0
  91. amps-python-client-5.3.4.2/docs/python/html/chapters/deltas.html +169 -0
  92. amps-python-client-5.3.4.2/docs/python/html/chapters/error-handling.html +745 -0
  93. amps-python-client-5.3.4.2/docs/python/html/chapters/exceptions.html +266 -0
  94. amps-python-client-5.3.4.2/docs/python/html/chapters/first-program.html +526 -0
  95. amps-python-client-5.3.4.2/docs/python/html/chapters/high-availability.html +1017 -0
  96. amps-python-client-5.3.4.2/docs/python/html/chapters/installing.html +264 -0
  97. amps-python-client-5.3.4.2/docs/python/html/chapters/introduction.html +245 -0
  98. amps-python-client-5.3.4.2/docs/python/html/chapters/moving-from-python-lite.html +118 -0
  99. amps-python-client-5.3.4.2/docs/python/html/chapters/performance-tips.html +499 -0
  100. amps-python-client-5.3.4.2/docs/python/html/chapters/queues.html +352 -0
  101. amps-python-client-5.3.4.2/docs/python/html/chapters/sow.html +383 -0
  102. amps-python-client-5.3.4.2/docs/python/html/chapters/subscriptions.html +535 -0
  103. amps-python-client-5.3.4.2/docs/python/html/chapters/utilities.html +302 -0
  104. amps-python-client-5.3.4.2/docs/python/html/genindex.html +351 -0
  105. amps-python-client-5.3.4.2/docs/python/html/index.html +382 -0
  106. amps-python-client-5.3.4.2/docs/python/html/objects.inv +0 -0
  107. amps-python-client-5.3.4.2/docs/python/html/search.html +107 -0
  108. amps-python-client-5.3.4.2/docs/python/html/searchindex.js +1 -0
  109. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  110. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  111. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/environment.pickle +0 -0
  112. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/index.doctree +0 -0
  113. amps-python-client-5.3.4.2/docs/python-quickstart/html/.buildinfo +4 -0
  114. amps-python-client-5.3.4.2/docs/python-quickstart/html/_static/custom.css +161 -0
  115. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/crankitup.html +271 -0
  116. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/equipment.html +105 -0
  117. amps-python-client-5.3.4.2/docs/python-quickstart/html/genindex.html +97 -0
  118. amps-python-client-5.3.4.2/docs/python-quickstart/html/index.html +381 -0
  119. amps-python-client-5.3.4.2/docs/python-quickstart/html/objects.inv +0 -0
  120. amps-python-client-5.3.4.2/docs/python-quickstart/html/search.html +107 -0
  121. amps-python-client-5.3.4.2/docs/python-quickstart/html/searchindex.js +1 -0
  122. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  123. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  124. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  125. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  126. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  127. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  128. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  129. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  130. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  131. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  132. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  133. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  134. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  135. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  136. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  137. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  138. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  139. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  140. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  141. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  142. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  143. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  144. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  145. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  146. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  147. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  148. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  149. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  150. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  151. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  152. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  153. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  154. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  155. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  156. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  157. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  158. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  159. amps-python-client-5.3.4.2/docs/user-guide/doctrees/environment.pickle +0 -0
  160. amps-python-client-5.3.4.2/docs/user-guide/doctrees/index.doctree +0 -0
  161. amps-python-client-5.3.4.2/docs/user-guide/html/.buildinfo +4 -0
  162. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
  163. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
  164. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
  165. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
  166. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
  167. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
  168. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
  169. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
  170. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
  171. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
  172. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
  173. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
  174. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
  175. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
  176. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
  177. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
  178. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
  179. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
  180. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
  181. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
  182. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
  183. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
  184. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
  185. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
  186. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
  187. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
  188. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
  189. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
  190. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
  191. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
  192. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
  193. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
  194. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
  195. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
  196. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
  197. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
  198. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/index.rst.txt +62 -0
  199. amps-python-client-5.3.4.2/docs/user-guide/html/_static/custom.css +161 -0
  200. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/acks.html +94 -0
  201. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/actions.html +94 -0
  202. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps-statistics.html +94 -0
  203. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_expressions.html +94 -0
  204. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_functions.html +94 -0
  205. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
  206. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
  207. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/conflated_topics.html +94 -0
  208. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/constructing-fields.html +94 -0
  209. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/daemon.html +94 -0
  210. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/delta.html +94 -0
  211. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/distribution.html +94 -0
  212. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/enrichment.html +94 -0
  213. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/events.html +94 -0
  214. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/file_format_versions.html +94 -0
  215. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/glossary.html +92 -0
  216. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/ha.html +94 -0
  217. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
  218. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/intro.html +94 -0
  219. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/logging.html +94 -0
  220. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/messageTypes.html +94 -0
  221. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/monitoring.html +94 -0
  222. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/oof.html +94 -0
  223. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/operation.html +94 -0
  224. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/pub_sub.html +94 -0
  225. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/queues.html +94 -0
  226. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/replication.html +94 -0
  227. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/securing.html +94 -0
  228. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow.html +94 -0
  229. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow_queries.html +94 -0
  230. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/spark.html +819 -0
  231. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/transports.html +94 -0
  232. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/troubleshooting.html +94 -0
  233. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/txlog.html +94 -0
  234. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/usecases.html +94 -0
  235. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/utilities.html +94 -0
  236. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/views.html +94 -0
  237. amps-python-client-5.3.4.2/docs/user-guide/html/genindex.html +133 -0
  238. amps-python-client-5.3.4.2/docs/user-guide/html/index.html +96 -0
  239. amps-python-client-5.3.4.2/docs/user-guide/html/objects.inv +0 -0
  240. amps-python-client-5.3.4.2/docs/user-guide/html/search.html +106 -0
  241. amps-python-client-5.3.4.2/docs/user-guide/html/searchindex.js +1 -0
  242. amps-python-client-5.3.4.2/include/ampspy_bookmarkstore.hpp +63 -0
  243. amps-python-client-5.3.4.2/include/ampspy_compat.h +63 -0
  244. amps-python-client-5.3.4.2/include/ampspy_defs.hpp +181 -0
  245. amps-python-client-5.3.4.2/include/ampspy_recoverypointadapter.hpp +52 -0
  246. amps-python-client-5.3.4.2/include/ampspy_shims.hpp +113 -0
  247. amps-python-client-5.3.4.2/include/ampspy_type_object.hpp +242 -0
  248. amps-python-client-5.3.4.2/include/ampspy_types.hpp +1139 -0
  249. amps-python-client-5.3.4.2/include/ampspyver.h +30 -0
  250. amps-python-client-5.3.4.2/index.html +66 -0
  251. amps-python-client-5.3.4.2/samples/AMPSConsolePublisher.py +59 -0
  252. amps-python-client-5.3.4.2/samples/AMPSConsoleSubscriber.py +63 -0
  253. amps-python-client-5.3.4.2/samples/AMPSFIXBuilderPublisher.py +71 -0
  254. amps-python-client-5.3.4.2/samples/AMPSFIXShredderSubscriber.py +69 -0
  255. amps-python-client-5.3.4.2/samples/AMPSNVFIXBuilderPublisher.py +71 -0
  256. amps-python-client-5.3.4.2/samples/AMPSNVFIXShredderSubscriber.py +67 -0
  257. amps-python-client-5.3.4.2/samples/AMPSPublishForReplay.py +81 -0
  258. amps-python-client-5.3.4.2/samples/AMPSQueueConsumer.py +69 -0
  259. amps-python-client-5.3.4.2/samples/AMPSQueuePublisher.py +59 -0
  260. amps-python-client-5.3.4.2/samples/AMPSSOWConsolePublisher.py +67 -0
  261. amps-python-client-5.3.4.2/samples/AMPSSOWConsoleSubscriber.py +77 -0
  262. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
  263. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
  264. amps-python-client-5.3.4.2/samples/AMPSSubscribeForReplay.py +128 -0
  265. amps-python-client-5.3.4.2/samples/AMPSUpdateForOOF.py +123 -0
  266. amps-python-client-5.3.4.2/samples/CompositeMessagePublisher.py +84 -0
  267. amps-python-client-5.3.4.2/samples/CompositeMessageSubscriber.py +87 -0
  268. amps-python-client-5.3.4.2/samples/RandomServerChooser.py +66 -0
  269. amps-python-client-5.3.4.2/samples/sample.xml +335 -0
  270. amps-python-client-5.3.4.2/setup.py +210 -0
  271. amps-python-client-5.3.4.2/setup_amps.py +94 -0
  272. amps-python-client-5.3.4.2/src/ampspy_shims.cpp +214 -0
  273. amps-python-client-5.3.4.2/src/ampspy_type_object.cpp +495 -0
  274. amps-python-client-5.3.4.2/src/authenticator.cpp +128 -0
  275. amps-python-client-5.3.4.2/src/bookmarkstore.cpp +246 -0
  276. amps-python-client-5.3.4.2/src/client.cpp +2648 -0
  277. amps-python-client-5.3.4.2/src/client_docs.h +956 -0
  278. amps-python-client-5.3.4.2/src/cmessagehandler.cpp +161 -0
  279. amps-python-client-5.3.4.2/src/command.cpp +164 -0
  280. amps-python-client-5.3.4.2/src/command_docs.h +269 -0
  281. amps-python-client-5.3.4.2/src/compositemessagebuilder.cpp +113 -0
  282. amps-python-client-5.3.4.2/src/compositemessageparser.cpp +151 -0
  283. amps-python-client-5.3.4.2/src/conflatingrecoverypointadapter.cpp +197 -0
  284. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockPublishStore.hpp +2053 -0
  285. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockStore.hpp +677 -0
  286. amps-python-client-5.3.4.2/src/cpp/include/amps/BookmarkStore.hpp +542 -0
  287. amps-python-client-5.3.4.2/src/cpp/include/amps/Buffer.hpp +214 -0
  288. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
  289. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
  290. amps-python-client-5.3.4.2/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
  291. amps-python-client-5.3.4.2/src/cpp/include/amps/Field.hpp +719 -0
  292. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClient.hpp +370 -0
  293. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClientImpl.hpp +460 -0
  294. amps-python-client-5.3.4.2/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
  295. amps-python-client-5.3.4.2/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
  296. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
  297. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapStoreBuffer.hpp +290 -0
  298. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
  299. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
  300. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryStoreBuffer.hpp +244 -0
  301. amps-python-client-5.3.4.2/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
  302. amps-python-client-5.3.4.2/src/cpp/include/amps/Message.hpp +1819 -0
  303. amps-python-client-5.3.4.2/src/cpp/include/amps/MessageRouter.hpp +647 -0
  304. amps-python-client-5.3.4.2/src/cpp/include/amps/PublishStore.hpp +158 -0
  305. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
  306. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
  307. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
  308. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
  309. amps-python-client-5.3.4.2/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
  310. amps-python-client-5.3.4.2/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
  311. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooser.hpp +145 -0
  312. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
  313. amps-python-client-5.3.4.2/src/cpp/include/amps/amps.h +803 -0
  314. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_impl.h +208 -0
  315. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_ssl.h +78 -0
  316. amps-python-client-5.3.4.2/src/cpp/include/amps/ampscrc.hpp +210 -0
  317. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsplusplus.hpp +8850 -0
  318. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsuri.h +84 -0
  319. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h +41 -0
  320. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h.in +41 -0
  321. amps-python-client-5.3.4.2/src/cpp/include/amps/constants.hpp +194 -0
  322. amps-python-client-5.3.4.2/src/cpp/include/amps/util.hpp +1722 -0
  323. amps-python-client-5.3.4.2/src/cpp/src/amps_protocol.c +693 -0
  324. amps-python-client-5.3.4.2/src/cpp/src/amps_ssl.c +489 -0
  325. amps-python-client-5.3.4.2/src/cpp/src/atfork.c +451 -0
  326. amps-python-client-5.3.4.2/src/cpp/src/client.c +498 -0
  327. amps-python-client-5.3.4.2/src/cpp/src/message.c +837 -0
  328. amps-python-client-5.3.4.2/src/cpp/src/message_generated.h +611 -0
  329. amps-python-client-5.3.4.2/src/cpp/src/tcp.c +1517 -0
  330. amps-python-client-5.3.4.2/src/cpp/src/tcps.c +1885 -0
  331. amps-python-client-5.3.4.2/src/cpp/src/transports.c +129 -0
  332. amps-python-client-5.3.4.2/src/cpp/src/unix.c +1002 -0
  333. amps-python-client-5.3.4.2/src/cpp/src/uri.c +301 -0
  334. amps-python-client-5.3.4.2/src/exponentialdelaystrategy.cpp +137 -0
  335. amps-python-client-5.3.4.2/src/failedwritehandler.cpp +116 -0
  336. amps-python-client-5.3.4.2/src/fixbuilder.cpp +146 -0
  337. amps-python-client-5.3.4.2/src/fixeddelaystrategy.cpp +114 -0
  338. amps-python-client-5.3.4.2/src/fixshredder.cpp +105 -0
  339. amps-python-client-5.3.4.2/src/fixshredder_docs.h +38 -0
  340. amps-python-client-5.3.4.2/src/haclient.cpp +691 -0
  341. amps-python-client-5.3.4.2/src/haclient_docs.h +186 -0
  342. amps-python-client-5.3.4.2/src/hybridpublishstore.cpp +137 -0
  343. amps-python-client-5.3.4.2/src/hybridpublishstore_docs.h +31 -0
  344. amps-python-client-5.3.4.2/src/memorybookmarkstore.cpp +373 -0
  345. amps-python-client-5.3.4.2/src/memorybookmarkstore_docs.h +39 -0
  346. amps-python-client-5.3.4.2/src/memorypublishstore.cpp +160 -0
  347. amps-python-client-5.3.4.2/src/memorypublishstore_docs.h +32 -0
  348. amps-python-client-5.3.4.2/src/message.cpp +765 -0
  349. amps-python-client-5.3.4.2/src/message_docs.h +306 -0
  350. amps-python-client-5.3.4.2/src/messagestream.cpp +630 -0
  351. amps-python-client-5.3.4.2/src/messagestream_docs.h +45 -0
  352. amps-python-client-5.3.4.2/src/mmapbookmarkstore.cpp +422 -0
  353. amps-python-client-5.3.4.2/src/nvfixbuilder.cpp +160 -0
  354. amps-python-client-5.3.4.2/src/nvfixbuilder_docs.h +35 -0
  355. amps-python-client-5.3.4.2/src/nvfixshredder.cpp +99 -0
  356. amps-python-client-5.3.4.2/src/nvfixshredder_docs.h +43 -0
  357. amps-python-client-5.3.4.2/src/publishstore.cpp +183 -0
  358. amps-python-client-5.3.4.2/src/raw_wrapper.cpp +765 -0
  359. amps-python-client-5.3.4.2/src/reason.cpp +71 -0
  360. amps-python-client-5.3.4.2/src/recoverypoint.cpp +135 -0
  361. amps-python-client-5.3.4.2/src/recoverypointadapter.cpp +171 -0
  362. amps-python-client-5.3.4.2/src/ringbookmarkstore.cpp +360 -0
  363. amps-python-client-5.3.4.2/src/serverchooser.cpp +245 -0
  364. amps-python-client-5.3.4.2/src/serverchooser_docs.h +41 -0
  365. amps-python-client-5.3.4.2/src/sowrecoverypointadapter.cpp +248 -0
  366. amps-python-client-5.3.4.2/src/store.cpp +62 -0
  367. amps-python-client-5.3.4.2/src/versioninfo.cpp +175 -0
  368. amps-python-client-5.3.4.1/PKG-INFO +0 -112
  369. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  370. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  371. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  372. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  373. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  374. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  375. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  376. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  377. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  378. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  379. amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
  380. amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
  381. amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
  382. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
  383. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
  384. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
  385. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
  386. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
  387. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
  388. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
  389. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
  390. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
  391. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
  392. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
  393. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
  394. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
  395. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
  396. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
  397. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
  398. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
  399. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
  400. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
  401. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
  402. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
  403. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
  404. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
  405. amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
  406. amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
  407. amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
  408. amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
  409. amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
  410. amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
  411. amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
  412. amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
  413. amps-python-client-5.3.4.1/docs/html/index.html +0 -131
  414. amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
  415. amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
  416. amps-python-client-5.3.4.1/docs/html/search.html +0 -107
  417. amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
  418. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  419. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  420. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  421. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  422. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
  423. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  424. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  425. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
  426. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  427. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
  428. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
  429. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  430. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  431. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
  432. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
  433. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  434. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
  435. amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
  436. amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
  437. amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
  438. amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
  439. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
  440. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
  441. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
  442. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
  443. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
  444. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
  445. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
  446. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
  447. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
  448. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
  449. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
  450. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
  451. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
  452. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
  453. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
  454. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
  455. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
  456. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
  457. amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
  458. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
  459. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
  460. amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
  461. amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
  462. amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
  463. amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
  464. amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
  465. amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
  466. amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
  467. amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
  468. amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
  469. amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
  470. amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
  471. amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
  472. amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
  473. amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
  474. amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
  475. amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
  476. amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
  477. amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
  478. amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
  479. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  480. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  481. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
  482. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
  483. amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
  484. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
  485. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
  486. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
  487. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
  488. amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
  489. amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
  490. amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
  491. amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
  492. amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
  493. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  494. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  495. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  496. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  497. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  498. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  499. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  500. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  501. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  502. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  503. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  504. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  505. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  506. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  507. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  508. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  509. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  510. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  511. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  512. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  513. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  514. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  515. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  516. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  517. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  518. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  519. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  520. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  521. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  522. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  523. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  524. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  525. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  526. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  527. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  528. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  529. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  530. amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
  531. amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
  532. amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
  533. amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
  534. amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
  535. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
  536. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
  537. amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
  538. amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
  539. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
  540. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
  541. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
  542. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
  543. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
  544. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
  545. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
  546. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
  547. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
  548. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
  549. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
  550. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
  551. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
  552. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
  553. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
  554. amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
  555. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
  556. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
  557. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
  558. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
  559. amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
  560. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
  561. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
  562. amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
  563. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
  564. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
  565. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
  566. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
  567. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
  568. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
  569. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
  570. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
  571. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
  572. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
  573. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
  574. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
  575. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
  576. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
  577. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
  578. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
  579. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
  580. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
  581. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
  582. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
  583. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
  584. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
  585. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
  586. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
  587. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
  588. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
  589. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
  590. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
  591. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
  592. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
  593. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
  594. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
  595. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
  596. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
  597. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
  598. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
  599. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
  600. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
  601. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
  602. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
  603. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
  604. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
  605. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
  606. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
  607. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
  608. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
  609. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
  610. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
  611. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
  612. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
  613. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
  614. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
  615. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
  616. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
  617. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
  618. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
  619. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
  620. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
  621. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
  622. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
  623. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
  624. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
  625. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
  626. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
  627. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
  628. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
  629. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
  630. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
  631. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
  632. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
  633. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
  634. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
  635. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
  636. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
  637. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
  638. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
  639. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
  640. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
  641. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
  642. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
  643. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
  644. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
  645. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
  646. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
  647. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
  648. amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
  649. amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
  650. amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
  651. amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
  652. amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
  653. amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
  654. amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
  655. amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
  656. amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
  657. amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
  658. amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
  659. amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
  660. amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
  661. amps-python-client-5.3.4.1/index.html +0 -66
  662. amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
  663. amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
  664. amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
  665. amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
  666. amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
  667. amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
  668. amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
  669. amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
  670. amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
  671. amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
  672. amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
  673. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
  674. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
  675. amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
  676. amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
  677. amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
  678. amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
  679. amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
  680. amps-python-client-5.3.4.1/samples/sample.xml +0 -335
  681. amps-python-client-5.3.4.1/setup.py +0 -209
  682. amps-python-client-5.3.4.1/setup_amps.py +0 -94
  683. amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
  684. amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
  685. amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
  686. amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
  687. amps-python-client-5.3.4.1/src/client.cpp +0 -2430
  688. amps-python-client-5.3.4.1/src/client_docs.h +0 -956
  689. amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
  690. amps-python-client-5.3.4.1/src/command.cpp +0 -164
  691. amps-python-client-5.3.4.1/src/command_docs.h +0 -194
  692. amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
  693. amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
  694. amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
  695. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
  696. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
  697. amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
  698. amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
  699. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
  700. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
  701. amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
  702. amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
  703. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
  704. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
  705. amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
  706. amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
  707. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
  708. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
  709. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
  710. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
  711. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
  712. amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
  713. amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
  714. amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
  715. amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
  716. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
  717. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
  718. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
  719. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
  720. amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
  721. amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
  722. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
  723. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
  724. amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
  725. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
  726. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
  727. amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
  728. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
  729. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
  730. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
  731. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
  732. amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
  733. amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
  734. amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
  735. amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
  736. amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
  737. amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
  738. amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
  739. amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
  740. amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
  741. amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
  742. amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
  743. amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
  744. amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
  745. amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
  746. amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
  747. amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
  748. amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
  749. amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
  750. amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
  751. amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
  752. amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
  753. amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
  754. amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
  755. amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
  756. amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
  757. amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
  758. amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
  759. amps-python-client-5.3.4.1/src/message.cpp +0 -765
  760. amps-python-client-5.3.4.1/src/message_docs.h +0 -306
  761. amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
  762. amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
  763. amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
  764. amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
  765. amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
  766. amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
  767. amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
  768. amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
  769. amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
  770. amps-python-client-5.3.4.1/src/reason.cpp +0 -71
  771. amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
  772. amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
  773. amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
  774. amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
  775. amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
  776. amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
  777. amps-python-client-5.3.4.1/src/store.cpp +0 -62
  778. amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
  779. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/HISTORY +0 -0
  780. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/LICENSE +0 -0
  781. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/README.md +0 -0
  782. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  783. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/alabaster.css +0 -0
  784. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/basic.css +0 -0
  785. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-bright.png +0 -0
  786. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-close.png +0 -0
  787. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment.png +0 -0
  788. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/doctools.js +0 -0
  789. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down-pressed.png +0 -0
  790. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down.png +0 -0
  791. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/file.png +0 -0
  792. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.png +0 -0
  793. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  794. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  795. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery.js +0 -0
  796. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/minus.png +0 -0
  797. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/plus.png +0 -0
  798. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/pygments.css +0 -0
  799. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/searchtools.js +0 -0
  800. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  801. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore.js +0 -0
  802. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up-pressed.png +0 -0
  803. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up.png +0 -0
  804. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/websupport.js +0 -0
  805. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/code.rst.txt +0 -0
  806. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/index.rst.txt +0 -0
  807. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/ajax-loader.gif +0 -0
  808. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/basic.css +0 -0
  809. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/classic.css +0 -0
  810. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-bright.png +0 -0
  811. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-close.png +0 -0
  812. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment.png +0 -0
  813. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/default.css +0 -0
  814. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/doctools.js +0 -0
  815. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down-pressed.png +0 -0
  816. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down.png +0 -0
  817. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/file.png +0 -0
  818. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery-3.1.0.js +0 -0
  819. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery.js +0 -0
  820. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/minus.png +0 -0
  821. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/plus.png +0 -0
  822. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/pygments.css +0 -0
  823. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/searchtools.js +0 -0
  824. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/sidebar.js +0 -0
  825. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore-1.3.1.js +0 -0
  826. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore.js +0 -0
  827. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up-pressed.png +0 -0
  828. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up.png +0 -0
  829. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/websupport.js +0 -0
  830. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/caution.png +0 -0
  831. {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.2/docs/python}/html/_images/caution.svg +0 -0
  832. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/connection_string.svg +0 -0
  833. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.png +0 -0
  834. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.svg +0 -0
  835. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.png +0 -0
  836. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.svg +0 -0
  837. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/warning.png +0 -0
  838. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  839. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/index.rst.txt +0 -0
  840. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/ajax-loader.gif +0 -0
  841. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/alabaster.css +0 -0
  842. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/basic.css +0 -0
  843. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-bright.png +0 -0
  844. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-close.png +0 -0
  845. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment.png +0 -0
  846. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/doctools.js +0 -0
  847. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down-pressed.png +0 -0
  848. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down.png +0 -0
  849. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/file.png +0 -0
  850. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.png +0 -0
  851. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.svg +0 -0
  852. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  853. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery.js +0 -0
  854. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/minus.png +0 -0
  855. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/plus.png +0 -0
  856. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/pygments.css +0 -0
  857. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/searchtools.js +0 -0
  858. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  859. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore.js +0 -0
  860. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up-pressed.png +0 -0
  861. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up.png +0 -0
  862. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/websupport.js +0 -0
  863. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  864. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  865. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  866. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  867. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  868. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/basic.css +0 -0
  869. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  870. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  871. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment.png +0 -0
  872. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/doctools.js +0 -0
  873. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  874. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down.png +0 -0
  875. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/file.png +0 -0
  876. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  877. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  878. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  879. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery.js +0 -0
  880. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/minus.png +0 -0
  881. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/plus.png +0 -0
  882. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/pygments.css +0 -0
  883. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  884. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  885. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore.js +0 -0
  886. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  887. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up.png +0 -0
  888. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/websupport.js +0 -0
  889. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/custom.css +0 -0
  890. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/flag_logo.svg +0 -0
  891. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  892. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  893. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/alabaster.css +0 -0
  894. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/basic.css +0 -0
  895. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-bright.png +0 -0
  896. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-close.png +0 -0
  897. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment.png +0 -0
  898. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/doctools.js +0 -0
  899. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down-pressed.png +0 -0
  900. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down.png +0 -0
  901. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/file.png +0 -0
  902. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.png +0 -0
  903. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  904. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  905. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery.js +0 -0
  906. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/minus.png +0 -0
  907. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/plus.png +0 -0
  908. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/pygments.css +0 -0
  909. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/searchtools.js +0 -0
  910. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  911. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore.js +0 -0
  912. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up-pressed.png +0 -0
  913. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up.png +0 -0
  914. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/websupport.js +0 -0
  915. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/include/amps/amps_generated.h +0 -0
  916. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/amps_protocol_generated.h +0 -0
  917. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/makefile +0 -0
@@ -0,0 +1,1722 @@
1
+ ////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // Copyright (c) 2010-2024 60East Technologies Inc., All Rights Reserved.
4
+ //
5
+ // This computer software is owned by 60East Technologies Inc. and is
6
+ // protected by U.S. copyright laws and other laws and by international
7
+ // treaties. This computer software is furnished by 60East Technologies
8
+ // Inc. pursuant to a written license agreement and may be used, copied,
9
+ // transmitted, and stored only in accordance with the terms of such
10
+ // license agreement and with the inclusion of the above copyright notice.
11
+ // This computer software or any other copies thereof may not be provided
12
+ // or otherwise made available to any other person.
13
+ //
14
+ // U.S. Government Restricted Rights. This computer software: (a) was
15
+ // developed at private expense and is in all respects the proprietary
16
+ // information of 60East Technologies Inc.; (b) was not developed with
17
+ // government funds; (c) is a trade secret of 60East Technologies Inc.
18
+ // for all purposes of the Freedom of Information Act; and (d) is a
19
+ // commercial item and thus, pursuant to Section 12.212 of the Federal
20
+ // Acquisition Regulations (FAR) and DFAR Supplement Section 227.7202,
21
+ // Government's use, duplication or disclosure of the computer software
22
+ // is subject to the restrictions set forth by 60East Technologies Inc..
23
+ //
24
+ ////////////////////////////////////////////////////////////////////////////
25
+ #ifndef __AMPS_UTIL_HPP_
26
+ #define __AMPS_UTIL_HPP_
27
+ #define _AMPS_SKIP_AMPSPLUSPLUS
28
+ #include <amps/amps.h>
29
+ #undef _AMPS_SKIP_AMPSPLUSPLUS
30
+ #include <amps/ampsuri.h>
31
+ #include <stdlib.h>
32
+ #include <ctype.h>
33
+ #include <map>
34
+ #include <stdexcept>
35
+
36
+ #ifdef _WIN32
37
+ #include <WinSock2.h>
38
+ #define OFF_T size_t
39
+ #else
40
+ #include <netdb.h>
41
+ #include <netinet/ip.h>
42
+ #include <errno.h>
43
+ #include <pthread.h>
44
+ #include <unistd.h>
45
+ #include <sys/time.h>
46
+ #define OFF_T off_t
47
+ #endif
48
+
49
+ #ifndef _WIN32
50
+ #include <inttypes.h>
51
+ extern "C" {
52
+ #include <amps/amps_impl.h>
53
+ }
54
+ #endif
55
+ #if defined(sun)
56
+ #include <sys/atomic.h>
57
+ #endif
58
+
59
+ #if __cplusplus >= 201100L || _MSC_VER >= 1900
60
+ #include <atomic>
61
+ #define AMPS_ATOMIC_TYPE_8 std::atomic<char>
62
+ #define AMPS_FETCH_AND_8(x, y) (x)->fetch_and(y)
63
+ #define AMPS_FETCH_OR_8(x, y) (x)->fetch_or(y)
64
+ #if defined(_WIN32 )
65
+ #define AMPS_ATOMIC_BASE_TYPE LONG64
66
+ #define AMPS_ATOMIC_TYPE std::atomic<LONG64>
67
+ #else
68
+ #define AMPS_ATOMIC_BASE_TYPE long
69
+ #define AMPS_ATOMIC_TYPE std::atomic<long>
70
+ #endif
71
+ #define AMPS_FETCH_ADD(x, y) (x)->fetch_add(y)
72
+ #define AMPS_FETCH_SUB(x, y) (x)->fetch_sub(y)
73
+ #define AMPS_FETCH_AND(x, y) (x)->fetch_and(y)
74
+ #define AMPS_FETCH_OR(x, y) (x)->fetch_or(y)
75
+ #elif defined(_WIN32 )
76
+ #define AMPS_ATOMIC_TYPE_8 volatile char
77
+ #define AMPS_FETCH_AND_8(ptr, value) InterlockedAnd8((char volatile*)(ptr), (char)(value))
78
+ #define AMPS_FETCH_OR_8(ptr, value) InterlockedOr8((char volatile*)(ptr), (char)(value))
79
+ #define AMPS_ATOMIC_BASE_TYPE LONG64
80
+ #define AMPS_ATOMIC_TYPE volatile LONG64
81
+ #define AMPS_FETCH_ADD(ptr, value) InterlockedExchangeAdd64((LONG64 volatile*)(ptr), (LONG64)(value))
82
+ #define AMPS_FETCH_SUB(ptr, value) InterlockedExchangeAdd64((LONG64 volatile*)(ptr), (LONG64)(-1 * (value)))
83
+ #define AMPS_FETCH_AND(ptr, value) InterlockedAnd64((LONG64 volatile*)(ptr), (LONG64)(value))
84
+ #define AMPS_FETCH_OR(ptr, value) InterlockedOr64((LONG64 volatile*)(ptr), (LONG64)(value))
85
+ #elif defined(sun)
86
+ #define AMPS_ATOMIC_TYPE_8 volatile char
87
+ #define AMPS_FETCH_AND_8(x, y) atomic_and_8_nv((volatile char*)(x), (y))
88
+ #define AMPS_FETCH_OR_8(x, y) atomic_or_8_nv((volatile char*)(x), (y))
89
+ #define AMPS_ATOMIC_BASE_TYPE unsigned long
90
+ #define AMPS_ATOMIC_TYPE volatile unsigned long
91
+ #define AMPS_FETCH_ADD(x, y) atomic_add_long_nv((volatile unsigned long*)(x), (y))
92
+ #define AMPS_FETCH_SUB(x, y) atomic_add_long_nv((volatile unsigned long*)(x), -1*(y))
93
+ #define AMPS_FETCH_AND(x, y) atomic_and_ulong_nv((volatile unsigned long*)(x), (y))
94
+ #define AMPS_FETCH_OR(x, y) atomic_or_ulong_nv((volatile unsigned long*)(x), (y))
95
+ #else
96
+ #define AMPS_ATOMIC_TYPE_8 volatile char
97
+ #define AMPS_FETCH_AND_8(x, y) __sync_fetch_and_and((x), y)
98
+ #define AMPS_FETCH_OR_8(x, y) __sync_fetch_and_or((x), y)
99
+ #define AMPS_ATOMIC_BASE_TYPE long
100
+ #define AMPS_ATOMIC_TYPE volatile long
101
+ #define AMPS_FETCH_ADD(x, y) __sync_fetch_and_add((x), y)
102
+ #define AMPS_FETCH_SUB(x, y) __sync_fetch_and_sub((x), y)
103
+ #define AMPS_FETCH_AND(x, y) __sync_fetch_and_and((x), y)
104
+ #define AMPS_FETCH_OR(x, y) __sync_fetch_and_or((x), y)
105
+ #endif
106
+
107
+ #define AMPS_DEFAULT_MIN_VERSION 99999999
108
+ namespace
109
+ {
110
+ const amps_uint64_t AMPS_DEFAULT_SERVER_VERSION = 9900990009900099;
111
+ }
112
+ ///
113
+ /// Simple wrapper around a CRITICAL_SECTION or pthread_mutex_t,
114
+ /// with acquire/release and wait/signalAll support.
115
+ ///
116
+
117
+ namespace AMPS
118
+ {
119
+ class Mutex
120
+ {
121
+ // Not implemented.
122
+ Mutex& operator=(const Mutex& rhs);
123
+ Mutex(const Mutex& rhs);
124
+ #ifdef _WIN32
125
+ CRITICAL_SECTION _lock;
126
+ HANDLE _sem;
127
+ int _waiters;
128
+ public:
129
+ Mutex()
130
+ {
131
+ InitializeCriticalSection(&_lock);
132
+ _sem = CreateSemaphore(NULL, 0, LONG_MAX, NULL);
133
+ _waiters = 0;
134
+ }
135
+ ~Mutex()
136
+ {
137
+ DeleteCriticalSection(&_lock);
138
+ CloseHandle(_sem);
139
+ }
140
+ void acquireRead()
141
+ {
142
+ EnterCriticalSection(&_lock);
143
+ }
144
+ void releaseRead()
145
+ {
146
+ LeaveCriticalSection(&_lock);
147
+ }
148
+ void acquireWrite()
149
+ {
150
+ EnterCriticalSection(&_lock);
151
+ }
152
+ void releaseWrite()
153
+ {
154
+ LeaveCriticalSection(&_lock);
155
+ }
156
+ void wait()
157
+ {
158
+ ++_waiters;
159
+ LeaveCriticalSection(&_lock);
160
+ WaitForSingleObject(_sem, INFINITE);
161
+ EnterCriticalSection(&_lock);
162
+ }
163
+ bool wait(long timeoutMillis)
164
+ {
165
+ ++_waiters;
166
+ LeaveCriticalSection(&_lock);
167
+ DWORD result = WaitForSingleObject(_sem, (int)timeoutMillis);
168
+ EnterCriticalSection(&_lock);
169
+
170
+ return WAIT_OBJECT_0 == result;
171
+ }
172
+ void signalAll()
173
+ {
174
+ if (_waiters)
175
+ {
176
+ BOOL rc = ReleaseSemaphore(_sem, _waiters, NULL);
177
+ assert(rc);
178
+ _waiters = 0;
179
+ }
180
+ }
181
+ #else
182
+ pthread_mutex_t _lock;
183
+ pthread_cond_t _condition;
184
+ public:
185
+ Mutex()
186
+ {
187
+ pthread_mutexattr_t attr;
188
+ pthread_mutexattr_init(&attr);
189
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
190
+ pthread_mutex_init(&_lock, &attr);
191
+ pthread_cond_init(&_condition, NULL);
192
+ pthread_mutexattr_destroy(&attr);
193
+ amps_atfork_add((void*)&_lock, amps_mutex_pair_atfork);
194
+ }
195
+ ~Mutex()
196
+ {
197
+ amps_atfork_remove((void*)&_lock, amps_mutex_pair_atfork);
198
+ pthread_mutex_destroy(&_lock);
199
+ pthread_cond_destroy(&_condition);
200
+ }
201
+ void acquireRead()
202
+ {
203
+ pthread_mutex_lock(&_lock);
204
+ }
205
+ void releaseRead()
206
+ {
207
+ pthread_mutex_unlock(&_lock);
208
+ }
209
+ void acquireWrite()
210
+ {
211
+ acquireRead();
212
+ }
213
+ void releaseWrite()
214
+ {
215
+ releaseRead();
216
+ }
217
+ void wait()
218
+ {
219
+ pthread_cond_wait(&_condition, &_lock);
220
+ }
221
+ bool wait(long timeoutMillis)
222
+ {
223
+ struct timespec now;
224
+ const long BILLION = 1000L * 1000L * 1000L;
225
+ clock_gettime(CLOCK_REALTIME, &now);
226
+ now.tv_sec += timeoutMillis / 1000;
227
+ now.tv_nsec += (1000 * 1000 * (timeoutMillis % 1000));
228
+ // tv_nsec may not exceed one billion, according to the man pages.
229
+ now.tv_sec += now.tv_nsec / BILLION;
230
+ now.tv_nsec %= BILLION;
231
+ return pthread_cond_timedwait(&_condition, &_lock, &now) == 0;
232
+ }
233
+ void signalAll()
234
+ {
235
+ pthread_cond_broadcast(&_condition);
236
+ }
237
+ #endif
238
+ };
239
+
240
+
241
+ ///
242
+ /// Simple wrapper around the native reader/writer lock, on POSIX,
243
+ /// and just a plain critical section on Windows.
244
+ ///
245
+ class ReadersWriterLock
246
+ {
247
+ ReadersWriterLock(const ReadersWriterLock& rhs);
248
+ ReadersWriterLock& operator= (const ReadersWriterLock& rhs);
249
+
250
+ #ifdef _WIN32
251
+ CRITICAL_SECTION _lock;
252
+ #else
253
+ pthread_rwlock_t _lock;
254
+ #endif
255
+ public:
256
+ ReadersWriterLock()
257
+ {
258
+ #ifdef _WIN32
259
+ InitializeCriticalSection(&_lock);
260
+ #else
261
+ pthread_rwlock_init(&_lock, NULL);
262
+ #endif
263
+ }
264
+ ~ReadersWriterLock()
265
+ {
266
+ #ifndef _WIN32
267
+ pthread_rwlock_destroy(&_lock);
268
+ #else
269
+ DeleteCriticalSection(&_lock);
270
+ #endif
271
+ }
272
+ void acquireRead()
273
+ {
274
+ #ifdef _WIN32
275
+ EnterCriticalSection(&_lock);
276
+ #else
277
+ pthread_rwlock_rdlock(&_lock);
278
+ #endif
279
+ }
280
+
281
+ void releaseRead()
282
+ {
283
+ #ifdef _WIN32
284
+ LeaveCriticalSection(&_lock);
285
+ #else
286
+ pthread_rwlock_unlock(&_lock);
287
+ #endif
288
+ }
289
+
290
+ void acquireWrite()
291
+ {
292
+ #ifdef _WIN32
293
+ EnterCriticalSection(&_lock);
294
+ #else
295
+ pthread_rwlock_wrlock(&_lock);
296
+ #endif
297
+ }
298
+ void releaseWrite()
299
+ {
300
+ releaseRead();
301
+ }
302
+
303
+ };
304
+
305
+ ///
306
+ ///
307
+ /// Simple RAII-style class for automatic locking/unlocking
308
+ ///
309
+ template <class T>
310
+ class Lock
311
+ {
312
+ T& _lock;
313
+ Lock(const Lock<T>& rhs); // not implemented
314
+ Lock<T>& operator=(const Lock<T>& rhs); // not implemented
315
+ public:
316
+ Lock(T& lock) : _lock(lock)
317
+ {
318
+ _lock.acquireRead();
319
+ }
320
+ ~Lock()
321
+ {
322
+ _lock.releaseRead();
323
+ }
324
+ };
325
+
326
+ ///
327
+ ///
328
+ /// Simple RAII-style class for automatic locking/unlocking
329
+ ///
330
+ template <class T>
331
+ class LockRead
332
+ {
333
+ T& _lock;
334
+ LockRead(const LockRead<T>& rhs); // not implemented
335
+ LockRead<T>& operator=(const LockRead<T>& rhs); // not implemented
336
+ public:
337
+ LockRead(T& lock) : _lock(lock)
338
+ {
339
+ _lock.acquireRead();
340
+ }
341
+ ~LockRead()
342
+ {
343
+ _lock.releaseRead();
344
+ }
345
+ };
346
+
347
+ ///
348
+ /// Simple RAII-style class for automatic locking/unlocking.
349
+ /// When used with a ReadersWriterLock, takes an exclusive lock.
350
+ ///
351
+ template <class T>
352
+ class LockWrite
353
+ {
354
+ T& _lock;
355
+ LockWrite(const LockWrite<T>& rhs); // not implemented
356
+ LockWrite<T>& operator=(const LockWrite<T>& rhs); // not implemented
357
+
358
+ public:
359
+ LockWrite(T& lock) : _lock(lock)
360
+ {
361
+ _lock.acquireWrite();
362
+ }
363
+ ~LockWrite()
364
+ {
365
+ _lock.releaseWrite();
366
+ }
367
+ };
368
+
369
+ ///
370
+ /// Simple RAII-style class for automatic unlocking/relocking
371
+ ///
372
+ template <class T>
373
+ class Unlock
374
+ {
375
+ T& _lock;
376
+ Unlock(const Unlock<T>& rhs); // not implemented
377
+ Unlock<T>& operator=(const Unlock<T>& rhs); //ni
378
+
379
+ public:
380
+ Unlock(T& lock) : _lock(lock)
381
+ {
382
+ _lock.releaseRead();
383
+ }
384
+ ~Unlock()
385
+ {
386
+ _lock.acquireRead();
387
+ }
388
+ };
389
+
390
+ ///
391
+ /// Simple RAII-style class for automatic unlocking/relocking
392
+ ///
393
+ template <class T>
394
+ class UnlockRead
395
+ {
396
+ T& _lock;
397
+ UnlockRead(const UnlockRead<T>& rhs); // not implemented
398
+ UnlockRead<T>& operator=(const UnlockRead<T>& rhs); //ni
399
+
400
+ public:
401
+ UnlockRead(T& lock) : _lock(lock)
402
+ {
403
+ _lock.releaseRead();
404
+ }
405
+ ~UnlockRead()
406
+ {
407
+ _lock.acquireRead();
408
+ }
409
+ };
410
+
411
+ ///
412
+ ///
413
+ /// Lock guard that defers locking until requested
414
+ ///
415
+ template <class T>
416
+ class DeferLock
417
+ {
418
+ T& _lock;
419
+ bool _isLocked;
420
+ DeferLock(const DeferLock<T>& rhs); // not implemented
421
+ DeferLock<T>& operator=(const DeferLock<T>& rhs); // not implemented
422
+ public:
423
+ DeferLock(T& lock) : _lock(lock), _isLocked(false)
424
+ {
425
+ }
426
+ bool isLocked(void) const
427
+ {
428
+ return _isLocked;
429
+ }
430
+ void lock(void)
431
+ {
432
+ _lock.acquireRead();
433
+ _isLocked = true;
434
+ }
435
+ void unlock(void)
436
+ {
437
+ _lock.releaseRead();
438
+ _isLocked = false;
439
+ }
440
+ ~DeferLock()
441
+ {
442
+ if (_isLocked)
443
+ {
444
+ _lock.releaseRead();
445
+ }
446
+ }
447
+ };
448
+
449
+ ///
450
+ /// Limited unique pointer implementation
451
+ ///
452
+ template<class T>
453
+ class amps_unique_ptr
454
+ {
455
+ public:
456
+ amps_unique_ptr() : _body(NULL) {;}
457
+ amps_unique_ptr(T* t_) : _body(t_) {;}
458
+ ~amps_unique_ptr()
459
+ {
460
+ delete _body;
461
+ }
462
+ T& operator=(T* t_)
463
+ {
464
+ reset(t_);
465
+ return *_body;
466
+ }
467
+
468
+ void reset(T* t_)
469
+ {
470
+ delete _body;
471
+ _body = t_;
472
+ }
473
+
474
+ T& operator*()
475
+ {
476
+ return *_body;
477
+ }
478
+ T* operator->()
479
+ {
480
+ return _body;
481
+ }
482
+ const T& operator*() const
483
+ {
484
+ return *_body;
485
+ }
486
+ const T* operator->() const
487
+ {
488
+ return _body;
489
+ }
490
+
491
+ operator bool() const
492
+ {
493
+ return _body != NULL;
494
+ }
495
+
496
+ T* get()
497
+ {
498
+ return _body;
499
+ }
500
+ const T* get() const
501
+ {
502
+ return _body;
503
+ }
504
+ private:
505
+ T* _body;
506
+ };
507
+
508
+ ///
509
+ /// Simple reference-counted body class for AMPS.
510
+ ///
511
+ class RefBody
512
+ {
513
+ AMPS_ATOMIC_TYPE _refs;
514
+ protected:
515
+ // we don't want the compiler's version of this, nor should
516
+ // refcounted bodies have one
517
+ const RefBody& operator=(const RefBody&);
518
+ RefBody(const RefBody&);
519
+ public:
520
+ RefBody() : _refs(0) {;}
521
+ virtual ~RefBody() {;}
522
+ void addRef()
523
+ {
524
+ AMPS_FETCH_ADD(&_refs, 1);
525
+ }
526
+ void removeRef()
527
+ {
528
+ // return of 1 means it was set to 0
529
+ if (AMPS_FETCH_SUB(&_refs, 1) == 1)
530
+ {
531
+ destroy();
532
+ }
533
+ }
534
+ virtual void destroy()
535
+ {
536
+ delete this;
537
+ }
538
+ };
539
+
540
+ ///
541
+ /// Template for optionally reference counted handle on a RefBody.
542
+ ///
543
+ template<class T>
544
+ class BorrowRefHandle
545
+ {
546
+ T* _body;
547
+ bool _isRef;
548
+ public:
549
+ BorrowRefHandle() : _body(NULL), _isRef(false)
550
+ {;}
551
+
552
+ virtual ~BorrowRefHandle()
553
+ {
554
+ if (_isRef && _body != NULL)
555
+ {
556
+ _body->removeRef();
557
+ }
558
+ _body = NULL;
559
+ }
560
+
561
+ BorrowRefHandle(T* body, bool isRef)
562
+ {
563
+ if (isRef && body != NULL)
564
+ {
565
+ body->addRef();
566
+ }
567
+ _body = body;
568
+ _isRef = isRef;
569
+ }
570
+
571
+ BorrowRefHandle(const BorrowRefHandle& rhs)
572
+ {
573
+ if (rhs._isRef && rhs._body != NULL)
574
+ {
575
+ rhs._body->addRef();
576
+ }
577
+ _body = rhs._body;
578
+ _isRef = rhs._isRef;
579
+ }
580
+
581
+ #if defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
582
+ BorrowRefHandle(BorrowRefHandle&& rhs)
583
+ : _body(rhs._body)
584
+ , _isRef(rhs._isRef)
585
+ {
586
+ rhs._body = NULL;
587
+ rhs._isRef = false;
588
+ }
589
+
590
+ const BorrowRefHandle& operator=(BorrowRefHandle&& rhs)
591
+ {
592
+ if (this == &rhs)
593
+ {
594
+ return *this;
595
+ }
596
+ if (_isRef && _body != NULL)
597
+ {
598
+ _body->removeRef();
599
+ }
600
+ _body = rhs._body;
601
+ _isRef = rhs._isRef;
602
+ rhs._body = NULL;
603
+ rhs._isRef = false;
604
+ return *this;
605
+ }
606
+ #endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
607
+
608
+ const BorrowRefHandle& operator=(const BorrowRefHandle& rhs)
609
+ {
610
+ if (this == &rhs)
611
+ {
612
+ return *this;
613
+ }
614
+ T* body = _body;
615
+ _body = rhs._body;
616
+ if (rhs._isRef && rhs._body != NULL)
617
+ {
618
+ rhs._body->addRef();
619
+ }
620
+ if (_isRef && body != NULL)
621
+ {
622
+ body->removeRef();
623
+ }
624
+ _isRef = rhs._isRef;
625
+
626
+ return *this;
627
+ }
628
+
629
+ const T& get() const
630
+ {
631
+ return *_body;
632
+ }
633
+
634
+ T& get()
635
+ {
636
+ return *_body;
637
+ }
638
+
639
+ T* operator->(void)
640
+ {
641
+ return _body;
642
+ }
643
+
644
+ const T* operator->(void) const
645
+ {
646
+ return _body;
647
+ }
648
+
649
+ bool isRef(void) const
650
+ {
651
+ return _isRef;
652
+ }
653
+
654
+ bool isValid() const
655
+ {
656
+ return (_body != NULL);
657
+ }
658
+
659
+ bool release(void)
660
+ {
661
+ T* body = _body;
662
+ _body = NULL;
663
+ if (_isRef && body != NULL)
664
+ {
665
+ return body->removeRef();
666
+ }
667
+ return false;
668
+ }
669
+ };
670
+
671
+
672
+ ///
673
+ /// Template for reference counted handle on a RefBody.
674
+ ///
675
+ template<class T>
676
+ class RefHandle
677
+ {
678
+ T* _body;
679
+ public:
680
+ RefHandle() : _body(NULL) {;}
681
+ virtual ~RefHandle()
682
+ {
683
+ if (_body != NULL)
684
+ {
685
+ _body->removeRef();
686
+ }
687
+ _body = NULL;
688
+ }
689
+
690
+ RefHandle(T* body)
691
+ {
692
+ if (body != NULL)
693
+ {
694
+ body->addRef();
695
+ }
696
+ _body = body;
697
+ }
698
+ RefHandle(const RefHandle& rhs)
699
+ {
700
+ if (rhs._body != NULL)
701
+ {
702
+ rhs._body->addRef();
703
+ }
704
+ _body = rhs._body;
705
+ }
706
+ #if defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
707
+ RefHandle(RefHandle&& rhs) : _body(rhs._body)
708
+ {
709
+ rhs._body = NULL;
710
+ }
711
+
712
+ const RefHandle& operator=(RefHandle&& rhs)
713
+ {
714
+ if (this == &rhs)
715
+ {
716
+ return *this;
717
+ }
718
+ if (_body != NULL)
719
+ {
720
+ _body->removeRef();
721
+ }
722
+ _body = rhs._body;
723
+ rhs._body = NULL;
724
+ return *this;
725
+ }
726
+ #endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600
727
+ const RefHandle& operator=(const RefHandle& rhs)
728
+ {
729
+ if (this == &rhs)
730
+ {
731
+ return *this;
732
+ }
733
+ T* body = _body;
734
+ _body = rhs._body;
735
+ if (rhs._body != NULL)
736
+ {
737
+ rhs._body->addRef();
738
+ }
739
+ if (body != NULL)
740
+ {
741
+ body->removeRef();
742
+ }
743
+
744
+ return *this;
745
+ }
746
+
747
+ const T& get() const
748
+ {
749
+ return *_body;
750
+ }
751
+ T& get()
752
+ {
753
+ return *_body;
754
+ }
755
+ T* operator->(void)
756
+ {
757
+ return _body;
758
+ }
759
+ const T* operator->(void) const
760
+ {
761
+ return _body;
762
+ }
763
+
764
+
765
+ bool isValid() const
766
+ {
767
+ return (_body != NULL);
768
+ }
769
+
770
+ };
771
+
772
+ ///
773
+ /// Class that uses RAII to flip a bool only during its lifetime.
774
+ ///
775
+ class FlagFlip
776
+ {
777
+ public:
778
+ #if __cplusplus >= 201100L || _MSC_VER >= 1900
779
+ FlagFlip(std::atomic<bool>* pFlag_) : _pFlag(pFlag_)
780
+ #else
781
+ FlagFlip(volatile bool * pFlag_) : _pFlag(pFlag_)
782
+ #endif
783
+ {
784
+ *_pFlag = !*_pFlag;
785
+ }
786
+ ~FlagFlip()
787
+ {
788
+ *_pFlag = !*_pFlag;
789
+ }
790
+ private:
791
+ #if __cplusplus >= 201100L || _MSC_VER >= 1900
792
+ std::atomic<bool>* _pFlag;
793
+ #else
794
+ volatile bool* _pFlag;
795
+ #endif
796
+ };
797
+
798
+ ///
799
+ /// Class that uses RAII to set/unset an 8bit atomic
800
+ ///
801
+ class AtomicFlagFlip
802
+ {
803
+ public:
804
+ AtomicFlagFlip(AMPS_ATOMIC_TYPE_8* pCount_) : _pCount(pCount_)
805
+ {
806
+ AMPS_FETCH_OR_8(_pCount, 1);
807
+ }
808
+ ~AtomicFlagFlip()
809
+ {
810
+ AMPS_FETCH_AND_8(_pCount, 0);
811
+ }
812
+ private:
813
+ AMPS_ATOMIC_TYPE_8* _pCount;
814
+ };
815
+
816
+ ///
817
+ /// Base class for all exceptions in AMPS.
818
+ /// May be constructed with text, or with a client handle,
819
+ /// in which case the exception text is made equal to the last
820
+ /// error message on that client.
821
+ ///
822
+ class AMPSException : public std::runtime_error
823
+ {
824
+ protected:
825
+ amps_result _result;
826
+ public:
827
+ ///
828
+ /// Construct an AMPSException from a text message.
829
+ ///
830
+ /// \param message_ The text of the error message.
831
+ /// \param result_ The last amps_result you were given.
832
+ AMPSException(const std::string& message_,
833
+ amps_result result_)
834
+ : std::runtime_error(message_),
835
+ _result(result_)
836
+ {
837
+ }
838
+
839
+ ///
840
+ /// Construct an AMPSException from the last error message
841
+ /// on client.
842
+ /// \param client_ The client to retrieve an error message from.
843
+ /// \param result_ The result code you last retrieved from this client.
844
+ ///
845
+ AMPSException(amps_handle client_,
846
+ amps_result result_)
847
+ : std::runtime_error(""),
848
+ _result(result_)
849
+ {
850
+ char buffer[1024];
851
+ amps_client_get_error(client_, buffer,
852
+ sizeof(buffer));
853
+ buffer[sizeof(buffer) - 1] = '\0';
854
+ (std::runtime_error&)*this = std::runtime_error(buffer);
855
+ }
856
+ virtual ~AMPSException() throw() {;}
857
+
858
+ ///
859
+ /// Returns a null-terminated string containing self's
860
+ /// error message.
861
+ ///
862
+ const char* toString() const
863
+ {
864
+ return what();
865
+ }
866
+
867
+ ///
868
+ /// Returns the actual name of the subclass thrown --
869
+ /// useful when RTTI is disabled, but you'd still like to log
870
+ /// the exact exception type.
871
+ ///
872
+ virtual const char* getClassName() const
873
+ {
874
+ return "AMPSException";
875
+ }
876
+
877
+ ///
878
+ /// Constructs and throws the appropriate exception
879
+ /// corresponding to a given result
880
+ /// \param context_ The object to pass to the exception's constructor.
881
+ /// \param result_ the result that should be used to determine the exception type.
882
+ template <class T>
883
+ static void throwFor(const T& context_, amps_result result_);
884
+ };
885
+
886
+ #define AMPS_EX_TYPE(x, b) \
887
+ class x : public b\
888
+ {\
889
+ public:\
890
+ x(const std::string& message, amps_result result = AMPS_E_OK)\
891
+ : b(message, result) {;}\
892
+ x(amps_handle client, amps_result result)\
893
+ : b(client, result) {;}\
894
+ virtual const char* getClassName() const { return #x; }\
895
+ };
896
+ AMPS_EX_TYPE(CommandException, AMPSException)
897
+ AMPS_EX_TYPE(ConnectionException, AMPSException)
898
+ AMPS_EX_TYPE(UsageException, AMPSException)
899
+ AMPS_EX_TYPE(StoreException, AMPSException)
900
+ AMPS_EX_TYPE(MessageStreamFullException, AMPSException)
901
+ AMPS_EX_TYPE(ConnectionRefusedException, ConnectionException)
902
+ AMPS_EX_TYPE(DisconnectedException, ConnectionException)
903
+ AMPS_EX_TYPE(AlreadyConnectedException, ConnectionException)
904
+ AMPS_EX_TYPE(AuthenticationException, ConnectionException)
905
+ AMPS_EX_TYPE(InvalidURIException, ConnectionException)
906
+ AMPS_EX_TYPE(NameInUseException, ConnectionException)
907
+ AMPS_EX_TYPE(NotEntitledException, ConnectionException)
908
+ AMPS_EX_TYPE(ReconnectMaximumExceededException, ConnectionException)
909
+ AMPS_EX_TYPE(RetryOperationException, ConnectionException)
910
+ AMPS_EX_TYPE(TimedOutException, ConnectionException)
911
+ AMPS_EX_TYPE(TransportTypeException, ConnectionException)
912
+ AMPS_EX_TYPE(BadFilterException, CommandException)
913
+ AMPS_EX_TYPE(BadSowKeyException, CommandException)
914
+ AMPS_EX_TYPE(BadRegexTopicException, CommandException)
915
+ AMPS_EX_TYPE(DuplicateLogonException, CommandException)
916
+ AMPS_EX_TYPE(InvalidBookmarkException, CommandException)
917
+ AMPS_EX_TYPE(InvalidOptionsException, CommandException)
918
+ AMPS_EX_TYPE(InvalidOrderByException, CommandException)
919
+ AMPS_EX_TYPE(InvalidSubIdException, CommandException)
920
+ AMPS_EX_TYPE(InvalidTopicException, CommandException)
921
+ AMPS_EX_TYPE(LogonRequiredException, CommandException)
922
+ AMPS_EX_TYPE(MissingFieldsException, CommandException)
923
+ AMPS_EX_TYPE(PublishException, CommandException)
924
+ AMPS_EX_TYPE(SubscriptionAlreadyExistsException, CommandException)
925
+ AMPS_EX_TYPE(SubidInUseException, CommandException)
926
+ AMPS_EX_TYPE(UnknownException, CommandException)
927
+ AMPS_EX_TYPE(PublishStoreGapException, StoreException)
928
+
929
+ template <class T> // static
930
+ void AMPSException::throwFor(const T& context_, amps_result result_)
931
+ {
932
+ switch (result_)
933
+ {
934
+ case AMPS_E_OK:
935
+ return;
936
+ case AMPS_E_COMMAND:
937
+ throw CommandException(context_, result_);
938
+ case AMPS_E_CONNECTION:
939
+ throw ConnectionException(context_, result_);
940
+ case AMPS_E_TOPIC:
941
+ throw InvalidTopicException(context_, result_);
942
+ case AMPS_E_FILTER:
943
+ throw BadFilterException(context_, result_);
944
+ case AMPS_E_RETRY:
945
+ throw RetryOperationException(context_, result_);
946
+ case AMPS_E_DISCONNECTED:
947
+ throw DisconnectedException(context_, result_);
948
+ case AMPS_E_CONNECTION_REFUSED:
949
+ throw ConnectionRefusedException(context_, result_);
950
+ case AMPS_E_URI:
951
+ throw InvalidURIException(context_, result_);
952
+ case AMPS_E_TRANSPORT_TYPE:
953
+ throw TransportTypeException(context_, result_);
954
+ case AMPS_E_USAGE:
955
+ throw UsageException(context_, result_);
956
+ default:
957
+ throw AMPSException(context_, result_);
958
+ }
959
+ }
960
+
961
+ #if defined (_MSC_VER)
962
+
963
+ #ifdef _WIN32
964
+ #if _WIN32_WINNT < 0x0600
965
+ #define AMPS_START_TIMER(timeout) \
966
+ __declspec(align(8)) LARGE_INTEGER timer_freq, timer_start, timer_end; \
967
+ timer_freq.QuadPart = timer_start.QuadPart = timer_end.QuadPart = 0LL; \
968
+ double timer_timeout = (double)timeout; \
969
+ QueryPerformanceFrequency(&timer_freq); \
970
+ double timer_ms_freq = timer_freq.QuadPart/1000.0; \
971
+ QueryPerformanceCounter(&timer_start);
972
+
973
+ #define AMPS_CHECK_TIMER(x) \
974
+ QueryPerformanceCounter(&timer_end); \
975
+ x = (((timer_end.QuadPart - timer_start.QuadPart)/timer_ms_freq) > timer_timeout);
976
+
977
+ #define AMPS_RESET_TIMER(timedOut, timeout) \
978
+ QueryPerformanceCounter(&timer_end); \
979
+ timeout = (int)(timer_timeout - ((timer_end.QuadPart - timer_start.QuadPart)/timer_ms_freq)); \
980
+ timedOut = (timeout <= 0);
981
+
982
+ #else
983
+ #define AMPS_START_TIMER(timeout) \
984
+ ULONGLONG timer_start, timer_end; \
985
+ ULONGLONG timer_timeout = (ULONGLONG)timeout; \
986
+ timer_start = timer_end = 0LL; \
987
+ timer_start = GetTickCount64();
988
+
989
+ #define AMPS_CHECK_TIMER(x) \
990
+ timer_end = 0ULL; \
991
+ while (timer_end == 0ULL) timer_end = GetTickCount64(); \
992
+ x = ((timer_end - timer_start) > timer_timeout);
993
+
994
+ #define AMPS_RESET_TIMER(timedOut, timeout) \
995
+ timer_end = 0ULL; \
996
+ while (timer_end == 0ULL) timer_end = GetTickCount64(); \
997
+ timeout = (long)(timer_timeout - (timer_end - timer_start)); \
998
+ timedOut = (timeout <= 0);
999
+ #endif
1000
+ #endif
1001
+
1002
+
1003
+ class Timer
1004
+ {
1005
+ public:
1006
+ Timer(double timeoutMillis_ = 0.0)
1007
+ : _timeout(timeoutMillis_)
1008
+ {
1009
+ #if _WIN32_WINNT < 0x0600
1010
+ __declspec(align(8)) LARGE_INTEGER freq;
1011
+ QueryPerformanceFrequency(&freq);
1012
+ _freq = freq.QuadPart / 1000.0;
1013
+ #endif
1014
+ reset();
1015
+ }
1016
+ void setTimeout(double timeoutMillis_)
1017
+ {
1018
+ _timeout = timeoutMillis_;
1019
+ }
1020
+ double getTimeout(void) const
1021
+ {
1022
+ return _timeout;
1023
+ }
1024
+ void start(void)
1025
+ {
1026
+ #if _WIN32_WINNT < 0x0600
1027
+ QueryPerformanceCounter(&_start);
1028
+ #else
1029
+ _start = 0ULL;
1030
+ while (_start == 0ULL)
1031
+ {
1032
+ _start = GetTickCount64();
1033
+ }
1034
+ #endif
1035
+ }
1036
+ void reset(void)
1037
+ {
1038
+ #if _WIN32_WINNT < 0x0600
1039
+ _start.QuadPart = 0;
1040
+ #else
1041
+ _start = 0ULL;
1042
+ _end = 0ULL;
1043
+ #endif
1044
+ }
1045
+ bool check(void)
1046
+ {
1047
+ if (_timeout == 0.0)
1048
+ {
1049
+ return false; // -V550
1050
+ }
1051
+ #if _WIN32_WINNT < 0x0600
1052
+ if (_start.QuadPart == 0)
1053
+ {
1054
+ QueryPerformanceCounter(&_start);
1055
+ }
1056
+ QueryPerformanceCounter(&_end);
1057
+ return (((_end.QuadPart - _start.QuadPart) / _freq) > _timeout);
1058
+ #else
1059
+ while (_start == 0ULL)
1060
+ {
1061
+ _start = GetTickCount64();
1062
+ }
1063
+ _end = 0ULL;
1064
+ while (_end == 0ULL)
1065
+ {
1066
+ _end = GetTickCount64();
1067
+ }
1068
+ ULONGLONG elapsed = _end - _start;
1069
+ return ((elapsed * 1.0) > _timeout);
1070
+ #endif
1071
+ }
1072
+ bool checkAndGetRemaining(double* remaining_)
1073
+ {
1074
+ if (_timeout == 0.0)
1075
+ {
1076
+ *remaining_ = 1000.0;
1077
+ return false; // -V550
1078
+ }
1079
+ #if _WIN32_WINNT < 0x0600
1080
+ QueryPerformanceCounter(&_end);
1081
+ double elapsed = ((_end.QuadPart - _start.QuadPart) / _freq);
1082
+ #else
1083
+ _end = 0ULL;
1084
+ while (_end == 0ULL)
1085
+ {
1086
+ _end = GetTickCount64();
1087
+ }
1088
+ ULONGLONG elapsed = _end - _start;
1089
+ #endif
1090
+ *remaining_ = _timeout - elapsed;
1091
+ return *remaining_ <= 0.0;
1092
+ }
1093
+ bool checkAndGetRemaining(long* remaining_)
1094
+ {
1095
+ if (_timeout == 0.0)
1096
+ {
1097
+ *remaining_ = 1000;
1098
+ return false; // -V550
1099
+ }
1100
+ #if _WIN32_WINNT < 0x0600
1101
+ QueryPerformanceCounter(&_end);
1102
+ double elapsed = ((_end.QuadPart - _start.QuadPart) / _freq);
1103
+ #else
1104
+ _end = 0ULL;
1105
+ while (_end == 0ULL)
1106
+ {
1107
+ _end = GetTickCount64();
1108
+ }
1109
+ ULONGLONG elapsed = _end - _start;
1110
+ #endif
1111
+ *remaining_ = (long)(_timeout - elapsed);
1112
+ return *remaining_ <= 0;
1113
+ }
1114
+ private:
1115
+ #if _WIN32_WINNT < 0x0600
1116
+ __declspec(align(8)) LARGE_INTEGER _start, _end;
1117
+ double _freq;
1118
+ #else
1119
+ ULONGLONG _start, _end;
1120
+ #endif
1121
+ double _timeout;
1122
+ };
1123
+
1124
+ #else
1125
+ #define AMPS_START_TIMER(timeout) \
1126
+ struct timespec timer_start = {0, 0}; \
1127
+ long timer_timeout = timeout; \
1128
+ clock_gettime(CLOCK_REALTIME, &timer_start); \
1129
+ struct timespec timer_end = {timer_start.tv_sec, timer_start.tv_nsec};
1130
+
1131
+ #define AMPS_CHECK_TIMER(x) \
1132
+ clock_gettime(CLOCK_REALTIME, &timer_end); \
1133
+ if (timer_end.tv_nsec < timer_start.tv_nsec) \
1134
+ { \
1135
+ timer_end.tv_sec -= 1; \
1136
+ timer_end.tv_nsec += 1000000000; \
1137
+ } \
1138
+ x = ((((timer_end.tv_sec - timer_start.tv_sec) * 1000) + \
1139
+ ((timer_end.tv_nsec-timer_start.tv_nsec)/1000000)) > timer_timeout);
1140
+
1141
+ #define AMPS_RESET_TIMER(timedOut, timeout) \
1142
+ clock_gettime(CLOCK_REALTIME, &timer_end); \
1143
+ if (timer_end.tv_nsec < timer_start.tv_nsec) \
1144
+ { \
1145
+ timer_end.tv_sec -= 1; \
1146
+ timer_end.tv_nsec += 1000000000; \
1147
+ } \
1148
+ timeout = (int)((double)timer_timeout - \
1149
+ ((((double)(timer_end.tv_sec - timer_start.tv_sec)) * 1000.0) + \
1150
+ (((double)(timer_end.tv_nsec-timer_start.tv_nsec))/1000000.0))) + 1; \
1151
+ timedOut = (timeout <= 0);
1152
+
1153
+ class Timer
1154
+ {
1155
+ public:
1156
+ Timer(double timeoutMillis_ = 0.0) : _timeout(timeoutMillis_)
1157
+ {
1158
+ reset();
1159
+ }
1160
+ void setTimeout(double timeoutMillis_)
1161
+ {
1162
+ _timeout = timeoutMillis_;
1163
+ }
1164
+ double getTimeout(void) const
1165
+ {
1166
+ return _timeout;
1167
+ }
1168
+ void start(void)
1169
+ {
1170
+ clock_gettime(CLOCK_REALTIME, &_start);
1171
+ }
1172
+ void reset(void)
1173
+ {
1174
+ _start.tv_sec = 0;
1175
+ _start.tv_nsec = 0;
1176
+ _end.tv_sec = 0;
1177
+ _end.tv_nsec = 0;
1178
+ }
1179
+ bool check(void)
1180
+ {
1181
+ if (_timeout == 0.0)
1182
+ {
1183
+ return false; // -V550
1184
+ }
1185
+ if (_start.tv_sec == 0 && _start.tv_nsec == 0)
1186
+ {
1187
+ clock_gettime(CLOCK_REALTIME, &_start);
1188
+ }
1189
+ clock_gettime(CLOCK_REALTIME, &_end);
1190
+ return (((double)((_end.tv_sec - _start.tv_sec) * 1000) + \
1191
+ (((double)(_end.tv_nsec - _start.tv_nsec)) / 1000000.0)) > _timeout);
1192
+ }
1193
+ bool checkAndGetRemaining(double* remaining_)
1194
+ {
1195
+ if (_timeout == 0.0) // -V550
1196
+ {
1197
+ *remaining_ = 1000.0;
1198
+ return false;
1199
+ }
1200
+ clock_gettime(CLOCK_REALTIME, &_end);
1201
+ double elapsed = ((double)((_end.tv_sec - _start.tv_sec) * 1000) + \
1202
+ (((double)(_end.tv_nsec - _start.tv_nsec)) / 1000000.0));
1203
+ *remaining_ = _timeout - elapsed;
1204
+ return *remaining_ <= 0.0;
1205
+ }
1206
+ bool checkAndGetRemaining(long* remaining_)
1207
+ {
1208
+ if (_timeout == 0.0) // -V550
1209
+ {
1210
+ *remaining_ = 1000;
1211
+ return false;
1212
+ }
1213
+ clock_gettime(CLOCK_REALTIME, &_end);
1214
+ double elapsed = ((double)((_end.tv_sec - _start.tv_sec) * 1000) + \
1215
+ (((double)(_end.tv_nsec - _start.tv_nsec)) / 1000000.0));
1216
+ *remaining_ = (long)(_timeout - elapsed);
1217
+ return *remaining_ <= 0;
1218
+ }
1219
+ private:
1220
+ struct timespec _start, _end;
1221
+ double _timeout;
1222
+ };
1223
+ #endif
1224
+
1225
+ /**
1226
+ * Wrapper class around amps_uri_parse. Construct with a URI and
1227
+ * then use the member functions to extract part values from the URI.
1228
+ */
1229
+ class URI
1230
+ {
1231
+ public:
1232
+ URI(const std::string& uri_)
1233
+ : _uri(uri_),
1234
+ _port(0),
1235
+ _isValid(false)
1236
+ {
1237
+ parse();
1238
+ }
1239
+
1240
+ const std::string& uri(void) const
1241
+ {
1242
+ return _uri;
1243
+ }
1244
+ const std::string& host(void) const
1245
+ {
1246
+ return _host;
1247
+ }
1248
+ const std::string& transport(void) const
1249
+ {
1250
+ return _transport;
1251
+ }
1252
+ const std::string& user(void) const
1253
+ {
1254
+ return _user;
1255
+ }
1256
+ const std::string& password(void) const
1257
+ {
1258
+ return _password;
1259
+ }
1260
+ int port(void) const
1261
+ {
1262
+ return _port;
1263
+ }
1264
+ const std::string& protocol(void) const
1265
+ {
1266
+ return _protocol;
1267
+ }
1268
+ const std::string& messageType(void) const
1269
+ {
1270
+ return _messageType;
1271
+ }
1272
+ bool hasOption(const std::string& key_) const
1273
+ {
1274
+ return _map.find(key_) != _map.end();
1275
+ }
1276
+ const std::string& option(const std::string& key_)
1277
+ {
1278
+ return _map[key_];
1279
+ }
1280
+ bool isValid(void) const
1281
+ {
1282
+ return _isValid;
1283
+ }
1284
+
1285
+ bool isTrue(const std::string& key_)
1286
+ {
1287
+ if (_map.find(key_) != _map.end())
1288
+ {
1289
+ const std::string& value = _map[key_];
1290
+ if (value.size() == 1)
1291
+ {
1292
+ return value == "T" || value == "t" || value == "1";
1293
+ }
1294
+ else if (value.size() == 4)
1295
+ {
1296
+ return value == "True" || value == "true" || value == "TRUE";
1297
+ }
1298
+ }
1299
+ return false;
1300
+ }
1301
+
1302
+ int getInt(const std::string& key_)
1303
+ {
1304
+ if (_map.find(key_) != _map.end())
1305
+ {
1306
+ const std::string& value = _map[key_];
1307
+ return atoi(value.c_str());
1308
+ }
1309
+ return -1;
1310
+ }
1311
+
1312
+ private:
1313
+ void parse(void)
1314
+ {
1315
+ amps_uri_state uriState;
1316
+ memset(&uriState, 0, sizeof(amps_uri_state));
1317
+ while (uriState.part_id < AMPS_URI_ERROR)
1318
+ {
1319
+ amps_uri_parse(_uri.c_str(), _uri.size(), &uriState);
1320
+ switch (uriState.part_id)
1321
+ {
1322
+ case AMPS_URI_TRANSPORT:
1323
+ _transport.assign(uriState.part, uriState.part_length);
1324
+ break;
1325
+ case AMPS_URI_USER:
1326
+ _user = _unescape(uriState.part, uriState.part_length);
1327
+ break;
1328
+ case AMPS_URI_PASSWORD:
1329
+ _password = _unescape(uriState.part, uriState.part_length);
1330
+ break;
1331
+ case AMPS_URI_HOST:
1332
+ _host.assign(uriState.part, uriState.part_length);
1333
+ break;
1334
+ case AMPS_URI_PORT:
1335
+ {
1336
+ std::string port(uriState.part, uriState.part_length);
1337
+ _port = atoi(port.c_str());
1338
+ }
1339
+ break;
1340
+ case AMPS_URI_PROTOCOL:
1341
+ _protocol.assign(uriState.part, uriState.part_length);
1342
+ break;
1343
+ case AMPS_URI_MESSAGE_TYPE:
1344
+ _messageType.assign(uriState.part, uriState.part_length);
1345
+ break;
1346
+ case AMPS_URI_OPTION_KEY:
1347
+ _lastKey.assign(uriState.part, uriState.part_length);
1348
+ break;
1349
+ case AMPS_URI_OPTION_VALUE:
1350
+ _map[_lastKey] = std::string(uriState.part, uriState.part_length);
1351
+ break;
1352
+ default:
1353
+ break;
1354
+ }
1355
+ }
1356
+ _isValid = uriState.part_id == AMPS_URI_END;
1357
+ }
1358
+
1359
+ static char _hexval(char c)
1360
+ {
1361
+ if (c >= '0' && c <= '9')
1362
+ {
1363
+ return static_cast<char>(c - '0');
1364
+ }
1365
+ if (c >= 'a' && c <= 'f')
1366
+ {
1367
+ return static_cast<char>(0xa + c - 'a');
1368
+ }
1369
+ if (c >= 'A' && c <= 'F')
1370
+ {
1371
+ return static_cast<char>(0xa + c - 'A');
1372
+ }
1373
+ return 0;
1374
+ }
1375
+
1376
+ std::string _unescape(const char* data_, size_t length_)
1377
+ {
1378
+ std::string result;
1379
+ for (const char* p = data_, *pe = data_ + length_; p < pe; ++p)
1380
+ {
1381
+ if (*p == '%' && pe - p >= 3)
1382
+ {
1383
+ result += (char)( (0x10 * _hexval(p[1])) + _hexval(p[2]) );
1384
+ p += 2;
1385
+ }
1386
+ else
1387
+ {
1388
+ result += *p;
1389
+ }
1390
+ }
1391
+ return result;
1392
+ }
1393
+
1394
+
1395
+ std::string _uri;
1396
+ std::string _transport;
1397
+ std::string _user;
1398
+ std::string _password;
1399
+ std::string _host;
1400
+ std::string _protocol;
1401
+ std::string _messageType;
1402
+ std::string _lastKey;
1403
+
1404
+ std::map<std::string, std::string> _map;
1405
+ int _port;
1406
+ bool _isValid;
1407
+ };
1408
+
1409
+ /// Converts a string version, such as "3.8.1.5" into the same numeric
1410
+ /// form used internally and returned by getServerVersion. This can
1411
+ /// be used to do comparisons such as
1412
+ /// client.getServerVersion() >= "3.8"
1413
+ /// Conversion works with any string that starts with a number, and will
1414
+ /// assume 0 for any portions of the version not present. So "4" will
1415
+ /// return 4000000, equivalent to "4.0.0.0"
1416
+ /// \param data_ The pointer the start of the character data to convert.
1417
+ /// \param len_ The length of the character data to convert.
1418
+ /// \param defaultVersion_ The value to return for unreleased versions.
1419
+ /// \return The size_t equivalent of the version.
1420
+ /// \throw CommandException If any characters other than . or 0-9 are found
1421
+ inline size_t convertVersionToNumber(const char* data_, size_t len_,
1422
+ size_t defaultVersion_ = AMPS_DEFAULT_MIN_VERSION)
1423
+ {
1424
+ if (len_ == 0)
1425
+ {
1426
+ return 0;
1427
+ }
1428
+ size_t result = 0;
1429
+ // Has a version, use it
1430
+ // named instead of numbered, default to defaultVersion_
1431
+ if (data_[0] < '0' || data_[0] > '9')
1432
+ {
1433
+ // Must be a named branch, assume minimum version
1434
+ return defaultVersion_;
1435
+ }
1436
+ else
1437
+ {
1438
+ size_t dots = 0;
1439
+ long lastDot = -1;
1440
+ for (size_t i = 0; dots < 4 && i < len_; ++i)
1441
+ {
1442
+ if (data_[i] == '.')
1443
+ {
1444
+ ++dots;
1445
+ result *= 10;
1446
+ if ((long)i - lastDot > 5)
1447
+ {
1448
+ throw CommandException("Too many digits between dots found translating version string.");
1449
+ }
1450
+ else if (i - (size_t)lastDot >= 4)
1451
+ {
1452
+ result *= 10;
1453
+ result += 99;
1454
+ }
1455
+ else
1456
+ {
1457
+ if (i - (size_t)lastDot == 3)
1458
+ {
1459
+ result += (size_t)(data_[i - 2] - '0');
1460
+ }
1461
+ result *= 10;
1462
+ result += (size_t)(data_[i - 1] - '0');
1463
+ }
1464
+ lastDot = (long)i;
1465
+ }
1466
+ else if (data_[i] < '0' || data_[i] > '9')
1467
+ {
1468
+ if (dots == 3 && i - (size_t)lastDot <= 5 // -V658
1469
+ && (long)i - lastDot > 1)
1470
+ {
1471
+ ++dots;
1472
+ result *= 10;
1473
+ if (i - (size_t)lastDot >= 4)
1474
+ {
1475
+ result *= 10;
1476
+ result += 99;
1477
+ }
1478
+ else
1479
+ {
1480
+ if (i - (size_t)lastDot == 3)
1481
+ {
1482
+ result += (size_t)(data_[i - 2] - '0');
1483
+ }
1484
+ result *= 10;
1485
+ result += (size_t)(data_[i - 1] - '0');
1486
+ }
1487
+ }
1488
+ else
1489
+ {
1490
+ throw CommandException("Invalid character found in version string");
1491
+ }
1492
+ }
1493
+ if (i == len_ - 1)
1494
+ {
1495
+ ++dots;
1496
+ result *= 10;
1497
+ if (i - (size_t)lastDot > 4)
1498
+ {
1499
+ throw CommandException("Too many digits between dots found translating version string.");
1500
+ }
1501
+ else if (i - (size_t)lastDot >= 3)
1502
+ {
1503
+ result *= 10;
1504
+ result += 99;
1505
+ }
1506
+ else
1507
+ {
1508
+ if (i - (size_t)lastDot == 2)
1509
+ {
1510
+ result += (size_t)(data_[i - 1] - '0');
1511
+ }
1512
+ result *= 10;
1513
+ result += (size_t)(data_[i] - '0');
1514
+ }
1515
+ lastDot = (long)i;
1516
+ }
1517
+ }
1518
+ // For shortened versions, need to add zeroes
1519
+ for (; dots < 4; ++dots)
1520
+ {
1521
+ result *= 100;
1522
+ }
1523
+ }
1524
+ return result;
1525
+ }
1526
+
1527
+ class VersionInfo
1528
+ {
1529
+ public:
1530
+ /// Create a default VersionInfo.
1531
+ VersionInfo() : _versionString("default"), _versionNum(0)
1532
+ {
1533
+ }
1534
+
1535
+ /// Create a VersionInfo to represent the given version string.
1536
+ /// \param version_ The version string to represent.
1537
+ VersionInfo(const char* version_)
1538
+ : _versionString(version_ ? version_ : "default")
1539
+ , _versionNum(0)
1540
+ {
1541
+ }
1542
+
1543
+ /// Create a VersionInfo to represent the given version string.
1544
+ /// \param version_ The version string to represent.
1545
+ VersionInfo(const std::string& version_)
1546
+ : _versionString(version_)
1547
+ , _versionNum(0)
1548
+ {
1549
+ }
1550
+
1551
+ /// Create a VersionInfo to represent the given version string.
1552
+ /// \param version_ The version to copy.
1553
+ VersionInfo(const VersionInfo& info_)
1554
+ : _versionString(info_._versionString)
1555
+ , _versionNum(info_._versionNum)
1556
+ { ; }
1557
+
1558
+ /// Set the version string.
1559
+ /// \param version_ The version string to represent.
1560
+ void setVersion(const char* version_)
1561
+ {
1562
+ _versionString = version_;
1563
+ }
1564
+
1565
+ /// Set the version string.
1566
+ /// \param version_ The version string to represent.
1567
+ void setVersion(const std::string& version_)
1568
+ {
1569
+ _versionString = version_;
1570
+ }
1571
+
1572
+ /// Get the version string.
1573
+ /// \returns The version string.
1574
+ std::string getVersionString() const
1575
+ {
1576
+ return _versionString;
1577
+ }
1578
+
1579
+ /// Get the version as a amps_uint64_t with 4 digits for
1580
+ /// major version, 4 digits for minor version, 5 digits for
1581
+ /// maintenance version, and 5 digits for patch version.
1582
+ /// \returns The version string as an unsigned 64-bit value.
1583
+ amps_uint64_t getVersionUint64() const
1584
+ {
1585
+ if (_versionNum == 0)
1586
+ {
1587
+ _versionNum = parseVersion(_versionString);
1588
+ }
1589
+ return _versionNum;
1590
+ }
1591
+
1592
+ /// Get the version as a size_t with 2 digits each for major,
1593
+ /// minor, maintenance, and patch.
1594
+ /// \returns The version as a size_t with 2 digits each for major,
1595
+ /// minor, maintenance, and patch. This will use 99 for any value
1596
+ /// that is 99 or larger. This is how previous versions of the client
1597
+ /// represented server versions.
1598
+ size_t getOldStyleVersion() const
1599
+ {
1600
+ return convertVersionToNumber(_versionString.data(), _versionString.length());
1601
+ }
1602
+
1603
+ const VersionInfo& operator=(const VersionInfo& info_)
1604
+ {
1605
+ _versionString = info_._versionString;
1606
+ _versionNum = info_._versionNum;
1607
+ return *this;
1608
+ }
1609
+
1610
+ bool operator<(const VersionInfo& info_) const
1611
+ {
1612
+ return getVersionUint64() < info_.getVersionUint64();
1613
+ }
1614
+
1615
+ bool operator<=(const VersionInfo& info_) const
1616
+ {
1617
+ return getVersionUint64() <= info_.getVersionUint64();
1618
+ }
1619
+
1620
+ bool operator==(const VersionInfo& info_) const
1621
+ {
1622
+ return getVersionUint64() == info_.getVersionUint64();
1623
+ }
1624
+
1625
+ bool operator!=(const VersionInfo& info_) const
1626
+ {
1627
+ return getVersionUint64() != info_.getVersionUint64();
1628
+ }
1629
+
1630
+ bool operator>=(const VersionInfo& info_) const
1631
+ {
1632
+ return getVersionUint64() >= info_.getVersionUint64();
1633
+ }
1634
+
1635
+ bool operator>(const VersionInfo& info_) const
1636
+ {
1637
+ return getVersionUint64() > info_.getVersionUint64();
1638
+ }
1639
+
1640
+ /// Parse a version string into an amps_uint64_t with 4 digits for
1641
+ /// major version, 4 digits for minor version, 5 digits for
1642
+ /// maintenance version, and 5 digits for patch version.
1643
+ /// This will fill in 0's for any missing portions of the version
1644
+ /// string and will return the default server version for any
1645
+ /// string with non-numeric, non-dot characters. It will only
1646
+ /// parse the first 4 levels, if there is an additional dot it will
1647
+ /// stop parsing and return the value for the first 4 levels only.
1648
+ /// The return value for "5" would 500000000000000.
1649
+ /// The return value for "5.2.3.0.1" would 500020000300000.
1650
+ /// \param version_ The version string to parse.
1651
+ /// \returns The version string as an unsigned 64-bit value.
1652
+ static amps_uint64_t parseVersion(const std::string& version_)
1653
+ {
1654
+ const int MAXVALUES = 4;
1655
+ const int MAXDIGITS[] = { 4, 4, 5, 5 };
1656
+
1657
+ amps_uint64_t versionNum = 0;
1658
+ if (version_.length() == 0 || !isdigit(version_[0]))
1659
+ {
1660
+ // Start with non-numeric is a special build
1661
+ return AMPS_DEFAULT_SERVER_VERSION;
1662
+ }
1663
+ int digits = 0;
1664
+ int values = 0;
1665
+ amps_uint64_t current = 0;
1666
+ for (std::string::const_iterator c = version_.begin(), e = version_.end(); c != e; ++c)
1667
+ {
1668
+ if (isdigit(*c))
1669
+ {
1670
+ if (++digits > MAXDIGITS[values])
1671
+ {
1672
+ // Too many digits, just return default
1673
+ return AMPS_DEFAULT_SERVER_VERSION;
1674
+ }
1675
+ current *= (amps_uint64_t)10;
1676
+ current += (amps_uint64_t)(*c - '0');
1677
+ }
1678
+ else
1679
+ {
1680
+ if (*c == '.')
1681
+ {
1682
+ versionNum += current;
1683
+ // Ninja releases add beyond 4 levels, treat them as the first 4
1684
+ if (++values >= MAXVALUES)
1685
+ {
1686
+ return versionNum;
1687
+ }
1688
+ // Move over for next current value
1689
+ for (int i = 0; i < MAXDIGITS[values]; ++i)
1690
+ {
1691
+ versionNum *= (amps_uint64_t)10;
1692
+ }
1693
+ digits = 0;
1694
+ current = 0;
1695
+ }
1696
+ else
1697
+ {
1698
+ // A non-numeric, non-dot means it's a special build
1699
+ return AMPS_DEFAULT_SERVER_VERSION;
1700
+ }
1701
+ }
1702
+ }
1703
+ versionNum += current;
1704
+ // Fill in missing 0's from last value and if necessary add more for missing parts of version.
1705
+ while (++values < MAXVALUES)
1706
+ {
1707
+ for (int i = 0; i < MAXDIGITS[values]; ++i)
1708
+ {
1709
+ versionNum *= (amps_uint64_t)10;
1710
+ }
1711
+ }
1712
+ return versionNum;
1713
+ }
1714
+ private:
1715
+ std::string _versionString;
1716
+ mutable amps_uint64_t _versionNum;
1717
+ };
1718
+
1719
+
1720
+ }
1721
+
1722
+ #endif