amps-python-client 5.3.4.1__zip → 5.3.4.3__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (918) hide show
  1. amps-python-client-5.3.4.3/LICENSE +168 -0
  2. amps-python-client-5.3.4.3/PKG-INFO +112 -0
  3. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  4. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  5. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  6. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  7. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  8. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  9. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  10. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  11. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  12. amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  13. amps-python-client-5.3.4.3/docs/command-reference/doctrees/environment.pickle +0 -0
  14. amps-python-client-5.3.4.3/docs/command-reference/doctrees/index.doctree +0 -0
  15. amps-python-client-5.3.4.3/docs/command-reference/html/.buildinfo +4 -0
  16. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
  17. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
  18. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
  19. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
  20. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
  21. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
  22. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
  23. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
  24. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
  25. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
  26. amps-python-client-5.3.4.3/docs/command-reference/html/_sources/index.rst.txt +36 -0
  27. amps-python-client-5.3.4.3/docs/command-reference/html/_static/custom.css +161 -0
  28. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/ack-messages.html +95 -0
  29. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/content-messages.html +95 -0
  30. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/intro.html +95 -0
  31. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/logon.html +95 -0
  32. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/protocol-reference.html +93 -0
  33. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/publishing.html +95 -0
  34. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-delimiters.html +95 -0
  35. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-subscribe.html +95 -0
  36. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/removing.html +95 -0
  37. amps-python-client-5.3.4.3/docs/command-reference/html/chapters/utilities.html +95 -0
  38. amps-python-client-5.3.4.3/docs/command-reference/html/genindex.html +97 -0
  39. amps-python-client-5.3.4.3/docs/command-reference/html/index.html +98 -0
  40. amps-python-client-5.3.4.3/docs/command-reference/html/objects.inv +6 -0
  41. amps-python-client-5.3.4.3/docs/command-reference/html/search.html +107 -0
  42. amps-python-client-5.3.4.3/docs/command-reference/html/searchindex.js +1 -0
  43. amps-python-client-5.3.4.3/docs/html/.buildinfo +4 -0
  44. amps-python-client-5.3.4.3/docs/html/code.html +6851 -0
  45. amps-python-client-5.3.4.3/docs/html/genindex.html +1363 -0
  46. amps-python-client-5.3.4.3/docs/html/index.html +131 -0
  47. amps-python-client-5.3.4.3/docs/html/objects.inv +0 -0
  48. amps-python-client-5.3.4.3/docs/html/py-modindex.html +111 -0
  49. amps-python-client-5.3.4.3/docs/html/search.html +107 -0
  50. amps-python-client-5.3.4.3/docs/html/searchindex.js +1 -0
  51. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  52. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  53. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  54. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  55. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/deltas.doctree +0 -0
  56. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  57. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  58. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/first-program.doctree +0 -0
  59. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  60. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/installing.doctree +0 -0
  61. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/introduction.doctree +0 -0
  62. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  63. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  64. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/queues.doctree +0 -0
  65. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/sow.doctree +0 -0
  66. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  67. amps-python-client-5.3.4.3/docs/python/doctrees/chapters/utilities.doctree +0 -0
  68. amps-python-client-5.3.4.3/docs/python/doctrees/environment.pickle +0 -0
  69. amps-python-client-5.3.4.3/docs/python/doctrees/index.doctree +0 -0
  70. amps-python-client-5.3.4.3/docs/python/html/.buildinfo +4 -0
  71. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
  72. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
  73. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
  74. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
  75. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
  76. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
  77. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
  78. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
  79. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
  80. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
  81. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
  82. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
  83. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
  84. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
  85. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
  86. amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
  87. amps-python-client-5.3.4.3/docs/python/html/_static/custom.css +161 -0
  88. amps-python-client-5.3.4.3/docs/python/html/chapters/advanced-topics.html +447 -0
  89. amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-compiler-list.html +92 -0
  90. amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-feature-table.html +156 -0
  91. amps-python-client-5.3.4.3/docs/python/html/chapters/creating-commands.html +2882 -0
  92. amps-python-client-5.3.4.3/docs/python/html/chapters/deltas.html +169 -0
  93. amps-python-client-5.3.4.3/docs/python/html/chapters/error-handling.html +745 -0
  94. amps-python-client-5.3.4.3/docs/python/html/chapters/exceptions.html +266 -0
  95. amps-python-client-5.3.4.3/docs/python/html/chapters/first-program.html +526 -0
  96. amps-python-client-5.3.4.3/docs/python/html/chapters/high-availability.html +1017 -0
  97. amps-python-client-5.3.4.3/docs/python/html/chapters/installing.html +264 -0
  98. amps-python-client-5.3.4.3/docs/python/html/chapters/introduction.html +245 -0
  99. amps-python-client-5.3.4.3/docs/python/html/chapters/moving-from-python-lite.html +118 -0
  100. amps-python-client-5.3.4.3/docs/python/html/chapters/performance-tips.html +499 -0
  101. amps-python-client-5.3.4.3/docs/python/html/chapters/queues.html +352 -0
  102. amps-python-client-5.3.4.3/docs/python/html/chapters/sow.html +383 -0
  103. amps-python-client-5.3.4.3/docs/python/html/chapters/subscriptions.html +535 -0
  104. amps-python-client-5.3.4.3/docs/python/html/chapters/utilities.html +302 -0
  105. amps-python-client-5.3.4.3/docs/python/html/genindex.html +351 -0
  106. amps-python-client-5.3.4.3/docs/python/html/index.html +382 -0
  107. amps-python-client-5.3.4.3/docs/python/html/objects.inv +0 -0
  108. amps-python-client-5.3.4.3/docs/python/html/search.html +107 -0
  109. amps-python-client-5.3.4.3/docs/python/html/searchindex.js +1 -0
  110. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  111. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  112. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/environment.pickle +0 -0
  113. amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/index.doctree +0 -0
  114. amps-python-client-5.3.4.3/docs/python-quickstart/html/.buildinfo +4 -0
  115. amps-python-client-5.3.4.3/docs/python-quickstart/html/_static/custom.css +161 -0
  116. amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/crankitup.html +271 -0
  117. amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/equipment.html +105 -0
  118. amps-python-client-5.3.4.3/docs/python-quickstart/html/genindex.html +97 -0
  119. amps-python-client-5.3.4.3/docs/python-quickstart/html/index.html +381 -0
  120. amps-python-client-5.3.4.3/docs/python-quickstart/html/objects.inv +0 -0
  121. amps-python-client-5.3.4.3/docs/python-quickstart/html/search.html +107 -0
  122. amps-python-client-5.3.4.3/docs/python-quickstart/html/searchindex.js +1 -0
  123. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  124. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  125. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  126. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  127. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  128. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  129. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  130. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  131. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  132. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  133. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  134. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  135. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  136. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  137. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  138. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  139. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  140. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  141. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  142. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  143. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  144. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  145. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  146. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  147. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  148. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  149. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  150. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  151. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  152. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  153. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  154. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  155. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  156. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  157. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  158. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  159. amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  160. amps-python-client-5.3.4.3/docs/user-guide/doctrees/environment.pickle +0 -0
  161. amps-python-client-5.3.4.3/docs/user-guide/doctrees/index.doctree +0 -0
  162. amps-python-client-5.3.4.3/docs/user-guide/html/.buildinfo +4 -0
  163. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
  164. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
  165. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
  166. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
  167. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
  168. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
  169. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
  170. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
  171. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
  172. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
  173. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
  174. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
  175. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
  176. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
  177. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
  178. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
  179. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
  180. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
  181. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
  182. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
  183. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
  184. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
  185. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
  186. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
  187. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
  188. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
  189. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
  190. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
  191. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
  192. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
  193. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
  194. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
  195. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
  196. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
  197. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
  198. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
  199. amps-python-client-5.3.4.3/docs/user-guide/html/_sources/index.rst.txt +62 -0
  200. amps-python-client-5.3.4.3/docs/user-guide/html/_static/custom.css +161 -0
  201. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/acks.html +94 -0
  202. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/actions.html +94 -0
  203. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps-statistics.html +94 -0
  204. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_expressions.html +94 -0
  205. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_functions.html +94 -0
  206. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
  207. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
  208. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/conflated_topics.html +94 -0
  209. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/constructing-fields.html +94 -0
  210. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/daemon.html +94 -0
  211. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/delta.html +94 -0
  212. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/distribution.html +94 -0
  213. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/enrichment.html +94 -0
  214. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/events.html +94 -0
  215. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/file_format_versions.html +94 -0
  216. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/glossary.html +92 -0
  217. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/ha.html +94 -0
  218. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
  219. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/intro.html +94 -0
  220. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/logging.html +94 -0
  221. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/messageTypes.html +94 -0
  222. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/monitoring.html +94 -0
  223. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/oof.html +94 -0
  224. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/operation.html +94 -0
  225. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/pub_sub.html +94 -0
  226. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/queues.html +94 -0
  227. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/replication.html +94 -0
  228. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/securing.html +94 -0
  229. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow.html +94 -0
  230. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow_queries.html +94 -0
  231. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/spark.html +819 -0
  232. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/transports.html +94 -0
  233. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/troubleshooting.html +94 -0
  234. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/txlog.html +94 -0
  235. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/usecases.html +94 -0
  236. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/utilities.html +94 -0
  237. amps-python-client-5.3.4.3/docs/user-guide/html/chapters/views.html +94 -0
  238. amps-python-client-5.3.4.3/docs/user-guide/html/genindex.html +133 -0
  239. amps-python-client-5.3.4.3/docs/user-guide/html/index.html +96 -0
  240. amps-python-client-5.3.4.3/docs/user-guide/html/objects.inv +0 -0
  241. amps-python-client-5.3.4.3/docs/user-guide/html/search.html +106 -0
  242. amps-python-client-5.3.4.3/docs/user-guide/html/searchindex.js +1 -0
  243. amps-python-client-5.3.4.3/include/ampspy_bookmarkstore.hpp +63 -0
  244. amps-python-client-5.3.4.3/include/ampspy_compat.h +63 -0
  245. amps-python-client-5.3.4.3/include/ampspy_defs.hpp +181 -0
  246. amps-python-client-5.3.4.3/include/ampspy_recoverypointadapter.hpp +52 -0
  247. amps-python-client-5.3.4.3/include/ampspy_shims.hpp +113 -0
  248. amps-python-client-5.3.4.3/include/ampspy_type_object.hpp +242 -0
  249. amps-python-client-5.3.4.3/include/ampspy_types.hpp +1139 -0
  250. amps-python-client-5.3.4.3/include/ampspyver.h +30 -0
  251. amps-python-client-5.3.4.3/index.html +66 -0
  252. amps-python-client-5.3.4.3/samples/AMPSConsolePublisher.py +59 -0
  253. amps-python-client-5.3.4.3/samples/AMPSConsoleSubscriber.py +63 -0
  254. amps-python-client-5.3.4.3/samples/AMPSFIXBuilderPublisher.py +71 -0
  255. amps-python-client-5.3.4.3/samples/AMPSFIXShredderSubscriber.py +69 -0
  256. amps-python-client-5.3.4.3/samples/AMPSNVFIXBuilderPublisher.py +71 -0
  257. amps-python-client-5.3.4.3/samples/AMPSNVFIXShredderSubscriber.py +67 -0
  258. amps-python-client-5.3.4.3/samples/AMPSPublishForReplay.py +81 -0
  259. amps-python-client-5.3.4.3/samples/AMPSQueueConsumer.py +69 -0
  260. amps-python-client-5.3.4.3/samples/AMPSQueuePublisher.py +59 -0
  261. amps-python-client-5.3.4.3/samples/AMPSSOWConsolePublisher.py +67 -0
  262. amps-python-client-5.3.4.3/samples/AMPSSOWConsoleSubscriber.py +77 -0
  263. amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
  264. amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
  265. amps-python-client-5.3.4.3/samples/AMPSSubscribeForReplay.py +128 -0
  266. amps-python-client-5.3.4.3/samples/AMPSUpdateForOOF.py +123 -0
  267. amps-python-client-5.3.4.3/samples/CompositeMessagePublisher.py +84 -0
  268. amps-python-client-5.3.4.3/samples/CompositeMessageSubscriber.py +87 -0
  269. amps-python-client-5.3.4.3/samples/RandomServerChooser.py +66 -0
  270. amps-python-client-5.3.4.3/samples/sample.xml +335 -0
  271. amps-python-client-5.3.4.3/setup.py +210 -0
  272. amps-python-client-5.3.4.3/setup_amps.py +94 -0
  273. amps-python-client-5.3.4.3/src/ampspy_shims.cpp +214 -0
  274. amps-python-client-5.3.4.3/src/ampspy_type_object.cpp +495 -0
  275. amps-python-client-5.3.4.3/src/authenticator.cpp +128 -0
  276. amps-python-client-5.3.4.3/src/bookmarkstore.cpp +246 -0
  277. amps-python-client-5.3.4.3/src/client.cpp +2648 -0
  278. amps-python-client-5.3.4.3/src/client_docs.h +1210 -0
  279. amps-python-client-5.3.4.3/src/cmessagehandler.cpp +161 -0
  280. amps-python-client-5.3.4.3/src/command.cpp +164 -0
  281. amps-python-client-5.3.4.3/src/command_docs.h +274 -0
  282. amps-python-client-5.3.4.3/src/compositemessagebuilder.cpp +113 -0
  283. amps-python-client-5.3.4.3/src/compositemessageparser.cpp +151 -0
  284. amps-python-client-5.3.4.3/src/conflatingrecoverypointadapter.cpp +197 -0
  285. amps-python-client-5.3.4.3/src/cpp/include/amps/BlockPublishStore.hpp +2050 -0
  286. amps-python-client-5.3.4.3/src/cpp/include/amps/BlockStore.hpp +674 -0
  287. amps-python-client-5.3.4.3/src/cpp/include/amps/BookmarkStore.hpp +542 -0
  288. amps-python-client-5.3.4.3/src/cpp/include/amps/Buffer.hpp +214 -0
  289. amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
  290. amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
  291. amps-python-client-5.3.4.3/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
  292. amps-python-client-5.3.4.3/src/cpp/include/amps/Field.hpp +723 -0
  293. amps-python-client-5.3.4.3/src/cpp/include/amps/HAClient.hpp +370 -0
  294. amps-python-client-5.3.4.3/src/cpp/include/amps/HAClientImpl.hpp +460 -0
  295. amps-python-client-5.3.4.3/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
  296. amps-python-client-5.3.4.3/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
  297. amps-python-client-5.3.4.3/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
  298. amps-python-client-5.3.4.3/src/cpp/include/amps/MMapStoreBuffer.hpp +297 -0
  299. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
  300. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
  301. amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryStoreBuffer.hpp +247 -0
  302. amps-python-client-5.3.4.3/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
  303. amps-python-client-5.3.4.3/src/cpp/include/amps/Message.hpp +1827 -0
  304. amps-python-client-5.3.4.3/src/cpp/include/amps/MessageRouter.hpp +647 -0
  305. amps-python-client-5.3.4.3/src/cpp/include/amps/PublishStore.hpp +158 -0
  306. amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
  307. amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
  308. amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
  309. amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
  310. amps-python-client-5.3.4.3/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
  311. amps-python-client-5.3.4.3/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
  312. amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooser.hpp +156 -0
  313. amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
  314. amps-python-client-5.3.4.3/src/cpp/include/amps/amps.h +815 -0
  315. amps-python-client-5.3.4.3/src/cpp/include/amps/amps_impl.h +220 -0
  316. amps-python-client-5.3.4.3/src/cpp/include/amps/amps_ssl.h +78 -0
  317. amps-python-client-5.3.4.3/src/cpp/include/amps/ampscrc.hpp +208 -0
  318. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsplusplus.hpp +8846 -0
  319. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsuri.h +84 -0
  320. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h +41 -0
  321. amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h.in +41 -0
  322. amps-python-client-5.3.4.3/src/cpp/include/amps/constants.hpp +194 -0
  323. amps-python-client-5.3.4.3/src/cpp/include/amps/util.hpp +1722 -0
  324. amps-python-client-5.3.4.3/src/cpp/src/amps_protocol.c +693 -0
  325. amps-python-client-5.3.4.3/src/cpp/src/amps_ssl.c +565 -0
  326. amps-python-client-5.3.4.3/src/cpp/src/atfork.c +484 -0
  327. amps-python-client-5.3.4.3/src/cpp/src/client.c +498 -0
  328. amps-python-client-5.3.4.3/src/cpp/src/message.c +837 -0
  329. amps-python-client-5.3.4.3/src/cpp/src/message_generated.h +611 -0
  330. amps-python-client-5.3.4.3/src/cpp/src/tcp.c +1683 -0
  331. amps-python-client-5.3.4.3/src/cpp/src/tcps.c +2005 -0
  332. amps-python-client-5.3.4.3/src/cpp/src/transports.c +129 -0
  333. amps-python-client-5.3.4.3/src/cpp/src/unix.c +1063 -0
  334. amps-python-client-5.3.4.3/src/cpp/src/uri.c +301 -0
  335. amps-python-client-5.3.4.3/src/exponentialdelaystrategy.cpp +131 -0
  336. amps-python-client-5.3.4.3/src/failedwritehandler.cpp +116 -0
  337. amps-python-client-5.3.4.3/src/fixbuilder.cpp +146 -0
  338. amps-python-client-5.3.4.3/src/fixeddelaystrategy.cpp +115 -0
  339. amps-python-client-5.3.4.3/src/fixshredder.cpp +105 -0
  340. amps-python-client-5.3.4.3/src/fixshredder_docs.h +38 -0
  341. amps-python-client-5.3.4.3/src/haclient.cpp +691 -0
  342. amps-python-client-5.3.4.3/src/haclient_docs.h +200 -0
  343. amps-python-client-5.3.4.3/src/hybridpublishstore.cpp +137 -0
  344. amps-python-client-5.3.4.3/src/hybridpublishstore_docs.h +31 -0
  345. amps-python-client-5.3.4.3/src/memorybookmarkstore.cpp +373 -0
  346. amps-python-client-5.3.4.3/src/memorybookmarkstore_docs.h +39 -0
  347. amps-python-client-5.3.4.3/src/memorypublishstore.cpp +160 -0
  348. amps-python-client-5.3.4.3/src/memorypublishstore_docs.h +32 -0
  349. amps-python-client-5.3.4.3/src/message.cpp +765 -0
  350. amps-python-client-5.3.4.3/src/message_docs.h +306 -0
  351. amps-python-client-5.3.4.3/src/messagestream.cpp +630 -0
  352. amps-python-client-5.3.4.3/src/messagestream_docs.h +45 -0
  353. amps-python-client-5.3.4.3/src/mmapbookmarkstore.cpp +422 -0
  354. amps-python-client-5.3.4.3/src/nvfixbuilder.cpp +160 -0
  355. amps-python-client-5.3.4.3/src/nvfixbuilder_docs.h +35 -0
  356. amps-python-client-5.3.4.3/src/nvfixshredder.cpp +99 -0
  357. amps-python-client-5.3.4.3/src/nvfixshredder_docs.h +43 -0
  358. amps-python-client-5.3.4.3/src/publishstore.cpp +183 -0
  359. amps-python-client-5.3.4.3/src/raw_wrapper.cpp +765 -0
  360. amps-python-client-5.3.4.3/src/reason.cpp +71 -0
  361. amps-python-client-5.3.4.3/src/recoverypoint.cpp +135 -0
  362. amps-python-client-5.3.4.3/src/recoverypointadapter.cpp +171 -0
  363. amps-python-client-5.3.4.3/src/ringbookmarkstore.cpp +360 -0
  364. amps-python-client-5.3.4.3/src/serverchooser.cpp +245 -0
  365. amps-python-client-5.3.4.3/src/serverchooser_docs.h +41 -0
  366. amps-python-client-5.3.4.3/src/sowrecoverypointadapter.cpp +248 -0
  367. amps-python-client-5.3.4.3/src/store.cpp +62 -0
  368. amps-python-client-5.3.4.3/src/versioninfo.cpp +175 -0
  369. amps-python-client-5.3.4.1/LICENSE +0 -157
  370. amps-python-client-5.3.4.1/PKG-INFO +0 -112
  371. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  372. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  373. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  374. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  375. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  376. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  377. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  378. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  379. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  380. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  381. amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
  382. amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
  383. amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
  384. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
  385. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
  386. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
  387. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
  388. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
  389. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
  390. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
  391. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
  392. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
  393. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
  394. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
  395. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
  396. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
  397. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
  398. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
  399. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
  400. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
  401. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
  402. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
  403. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
  404. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
  405. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
  406. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
  407. amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
  408. amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
  409. amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
  410. amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
  411. amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
  412. amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
  413. amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
  414. amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
  415. amps-python-client-5.3.4.1/docs/html/index.html +0 -131
  416. amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
  417. amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
  418. amps-python-client-5.3.4.1/docs/html/search.html +0 -107
  419. amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
  420. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  421. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  422. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  423. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  424. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
  425. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  426. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  427. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
  428. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  429. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
  430. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
  431. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  432. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  433. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
  434. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
  435. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  436. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
  437. amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
  438. amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
  439. amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
  440. amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
  441. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
  442. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
  443. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
  444. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
  445. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
  446. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
  447. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
  448. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
  449. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
  450. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
  451. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
  452. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
  453. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
  454. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
  455. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
  456. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
  457. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
  458. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
  459. amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
  460. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
  461. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
  462. amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
  463. amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
  464. amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
  465. amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
  466. amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
  467. amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
  468. amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
  469. amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
  470. amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
  471. amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
  472. amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
  473. amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
  474. amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
  475. amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
  476. amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
  477. amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
  478. amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
  479. amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
  480. amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
  481. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  482. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  483. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
  484. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
  485. amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
  486. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
  487. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
  488. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
  489. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
  490. amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
  491. amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
  492. amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
  493. amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
  494. amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
  495. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  496. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  497. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  498. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  499. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  500. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  501. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  502. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  503. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  504. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  505. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  506. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  507. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  508. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  509. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  510. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  511. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  512. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  513. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  514. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  515. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  516. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  517. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  518. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  519. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  520. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  521. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  522. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  523. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  524. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  525. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  526. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  527. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  528. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  529. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  530. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  531. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  532. amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
  533. amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
  534. amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
  535. amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
  536. amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
  537. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
  538. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
  539. amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
  540. amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
  541. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
  542. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
  543. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
  544. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
  545. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
  546. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
  547. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
  548. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
  549. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
  550. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
  551. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
  552. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
  553. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
  554. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
  555. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
  556. amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
  557. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
  558. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
  559. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
  560. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
  561. amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
  562. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
  563. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
  564. amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
  565. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
  566. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
  567. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
  568. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
  569. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
  570. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
  571. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
  572. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
  573. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
  574. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
  575. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
  576. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
  577. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
  578. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
  579. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
  580. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
  581. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
  582. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
  583. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
  584. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
  585. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
  586. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
  587. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
  588. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
  589. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
  590. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
  591. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
  592. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
  593. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
  594. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
  595. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
  596. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
  597. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
  598. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
  599. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
  600. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
  601. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
  602. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
  603. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
  604. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
  605. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
  606. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
  607. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
  608. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
  609. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
  610. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
  611. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
  612. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
  613. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
  614. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
  615. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
  616. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
  617. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
  618. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
  619. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
  620. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
  621. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
  622. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
  623. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
  624. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
  625. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
  626. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
  627. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
  628. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
  629. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
  630. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
  631. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
  632. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
  633. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
  634. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
  635. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
  636. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
  637. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
  638. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
  639. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
  640. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
  641. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
  642. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
  643. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
  644. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
  645. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
  646. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
  647. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
  648. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
  649. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
  650. amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
  651. amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
  652. amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
  653. amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
  654. amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
  655. amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
  656. amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
  657. amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
  658. amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
  659. amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
  660. amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
  661. amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
  662. amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
  663. amps-python-client-5.3.4.1/index.html +0 -66
  664. amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
  665. amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
  666. amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
  667. amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
  668. amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
  669. amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
  670. amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
  671. amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
  672. amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
  673. amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
  674. amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
  675. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
  676. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
  677. amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
  678. amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
  679. amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
  680. amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
  681. amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
  682. amps-python-client-5.3.4.1/samples/sample.xml +0 -335
  683. amps-python-client-5.3.4.1/setup.py +0 -209
  684. amps-python-client-5.3.4.1/setup_amps.py +0 -94
  685. amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
  686. amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
  687. amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
  688. amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
  689. amps-python-client-5.3.4.1/src/client.cpp +0 -2430
  690. amps-python-client-5.3.4.1/src/client_docs.h +0 -956
  691. amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
  692. amps-python-client-5.3.4.1/src/command.cpp +0 -164
  693. amps-python-client-5.3.4.1/src/command_docs.h +0 -194
  694. amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
  695. amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
  696. amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
  697. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
  698. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
  699. amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
  700. amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
  701. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
  702. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
  703. amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
  704. amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
  705. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
  706. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
  707. amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
  708. amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
  709. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
  710. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
  711. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
  712. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
  713. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
  714. amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
  715. amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
  716. amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
  717. amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
  718. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
  719. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
  720. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
  721. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
  722. amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
  723. amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
  724. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
  725. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
  726. amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
  727. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
  728. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
  729. amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
  730. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
  731. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
  732. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
  733. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
  734. amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
  735. amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
  736. amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
  737. amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
  738. amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
  739. amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
  740. amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
  741. amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
  742. amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
  743. amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
  744. amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
  745. amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
  746. amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
  747. amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
  748. amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
  749. amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
  750. amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
  751. amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
  752. amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
  753. amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
  754. amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
  755. amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
  756. amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
  757. amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
  758. amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
  759. amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
  760. amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
  761. amps-python-client-5.3.4.1/src/message.cpp +0 -765
  762. amps-python-client-5.3.4.1/src/message_docs.h +0 -306
  763. amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
  764. amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
  765. amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
  766. amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
  767. amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
  768. amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
  769. amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
  770. amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
  771. amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
  772. amps-python-client-5.3.4.1/src/reason.cpp +0 -71
  773. amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
  774. amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
  775. amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
  776. amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
  777. amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
  778. amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
  779. amps-python-client-5.3.4.1/src/store.cpp +0 -62
  780. amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
  781. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/HISTORY +0 -0
  782. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/README.md +0 -0
  783. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  784. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/alabaster.css +0 -0
  785. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/basic.css +0 -0
  786. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-bright.png +0 -0
  787. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-close.png +0 -0
  788. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment.png +0 -0
  789. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/doctools.js +0 -0
  790. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down-pressed.png +0 -0
  791. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down.png +0 -0
  792. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/file.png +0 -0
  793. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.png +0 -0
  794. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  795. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  796. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/jquery.js +0 -0
  797. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/minus.png +0 -0
  798. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/plus.png +0 -0
  799. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/pygments.css +0 -0
  800. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/searchtools.js +0 -0
  801. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  802. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/underscore.js +0 -0
  803. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up-pressed.png +0 -0
  804. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up.png +0 -0
  805. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/websupport.js +0 -0
  806. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/code.rst.txt +0 -0
  807. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/index.rst.txt +0 -0
  808. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/ajax-loader.gif +0 -0
  809. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/basic.css +0 -0
  810. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/classic.css +0 -0
  811. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-bright.png +0 -0
  812. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-close.png +0 -0
  813. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment.png +0 -0
  814. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/default.css +0 -0
  815. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/doctools.js +0 -0
  816. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down-pressed.png +0 -0
  817. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down.png +0 -0
  818. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/file.png +0 -0
  819. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery-3.1.0.js +0 -0
  820. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery.js +0 -0
  821. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/minus.png +0 -0
  822. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/plus.png +0 -0
  823. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/pygments.css +0 -0
  824. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/searchtools.js +0 -0
  825. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/sidebar.js +0 -0
  826. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore-1.3.1.js +0 -0
  827. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore.js +0 -0
  828. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up-pressed.png +0 -0
  829. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up.png +0 -0
  830. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/websupport.js +0 -0
  831. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.png +0 -0
  832. {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.3/docs/python}/html/_images/caution.svg +0 -0
  833. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/connection_string.svg +0 -0
  834. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.png +0 -0
  835. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.svg +0 -0
  836. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.png +0 -0
  837. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.svg +0 -0
  838. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/warning.png +0 -0
  839. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  840. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_sources/index.rst.txt +0 -0
  841. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/ajax-loader.gif +0 -0
  842. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/alabaster.css +0 -0
  843. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/basic.css +0 -0
  844. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-bright.png +0 -0
  845. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-close.png +0 -0
  846. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment.png +0 -0
  847. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/doctools.js +0 -0
  848. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down-pressed.png +0 -0
  849. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down.png +0 -0
  850. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/file.png +0 -0
  851. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.png +0 -0
  852. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.svg +0 -0
  853. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  854. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery.js +0 -0
  855. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/minus.png +0 -0
  856. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/plus.png +0 -0
  857. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/pygments.css +0 -0
  858. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/searchtools.js +0 -0
  859. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  860. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore.js +0 -0
  861. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up-pressed.png +0 -0
  862. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up.png +0 -0
  863. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/websupport.js +0 -0
  864. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  865. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  866. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  867. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  868. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  869. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/basic.css +0 -0
  870. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  871. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  872. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment.png +0 -0
  873. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/doctools.js +0 -0
  874. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  875. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down.png +0 -0
  876. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/file.png +0 -0
  877. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  878. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  879. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  880. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/jquery.js +0 -0
  881. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/minus.png +0 -0
  882. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/plus.png +0 -0
  883. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/pygments.css +0 -0
  884. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  885. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  886. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/underscore.js +0 -0
  887. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  888. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up.png +0 -0
  889. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/websupport.js +0 -0
  890. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/custom.css +0 -0
  891. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/flag_logo.svg +0 -0
  892. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  893. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  894. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/alabaster.css +0 -0
  895. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/basic.css +0 -0
  896. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-bright.png +0 -0
  897. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-close.png +0 -0
  898. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment.png +0 -0
  899. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/doctools.js +0 -0
  900. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down-pressed.png +0 -0
  901. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down.png +0 -0
  902. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/file.png +0 -0
  903. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.png +0 -0
  904. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  905. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  906. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/jquery.js +0 -0
  907. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/minus.png +0 -0
  908. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/plus.png +0 -0
  909. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/pygments.css +0 -0
  910. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/searchtools.js +0 -0
  911. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  912. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/underscore.js +0 -0
  913. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up-pressed.png +0 -0
  914. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up.png +0 -0
  915. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/websupport.js +0 -0
  916. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_generated.h +0 -0
  917. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol_generated.h +0 -0
  918. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/makefile +0 -0
@@ -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
+ 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
+ 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
+ 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_.empty() || !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