amps-python-client 5.3.4.1__zip → 5.3.4.2__zip

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