aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_sources/utils/timeutils.txt3
-rw-r--r--api.html1
-rw-r--r--genindex.html80
-rw-r--r--jobmanager.html23
-rw-r--r--objects.invbin745 -> 828 bytes
-rw-r--r--py-modindex.html5
-rw-r--r--router.html22
-rw-r--r--searchindex.js2
-rw-r--r--utils.html2
-rw-r--r--utils/classes.html65
-rw-r--r--utils/timeutils.html232
11 files changed, 402 insertions, 33 deletions
diff --git a/_sources/utils/timeutils.txt b/_sources/utils/timeutils.txt
new file mode 100644
index 0000000..952c896
--- /dev/null
+++ b/_sources/utils/timeutils.txt
@@ -0,0 +1,3 @@
1.. automodule:: eventmq.utils.timeutils
2 :members:
3 :special-members:
diff --git a/api.html b/api.html
index b51e9bc..efffff6 100644
--- a/api.html
+++ b/api.html
@@ -150,6 +150,7 @@
150<li class="toctree-l1"><a class="reference internal" href="utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul> 150<li class="toctree-l1"><a class="reference internal" href="utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul>
151<li class="toctree-l2"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li> 151<li class="toctree-l2"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li>
152<li class="toctree-l2"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li> 152<li class="toctree-l2"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li>
153<li class="toctree-l2"><a class="reference internal" href="utils/timeutils.html"><code class="docutils literal"><span class="pre">time</span></code> &#8211; Time Utilites</a></li>
153</ul> 154</ul>
154</li> 155</li>
155</ul> 156</ul>
diff --git a/genindex.html b/genindex.html
index 8498497..5085fff 100644
--- a/genindex.html
+++ b/genindex.html
@@ -133,6 +133,7 @@
133 | <a href="#C"><strong>C</strong></a> 133 | <a href="#C"><strong>C</strong></a>
134 | <a href="#E"><strong>E</strong></a> 134 | <a href="#E"><strong>E</strong></a>
135 | <a href="#G"><strong>G</strong></a> 135 | <a href="#G"><strong>G</strong></a>
136 | <a href="#H"><strong>H</strong></a>
136 | <a href="#I"><strong>I</strong></a> 137 | <a href="#I"><strong>I</strong></a>
137 | <a href="#J"><strong>J</strong></a> 138 | <a href="#J"><strong>J</strong></a>
138 | <a href="#L"><strong>L</strong></a> 139 | <a href="#L"><strong>L</strong></a>
@@ -142,6 +143,7 @@
142 | <a href="#P"><strong>P</strong></a> 143 | <a href="#P"><strong>P</strong></a>
143 | <a href="#R"><strong>R</strong></a> 144 | <a href="#R"><strong>R</strong></a>
144 | <a href="#S"><strong>S</strong></a> 145 | <a href="#S"><strong>S</strong></a>
146 | <a href="#T"><strong>T</strong></a>
145 | <a href="#U"><strong>U</strong></a> 147 | <a href="#U"><strong>U</strong></a>
146 | <a href="#Z"><strong>Z</strong></a> 148 | <a href="#Z"><strong>Z</strong></a>
147 149
@@ -166,19 +168,19 @@
166 <dt><a href="sender.html#eventmq.sender.Sender.__init__">(eventmq.sender.Sender method)</a> 168 <dt><a href="sender.html#eventmq.sender.Sender.__init__">(eventmq.sender.Sender method)</a>
167 </dt> 169 </dt>
168 170
171
172 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__init__">(eventmq.utils.classes.HeartbeatMixin method)</a>
173 </dt>
174
169 </dl></dd> 175 </dl></dd>
170 </dl></td> 176 </dl></td>
171 <td style="width: 33%" valign="top"><dl> 177 <td style="width: 33%" valign="top"><dl>
172 178
173 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.__weakref__">__weakref__ (eventmq.jobmanager.JobManager attribute)</a> 179 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__weakref__">__weakref__ (eventmq.utils.classes.HeartbeatMixin attribute)</a>
174 </dt> 180 </dt>
175 181
176 <dd><dl> 182 <dd><dl>
177 183
178 <dt><a href="router.html#eventmq.router.Router.__weakref__">(eventmq.router.Router attribute)</a>
179 </dt>
180
181
182 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.__weakref__">(eventmq.utils.classes.ZMQReceiveMixin attribute)</a> 184 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.__weakref__">(eventmq.utils.classes.ZMQReceiveMixin attribute)</a>
183 </dt> 185 </dt>
184 186
@@ -229,12 +231,12 @@
229 <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a> 231 <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a>
230 </dt> 232 </dt>
231 233
232 </dl></td>
233 <td style="width: 33%" valign="top"><dl>
234 234
235 <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a> 235 <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a>
236 </dt> 236 </dt>
237 237
238 </dl></td>
239 <td style="width: 33%" valign="top"><dl>
238 240
239 <dt><a href="utils.html#module-eventmq.utils">eventmq.utils (module)</a> 241 <dt><a href="utils.html#module-eventmq.utils">eventmq.utils (module)</a>
240 </dt> 242 </dt>
@@ -248,6 +250,10 @@
248 </dt> 250 </dt>
249 251
250 252
253 <dt><a href="utils/timeutils.html#module-eventmq.utils.timeutils">eventmq.utils.timeutils (module)</a>
254 </dt>
255
256
251 <dt><a href="exceptions.html#eventmq.exceptions.EventMQError">EventMQError</a> 257 <dt><a href="exceptions.html#eventmq.exceptions.EventMQError">EventMQError</a>
252 </dt> 258 </dt>
253 259
@@ -264,6 +270,16 @@
264 </dl></td> 270 </dl></td>
265</tr></table> 271</tr></table>
266 272
273<h2 id="H">H</h2>
274<table style="width: 100%" class="indextable genindextable"><tr>
275 <td style="width: 33%" valign="top"><dl>
276
277 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin">HeartbeatMixin (class in eventmq.utils.classes)</a>
278 </dt>
279
280 </dl></td>
281</tr></table>
282
267<h2 id="I">I</h2> 283<h2 id="I">I</h2>
268<table style="width: 100%" class="indextable genindextable"><tr> 284<table style="width: 100%" class="indextable genindextable"><tr>
269 <td style="width: 33%" valign="top"><dl> 285 <td style="width: 33%" valign="top"><dl>
@@ -272,6 +288,12 @@
272 </dt> 288 </dt>
273 289
274 </dl></td> 290 </dl></td>
291 <td style="width: 33%" valign="top"><dl>
292
293 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.is_dead">is_dead() (eventmq.utils.classes.HeartbeatMixin method)</a>
294 </dt>
295
296 </dl></td>
275</tr></table> 297</tr></table>
276 298
277<h2 id="J">J</h2> 299<h2 id="J">J</h2>
@@ -308,6 +330,12 @@
308 </dt> 330 </dt>
309 331
310 </dl></td> 332 </dl></td>
333 <td style="width: 33%" valign="top"><dl>
334
335 <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.monotonic">monotonic() (in module eventmq.utils.timeutils)</a>
336 </dt>
337
338 </dl></td>
311</tr></table> 339</tr></table>
312 340
313<h2 id="N">N</h2> 341<h2 id="N">N</h2>
@@ -334,6 +362,16 @@
334 </dt> 362 </dt>
335 363
336 364
365 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.on_heartbeat">on_heartbeat() (eventmq.jobmanager.JobManager method)</a>
366 </dt>
367
368 <dd><dl>
369
370 <dt><a href="router.html#eventmq.router.Router.on_heartbeat">(eventmq.router.Router method)</a>
371 </dt>
372
373 </dl></dd>
374
337 <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a> 375 <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a>
338 </dt> 376 </dt>
339 377
@@ -418,7 +456,11 @@
418 </dt> 456 </dt>
419 457
420 458
421 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.restart">restart() (eventmq.jobmanager.JobManager method)</a> 459 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.reset">reset() (eventmq.jobmanager.JobManager method)</a>
460 </dt>
461
462
463 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.reset_heartbeat_counters">reset_heartbeat_counters() (eventmq.utils.classes.HeartbeatMixin method)</a>
422 </dt> 464 </dt>
423 465
424 466
@@ -448,9 +490,15 @@
448 </dt> 490 </dt>
449 491
450 492
451 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_heartbeat">send_heartbeat() (eventmq.jobmanager.JobManager method)</a> 493 <dt><a href="router.html#eventmq.router.Router.send_heartbeat">send_heartbeat() (eventmq.router.Router method)</a>
452 </dt> 494 </dt>
453 495
496 <dd><dl>
497
498 <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.send_heartbeat">(eventmq.utils.classes.HeartbeatMixin method)</a>
499 </dt>
500
501 </dl></dd>
454 </dl></td> 502 </dl></td>
455 <td style="width: 33%" valign="top"><dl> 503 <td style="width: 33%" valign="top"><dl>
456 504
@@ -462,6 +510,10 @@
462 </dt> 510 </dt>
463 511
464 512
513 <dt><a href="router.html#eventmq.router.Router.send_workers_heartbeats">send_workers_heartbeats() (eventmq.router.Router method)</a>
514 </dt>
515
516
465 <dt><a href="sender.html#eventmq.sender.Sender">Sender (class in eventmq.sender)</a> 517 <dt><a href="sender.html#eventmq.sender.Sender">Sender (class in eventmq.sender)</a>
466 </dt> 518 </dt>
467 519
@@ -478,6 +530,16 @@
478 </dl></td> 530 </dl></td>
479</tr></table> 531</tr></table>
480 532
533<h2 id="T">T</h2>
534<table style="width: 100%" class="indextable genindextable"><tr>
535 <td style="width: 33%" valign="top"><dl>
536
537 <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.timestamp">timestamp() (in module eventmq.utils.timeutils)</a>
538 </dt>
539
540 </dl></td>
541</tr></table>
542
481<h2 id="U">U</h2> 543<h2 id="U">U</h2>
482<table style="width: 100%" class="indextable genindextable"><tr> 544<table style="width: 100%" class="indextable genindextable"><tr>
483 <td style="width: 33%" valign="top"><dl> 545 <td style="width: 33%" valign="top"><dl>
diff --git a/jobmanager.html b/jobmanager.html
index 3733755..d5982e8 100644
--- a/jobmanager.html
+++ b/jobmanager.html
@@ -167,12 +167,6 @@ generated.</td>
167</table> 167</table>
168</dd></dl> 168</dd></dl>
169 169
170<dl class="attribute">
171<dt id="eventmq.jobmanager.JobManager.__weakref__">
172<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.jobmanager.JobManager.__weakref__" title="Permalink to this definition">¶</a></dt>
173<dd><p>list of weak references to the object (if defined)</p>
174</dd></dl>
175
176<dl class="method"> 170<dl class="method">
177<dt id="eventmq.jobmanager.JobManager.on_ack"> 171<dt id="eventmq.jobmanager.JobManager.on_ack">
178<code class="descname">on_ack</code><span class="sig-paren">(</span><em>msgid</em>, <em>ackd_msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_ack" title="Permalink to this definition">¶</a></dt> 172<code class="descname">on_ack</code><span class="sig-paren">(</span><em>msgid</em>, <em>ackd_msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_ack" title="Permalink to this definition">¶</a></dt>
@@ -180,6 +174,11 @@ generated.</td>
180</dd></dl> 174</dd></dl>
181 175
182<dl class="method"> 176<dl class="method">
177<dt id="eventmq.jobmanager.JobManager.on_heartbeat">
178<code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>msgid</em>, <em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_heartbeat" title="Permalink to this definition">¶</a></dt>
179<dd></dd></dl>
180
181<dl class="method">
183<dt id="eventmq.jobmanager.JobManager.process_message"> 182<dt id="eventmq.jobmanager.JobManager.process_message">
184<code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.process_message" title="Permalink to this definition">¶</a></dt> 183<code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.process_message" title="Permalink to this definition">¶</a></dt>
185<dd><p>Processes a message</p> 184<dd><p>Processes a message</p>
@@ -195,15 +194,9 @@ Processing takes form of calling an <cite>on_COMMAND</cite> method.</td>
195</dd></dl> 194</dd></dl>
196 195
197<dl class="method"> 196<dl class="method">
198<dt id="eventmq.jobmanager.JobManager.restart"> 197<dt id="eventmq.jobmanager.JobManager.reset">
199<code class="descname">restart</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.restart" title="Permalink to this definition">¶</a></dt> 198<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.reset" title="Permalink to this definition">¶</a></dt>
200<dd><p>Restarts the current connection by closing and reopening the socket</p> 199<dd><p>Resets the current connection by closing and reopening the socket</p>
201</dd></dl>
202
203<dl class="method">
204<dt id="eventmq.jobmanager.JobManager.send_heartbeat">
205<code class="descname">send_heartbeat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.send_heartbeat" title="Permalink to this definition">¶</a></dt>
206<dd><p>Send a HEARTBEAT command to the connected broker</p>
207</dd></dl> 200</dd></dl>
208 201
209<dl class="method"> 202<dl class="method">
diff --git a/objects.inv b/objects.inv
index 8d67088..cdb69ba 100644
--- a/objects.inv
+++ b/objects.inv
Binary files differ
diff --git a/py-modindex.html b/py-modindex.html
index 7b89220..5d49c93 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -189,6 +189,11 @@
189 <td>&nbsp;&nbsp;&nbsp; 189 <td>&nbsp;&nbsp;&nbsp;
190 <a href="utils/messages.html#module-eventmq.utils.messages"><code class="xref">eventmq.utils.messages</code></a></td><td> 190 <a href="utils/messages.html#module-eventmq.utils.messages"><code class="xref">eventmq.utils.messages</code></a></td><td>
191 <em></em></td></tr> 191 <em></em></td></tr>
192 <tr class="cg-1">
193 <td></td>
194 <td>&nbsp;&nbsp;&nbsp;
195 <a href="utils/timeutils.html#module-eventmq.utils.timeutils"><code class="xref">eventmq.utils.timeutils</code></a></td><td>
196 <em></em></td></tr>
192 </table> 197 </table>
193 198
194 199
diff --git a/router.html b/router.html
index 930bf38..8c8c96b 100644
--- a/router.html
+++ b/router.html
@@ -148,11 +148,10 @@
148<em class="property">class </em><code class="descclassname">eventmq.router.</code><code class="descname">Router</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router" title="Permalink to this definition">¶</a></dt> 148<em class="property">class </em><code class="descclassname">eventmq.router.</code><code class="descname">Router</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router" title="Permalink to this definition">¶</a></dt>
149<dd><p>A simple router of messages</p> 149<dd><p>A simple router of messages</p>
150<p>This router uses tornado&#8217;s eventloop.</p> 150<p>This router uses tornado&#8217;s eventloop.</p>
151<dl class="attribute"> 151<dl class="method">
152<dt id="eventmq.router.Router.__weakref__"> 152<dt id="eventmq.router.Router.on_heartbeat">
153<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.router.Router.__weakref__" title="Permalink to this definition">¶</a></dt> 153<code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_heartbeat" title="Permalink to this definition">¶</a></dt>
154<dd><p>list of weak references to the object (if defined)</p> 154<dd></dd></dl>
155</dd></dl>
156 155
157<dl class="method"> 156<dl class="method">
158<dt id="eventmq.router.Router.on_inform"> 157<dt id="eventmq.router.Router.on_inform">
@@ -187,6 +186,19 @@ warning is created.</p>
187</dd></dl> 186</dd></dl>
188 187
189<dl class="method"> 188<dl class="method">
189<dt id="eventmq.router.Router.send_heartbeat">
190<code class="descname">send_heartbeat</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_heartbeat" title="Permalink to this definition">¶</a></dt>
191<dd><p>Custom send heartbeat method to take into account the recipient that is
192needed when building messages</p>
193</dd></dl>
194
195<dl class="method">
196<dt id="eventmq.router.Router.send_workers_heartbeats">
197<code class="descname">send_workers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_workers_heartbeats" title="Permalink to this definition">¶</a></dt>
198<dd><p>Send heartbeats to the registered workers.</p>
199</dd></dl>
200
201<dl class="method">
190<dt id="eventmq.router.Router.start"> 202<dt id="eventmq.router.Router.start">
191<code class="descname">start</code><span class="sig-paren">(</span><em>frontend_addr='tcp://127.0.0.1:47290'</em>, <em>backend_addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.start" title="Permalink to this definition">¶</a></dt> 203<code class="descname">start</code><span class="sig-paren">(</span><em>frontend_addr='tcp://127.0.0.1:47290'</em>, <em>backend_addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.start" title="Permalink to this definition">¶</a></dt>
192<dd><p>Begin listening for connections on the provided connection strings</p> 204<dd><p>Begin listening for connections on the provided connection strings</p>
diff --git a/searchindex.js b/searchindex.js
index aa3a097..5b489bc 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
Search.setIndex({envversion:46,filenames:["api","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","utils","utils/classes","utils/messages"],objects:{"eventmq.exceptions":{EventMQError:[2,5,1,""],InvalidMessageError:[2,5,1,""],MessageError:[2,5,1,""]},"eventmq.jobmanager":{JobManager:[4,4,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[4,2,1,""],"__weakref__":[4,1,1,""],on_ack:[4,2,1,""],process_message:[4,2,1,""],restart:[4,2,1,""],send_heartbeat:[4,2,1,""],send_inform:[4,2,1,""],start:[4,2,1,""]},"eventmq.poller":{Poller:[5,4,1,""]},"eventmq.poller.Poller":{"__init__":[5,2,1,""],poll:[5,2,1,""],register:[5,2,1,""],unregister:[5,2,1,""]},"eventmq.receiver":{Receiver:[7,4,1,""]},"eventmq.receiver.Receiver":{"__init__":[7,2,1,""],connect:[7,2,1,""],listen:[7,2,1,""],name:[7,1,1,""],ready:[7,1,1,""],zcontext:[7,1,1,""],zsocket:[7,1,1,""]},"eventmq.router":{Router:[8,4,1,""]},"eventmq.router.Router":{"__weakref__":[8,1,1,""],on_inform:[8,2,1,""],on_receive_reply:[8,2,1,""],on_receive_request:[8,2,1,""],send_ack:[8,2,1,""],start:[8,2,1,""]},"eventmq.sender":{Sender:[9,4,1,""]},"eventmq.sender.Sender":{"__init__":[9,2,1,""],connect:[9,2,1,""],listen:[9,2,1,""],name:[9,1,1,""],ready:[9,1,1,""],rebuild:[9,2,1,""],zcontext:[9,1,1,""],zsocket:[9,1,1,""]},"eventmq.utils":{classes:[11,0,0,"-"],messages:[12,0,0,"-"],random_characters:[10,3,1,""]},"eventmq.utils.classes":{ZMQReceiveMixin:[11,4,1,""],ZMQSendMixin:[11,4,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[11,1,1,""],recv:[11,2,1,""],recv_multipart:[11,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[11,1,1,""],send:[11,2,1,""],send_multipart:[11,2,1,""]},"eventmq.utils.messages":{generate_msgid:[12,3,1,""],parse_message:[12,3,1,""],parse_router_message:[12,3,1,""],send_emqp_message:[12,3,1,""],send_emqp_router_message:[12,3,1,""]},eventmq:{exceptions:[2,0,0,"-"],jobmanager:[4,0,0,"-"],poller:[5,0,0,"-"],receiver:[7,0,0,"-"],router:[8,0,0,"-"],sender:[9,0,0,"-"],utils:[10,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","class","Python class"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:function","4":"py:class","5":"py:exception"},terms:{"0mq":[6,11],"__init__":[4,5,7,9],"__weakref__":[4,8,11],"_empty_":6,"_headers_":6,"_issu":[],"_msg_":6,"_msgid_":6,"_queue_name_":6,"_recipient_id":11,"_sourc":[],"_topic_name_":6,"_unix_ts_":6,"abstract":6,"case":6,"class":[],"default":[4,6,7,9],"function":[7,8],"import":1,"int":5,"long":5,"new":8,"public":6,"return":[1,5,7,9,10,12],"true":[6,7,9],"while":6,about:[4,6],absolut:1,accept:6,account:12,ack:[6,8],ackd_msgid:4,acknowledg:6,act:6,actual:4,addr:[4,7,9],address:[],after:6,agre:6,all:[2,4,6,7,9],allow:6,alpha:6,and_data:12,ani:6,api:[],appear:5,applic:6,architectur:[],aren:[],arg:[4,5,7,8,9,12],around:[],attr:5,automat:11,avail:[7,9],awaiting_ack:4,back:6,backend_addr:8,base:[2,5],basi:6,befor:[5,6],begin:[4,8],belong:6,below:6,between:6,bool:[7,9],both:[5,6],broker:[4,6],build:9,built:6,bulid:7,call:[4,5,7,8],callabl:7,can:[6,12],chang:6,charact:10,check:[7,9],client:[],close:4,code:[1,3],com:[],come:8,comma:6,command:[4,6,12],complet:6,compon:6,connction:[7,9],connect:[4,6,7,8,9,12],consist:6,contain:[6,10],content:[],context:[7,9],convers:6,convienc:[5,11],count:6,creat:[7,8,9,10],csv:6,current:[4,7,9],data:12,deal:10,dealer:9,debug:6,def:8,defeat:6,defin:[4,6,7,8,9,11],deliv:6,describ:6,descript:6,detail:6,detect:6,determin:6,devic:[5,11,12],dialog:6,dict:5,dictionari:[5,6],differ:1,directli:[5,11],disconnect:6,distribut:6,doesn:5,dure:9,either:6,els:[1,6],empti:6,emqp:[],encount:2,end:11,enderlab:[],ensur:[4,6],even:6,event:5,eventloop:[4,7,8,9],eventmqerror:2,except:[],execut:6,explicitli:11,expos:4,extra:6,fail:6,fair:6,fals:[4,6,7,9],few:1,field:6,finish:6,first:6,fit:6,flag:5,follow:6,form:4,format:[6,12],found:8,foundat:6,frame:[],free:6,from:[2,4,5,6,8],frontend_addr:8,gener:[4,5,6,7,9,12],generate_msgid:12,github:[],gmtime:[],gnu:6,goal:[],good:11,guarante:6,guarente:[],hand:10,handl:[6,8],happen:[5,9],have:12,header:[],heartbeat:[],heavi:6,here:6,hope:6,how:5,html:6,http:6,ident:[6,11],ietf:6,implement:[6,11],impli:6,includ:6,incom:[],index:3,inform:[4,6,8],inherit:2,insert:[6,11],instal:1,instanc:4,interpret:6,interv:6,invalidmessageerror:2,isn:8,issu:[1,3,6],iter:5,job:[],jobmanag:[],kei:[5,6],kwarg:[4,5,7,8,9],languag:[],later:6,least:6,leav:6,length:10,let:6,licens:[],like:[10,11],list:[4,8,11],listen:[4,7,8,9],look:11,loop:5,mai:[6,11],main:4,make:10,malform:2,manag:[],mani:[6,9],manual:6,master:6,merchant:6,messag:11,message_bodi:12,message_id:12,messageerror:2,meta:12,method:[4,5,7,8,11],mode:7,modifi:6,modul:[3,10],more:[6,10],msg:[4,6,8,12],msg_id:[],msgid:[4,8],multipart:[6,11],must:[6,11],name:[4,6,7,8,9],need:9,next:5,none:[7,9,11,12],note:[4,7,9],object:[4,5,8,11],on_ack:4,on_command:[4,8],on_inform:8,on_receive_repli:8,on_receive_request:8,on_recv:7,onc:6,onli:[7,9],onlin:8,option:[4,6,7,9,12],org:6,orient:6,origin:6,other:6,otherwis:[4,7,9],own:11,page:3,param:[],paramet:[4,5,7,8,9,11,12],pars:[4,12],parse_messag:12,parse_router_messag:12,part:[6,12],particular:[6,9],pass:[6,7,8],peer:6,pictur:6,poll:[5,7,9],poller:[],pollin:5,pollout:5,pool:6,portion:4,possibl:1,practic:11,prefix:12,prepend:6,pretti:6,problem:2,process:[4,6,9],process_messag:4,prop:[],properti:[7,9],protocol:[],protocol_vers:11,provid:8,pub:6,publish:6,purpos:6,queue:[6,8],rais:[2,7,9,12],random:[10,12],random_charact:10,raw:11,raw_messag:[],readi:[6,7,9],rebuild:9,receiv:[],recent:6,reciev:7,recip:[],recipi:[8,11,12],recipient_id:12,recommend:6,reconnect:9,recv:11,recv_multipart:11,redistribut:6,refer:[4,8,11],regist:5,regular:6,rel:1,reliabl:6,remain:5,remov:6,reopen:4,rep:7,repli:[6,12],req:9,request:[],requir:[6,7],requri:6,resourc:[4,6],respond:6,respons:[4,7,8,9],restart:[4,6,9],retri:6,rfc2119:6,rfc:6,robin:6,roughli:9,round:6,rout:[6,8],router:[],run:4,same:9,search:3,see:[5,6],self:9,send:[4,6,8,9,11,12],send_ack:8,send_emqp_messag:12,send_emqp_router_messag:12,send_heartbeat:4,send_inform:4,send_messag:[],send_multipart:11,send_raw:[],sender:[],sender_id:12,sent:[6,11],seper:6,serv:6,server:[4,6],servic:6,set:[4,5,6,7,9],shall:6,should:[2,5,6,7,9],shown:6,simpl:[8,10],singl:6,skip:[7,9,11],skip_zmqstream:[7,9],socket:[4,5,6,7,8,9,11,12],softwar:6,some:[10,11,12],someon:6,someth:[9,11],somewher:1,sourc:[1,3],spawn:4,specif:[],specifi:[6,10,11],start:[4,7,8,9],statu:6,stop:6,str:[4,7,8,9,11,12],string:[4,6,7,8,9,12],structur:2,sub:6,subclass:2,subject:6,subset:6,success:6,system:1,take:[4,9,12],task:4,tcp:[4,8],term:6,thei:[],them:7,thi:[2,4,5,6,7,8,9,10,11],thing:[4,9,10,12],through:6,time:6,timeout:5,timestamp:6,timezon:[],tip:1,tool:6,topic:[],topolog:[],tornado:[4,8],trace:6,tupl:[5,11,12],type:[6,7,9],typecast:5,typeerror:7,undefin:5,under:6,uniqu:[4,6],univers:[],unix:6,unless:[4,7,9],unregist:5,unus:7,upon:6,usual:8,uuid:[4,7,9],valid:6,valu:[5,6,12],version:[1,6,11],via:[7,9],wait:5,warn:8,warranti:6,weak:[4,8,11],web:6,well:6,when:[1,2,6,7,8,9,11],where:6,which:6,wish:12,without:[6,9],word:6,work:[1,11],worker:[],worri:6,wrap:[7,9],you:[1,6,9,11,12],your:[6,11],zcontext:[7,9],zeromq:6,zmq:[5,6,7,9,11,12],zmqreceivemixin:11,zmqsendmixin:11,zmqstream:[7,9],zsocket:[7,9]},titles:["API Documentation","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities"],titleterms:{"class":11,address:6,api:0,architectur:6,client:6,contribut:1,document:[0,3],emqp:6,eventmq:[1,3,6],except:2,frame:6,global:6,goal:6,header:6,heartbeat:6,indic:3,job:4,jobmanag:4,languag:6,licens:6,manag:4,messag:12,poller:5,protocol:6,receiv:7,request:6,router:[6,8],sender:9,specif:6,tabl:3,topolog:6,util:[10,11,12],welcom:[],worker:6}}) \ No newline at end of file Search.setIndex({envversion:46,filenames:["api","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","utils","utils/classes","utils/messages","utils/timeutils"],objects:{"eventmq.exceptions":{EventMQError:[2,5,1,""],InvalidMessageError:[2,5,1,""],MessageError:[2,5,1,""]},"eventmq.jobmanager":{JobManager:[4,4,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[4,2,1,""],on_ack:[4,2,1,""],on_heartbeat:[4,2,1,""],process_message:[4,2,1,""],reset:[4,2,1,""],send_inform:[4,2,1,""],start:[4,2,1,""]},"eventmq.poller":{Poller:[5,4,1,""]},"eventmq.poller.Poller":{"__init__":[5,2,1,""],poll:[5,2,1,""],register:[5,2,1,""],unregister:[5,2,1,""]},"eventmq.receiver":{Receiver:[7,4,1,""]},"eventmq.receiver.Receiver":{"__init__":[7,2,1,""],connect:[7,2,1,""],listen:[7,2,1,""],name:[7,1,1,""],ready:[7,1,1,""],zcontext:[7,1,1,""],zsocket:[7,1,1,""]},"eventmq.router":{Router:[8,4,1,""]},"eventmq.router.Router":{on_heartbeat:[8,2,1,""],on_inform:[8,2,1,""],on_receive_reply:[8,2,1,""],on_receive_request:[8,2,1,""],send_ack:[8,2,1,""],send_heartbeat:[8,2,1,""],send_workers_heartbeats:[8,2,1,""],start:[8,2,1,""]},"eventmq.sender":{Sender:[9,4,1,""]},"eventmq.sender.Sender":{"__init__":[9,2,1,""],connect:[9,2,1,""],listen:[9,2,1,""],name:[9,1,1,""],ready:[9,1,1,""],rebuild:[9,2,1,""],zcontext:[9,1,1,""],zsocket:[9,1,1,""]},"eventmq.utils":{classes:[11,0,0,"-"],messages:[12,0,0,"-"],random_characters:[10,3,1,""],timeutils:[13,0,0,"-"]},"eventmq.utils.classes":{HeartbeatMixin:[11,4,1,""],ZMQReceiveMixin:[11,4,1,""],ZMQSendMixin:[11,4,1,""]},"eventmq.utils.classes.HeartbeatMixin":{"__init__":[11,2,1,""],"__weakref__":[11,1,1,""],is_dead:[11,2,1,""],reset_heartbeat_counters:[11,2,1,""],send_heartbeat:[11,2,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[11,1,1,""],recv:[11,2,1,""],recv_multipart:[11,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[11,1,1,""],send:[11,2,1,""],send_multipart:[11,2,1,""]},"eventmq.utils.messages":{generate_msgid:[12,3,1,""],parse_message:[12,3,1,""],parse_router_message:[12,3,1,""],send_emqp_message:[12,3,1,""],send_emqp_router_message:[12,3,1,""]},"eventmq.utils.timeutils":{monotonic:[13,3,1,""],timestamp:[13,3,1,""]},eventmq:{exceptions:[2,0,0,"-"],jobmanager:[4,0,0,"-"],poller:[5,0,0,"-"],receiver:[7,0,0,"-"],router:[8,0,0,"-"],sender:[9,0,0,"-"],utils:[10,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","class","Python class"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:function","4":"py:class","5":"py:exception"},terms:{"0mq":[6,11],"__init__":[4,5,7,9,11],"__weakref__":11,"_empty_":6,"_headers_":6,"_issu":[],"_msg_":6,"_msgid_":6,"_queue_name_":6,"_recipient_id":11,"_sourc":[],"_topic_name_":6,"_unix_ts_":6,"abstract":6,"case":6,"class":[],"default":[4,6,7,9],"float":11,"function":[7,8],"import":1,"int":5,"long":5,"new":8,"public":6,"return":[1,5,7,9,10,11,12],"true":[6,7,9,11],"while":6,about:[4,6],absolut:1,accept:6,account:[8,12],ack:[6,8],ackd_msgid:4,acknowledg:6,act:6,actual:4,addr:[4,7,9],address:[],after:6,agre:6,all:[2,4,6,7,9,11],allow:6,alpha:6,and_data:12,ani:6,api:[],appear:5,applic:6,architectur:[],aren:[],arg:[4,5,7,8,9,11,12],around:[],attr:5,automat:11,avail:[7,9],awaiting_ack:4,back:[6,11],backend_addr:8,base:[2,5],basi:6,been:11,befor:[5,6],begin:[4,8],belong:6,below:6,between:6,bool:[7,9,11],both:[5,6],broker:6,build:[8,9],built:6,bulid:7,call:[4,5,7,8],callabl:7,can:[6,12],chang:6,charact:10,check:[7,9,11],client:[],close:4,code:[1,3],com:[],come:8,comma:6,command:[4,6,11,12],complet:6,compon:6,connction:[7,9],connect:[4,6,7,8,9,11,12],consist:6,contain:[6,10],content:[],context:[7,9],convers:6,convienc:[5,11],count:6,counter:11,creat:[7,8,9,10],csv:6,current:[4,7,9],custom:8,data:12,deal:10,dealer:9,death:11,debug:6,def:8,defeat:6,defin:[6,7,9,11],deliv:6,describ:6,descript:6,detail:6,detect:6,determin:6,devic:[5,11,12],dialog:6,dict:5,dictionari:[5,6],differ:1,directli:[5,11],disconnect:6,distribut:6,doesn:5,dure:9,either:6,els:[1,6],empti:6,emqp:[],encount:2,end:11,enderlab:[],ensur:[4,6],even:6,event:5,eventloop:[4,7,8,9],eventmqerror:2,except:[],execut:6,explicitli:11,expos:4,extra:6,fail:6,fair:6,fals:[4,6,7,9,11],few:1,field:6,find:11,finish:6,first:6,fit:6,flag:5,follow:6,form:4,format:[6,12],found:8,foundat:6,frame:[],free:6,from:[2,4,5,6,8],frontend_addr:8,gener:[4,5,6,7,9,12],generate_msgid:12,github:[],gmtime:[],gnu:6,goal:[],good:11,guarante:6,guarente:[],hand:10,handl:[6,8],happen:[5,9],have:[11,12],header:[],heartbeat:[],heartbeati:11,heartbeatmixin:11,heavi:6,here:6,hope:6,how:5,html:6,http:6,ident:[6,11],ietf:6,implement:[6,11],impli:6,includ:6,incom:[],index:3,inform:[4,6,8],inherit:2,insert:[6,11],instal:1,instanc:4,interpret:6,interv:6,invalidmessageerror:2,is_dead:11,isn:8,issu:[1,3,6],iter:5,job:[],jobmanag:[],kei:[5,6],kwarg:[4,5,7,8,9,11],languag:[],later:6,least:6,leav:6,length:10,let:6,licens:[],like:[10,11],list:11,listen:[4,7,8,9],look:11,loop:5,mai:[6,11],main:4,make:10,malform:2,manag:[],mani:[6,9],manual:6,master:6,merchant:6,messag:[],message_bodi:12,message_id:12,messageerror:2,met:11,meta:12,method:[4,5,7,8,11],mode:7,modifi:6,modul:[3,10],monoton:[11,13],more:[6,10],msg:[4,6,8,12],msg_id:[],msgid:[4,8],multipart:[6,11],must:[6,11],name:[4,6,7,8,9],need:[8,9],next:5,none:[7,9,11,12],note:[4,7,9],now:11,object:[5,11],occur:11,on_ack:4,on_command:[4,8],on_heartbeat:[4,8],on_inform:8,on_receive_repli:8,on_receive_request:8,on_recv:7,onc:6,onli:[7,9],onlin:8,option:[4,6,7,9,12],org:6,orient:6,origin:6,other:6,otherwis:[4,7,9,11],out:11,own:11,page:3,param:11,paramet:[4,5,7,8,9,11,12],pars:[4,12],parse_messag:12,parse_router_messag:12,part:[6,12],particular:[6,9],pass:[6,7,8],peer:[6,11],pictur:6,poll:[5,7,9],poller:[],pollin:5,pollout:5,pool:6,portion:4,possibl:1,practic:11,prefix:12,prepend:6,pretti:6,problem:2,process:[4,6,9],process_messag:4,prop:[],properti:[7,9],protocol:[],protocol_vers:11,provid:[8,11],pub:6,publish:6,purpos:6,queue:[6,8],rais:[2,7,9,12],random:[10,12],random_charact:10,raw:11,raw_messag:[],readi:[6,7,9],rebuild:9,receiv:[],recent:6,reciev:7,recip:[],recipi:[8,11,12],recipient_id:12,recommend:6,reconnect:9,recv:11,recv_multipart:11,redistribut:6,refer:11,regist:[5,8],regular:6,rel:1,reliabl:6,remain:5,remov:6,reopen:4,rep:7,repli:[6,12],req:9,request:[],requir:[6,7],requri:6,reset:[4,11],reset_heartbeat_count:11,resourc:[4,6],respond:6,respons:[4,7,8,9],restart:[6,9],retri:6,rfc2119:6,rfc:6,robin:6,roughli:9,round:6,rout:[6,8],router:[],run:4,same:9,search:3,see:[5,6],self:9,send:[4,6,8,9,11,12],send_ack:8,send_emqp_messag:12,send_emqp_router_messag:12,send_heartbeat:[8,11],send_inform:4,send_messag:[],send_multipart:11,send_raw:[],send_workers_heartbeat:8,sender:[],sender_id:12,sent:[6,11],seper:6,serv:6,server:[4,6],servic:6,set:[4,5,6,7,9,11],shall:6,should:[2,5,6,7,9],shown:6,simpl:[8,10],singl:6,skip:[7,9,11],skip_zmqstream:[7,9],socket:[4,5,6,7,8,9,11,12],softwar:6,some:[10,11,12],someon:6,someth:[9,11],somewher:1,sourc:[1,3],spawn:4,specif:[],specifi:[6,10,11],start:[4,7,8,9],state:11,statu:6,stop:6,str:[4,7,8,9,11,12],string:[4,6,7,8,9,12],structur:2,sub:6,subclass:2,subject:6,subset:6,success:6,system:1,take:[4,8,9,12],task:4,tcp:[4,8],term:6,thei:[],them:7,thi:[2,4,5,6,7,8,9,10,11],thing:[4,9,10,11,12],threshold:11,through:6,time:6,timeout:5,timestamp:[6,13],timeutil:11,timezon:[],tip:1,tool:6,topic:[],topolog:[],tornado:[4,8],trace:6,track:11,tupl:[5,11,12],type:[6,7,9],typecast:5,typeerror:7,undefin:5,under:6,uniqu:[4,6],univers:[],unix:6,unless:[4,7,9],unregist:5,unus:7,upon:6,usual:8,utilit:[],uuid:[4,7,9],valid:6,valu:[5,6,11,12],variabl:11,version:[1,6,11],via:[7,9],wait:5,warn:8,warranti:6,weak:11,web:6,well:6,when:[1,2,6,7,8,9,11],where:6,which:6,wish:12,without:[6,9],word:6,work:[1,11],worker:[],worri:6,wrap:[7,9],you:[1,6,9,11,12],your:[6,11],zcontext:[7,9],zeromq:6,zmq:[5,6,7,9,11,12],zmqreceivemixin:11,zmqsendmixin:11,zmqstream:[7,9],zsocket:[7,9]},titles:["API Documentation","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> &#8211; Time Utilites"],titleterms:{"class":11,address:6,api:0,architectur:6,client:6,contribut:1,document:[0,3],emqp:6,eventmq:[1,3,6],except:2,frame:6,global:6,goal:6,header:6,heartbeat:6,indic:3,job:4,jobmanag:4,languag:6,licens:6,manag:4,messag:12,poller:5,protocol:6,receiv:7,request:6,router:[6,8],sender:9,specif:6,tabl:3,time:13,timeutil:13,topolog:6,util:[10,11,12],utilit:13,welcom:[],worker:6}}) \ No newline at end of file
diff --git a/utils.html b/utils.html
index e112cab..308b3c8 100644
--- a/utils.html
+++ b/utils.html
@@ -93,6 +93,7 @@
93<li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul> 93<li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul>
94<li class="toctree-l3"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li> 94<li class="toctree-l3"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li>
95<li class="toctree-l3"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li> 95<li class="toctree-l3"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li>
96<li class="toctree-l3"><a class="reference internal" href="utils/timeutils.html"><code class="docutils literal"><span class="pre">timeutils</span></code> &#8211; Time Utilites</a></li>
96</ul> 97</ul>
97</li> 98</li>
98</ul> 99</ul>
@@ -152,6 +153,7 @@ like creating message more simple.</p>
152<ul> 153<ul>
153<li class="toctree-l1"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li> 154<li class="toctree-l1"><a class="reference internal" href="utils/classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li>
154<li class="toctree-l1"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li> 155<li class="toctree-l1"><a class="reference internal" href="utils/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li>
156<li class="toctree-l1"><a class="reference internal" href="utils/timeutils.html"><code class="docutils literal"><span class="pre">timeutils</span></code> &#8211; Time Utilites</a></li>
155</ul> 157</ul>
156</div> 158</div>
157<dl class="function"> 159<dl class="function">
diff --git a/utils/classes.html b/utils/classes.html
index 59b9512..7e3ebcd 100644
--- a/utils/classes.html
+++ b/utils/classes.html
@@ -32,7 +32,7 @@
32 32
33 <link rel="top" title="EventMQ 0 documentation" href="../index.html"/> 33 <link rel="top" title="EventMQ 0 documentation" href="../index.html"/>
34 <link rel="up" title="utils – Utilities" href="../utils.html"/> 34 <link rel="up" title="utils – Utilities" href="../utils.html"/>
35 <link rel="next" title="utils.messages – Message Utilities" href="messages.html"/> 35 <link rel="next" title="messages – Message Utilities" href="messages.html"/>
36 <link rel="prev" title="utils – Utilities" href="../utils.html"/> 36 <link rel="prev" title="utils – Utilities" href="../utils.html"/>
37 37
38 38
@@ -92,7 +92,8 @@
92<li class="toctree-l2"><a class="reference internal" href="../sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li> 92<li class="toctree-l2"><a class="reference internal" href="../sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
93<li class="toctree-l2 current"><a class="reference internal" href="../utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul class="current"> 93<li class="toctree-l2 current"><a class="reference internal" href="../utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul class="current">
94<li class="toctree-l3 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li> 94<li class="toctree-l3 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li>
95<li class="toctree-l3"><a class="reference internal" href="messages.html"><code class="docutils literal"><span class="pre">utils.messages</span></code> &#8211; Message Utilities</a></li> 95<li class="toctree-l3"><a class="reference internal" href="messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li>
96<li class="toctree-l3"><a class="reference internal" href="timeutils.html"><code class="docutils literal"><span class="pre">time</span></code> &#8211; Time Utilites</a></li>
96</ul> 97</ul>
97</li> 98</li>
98</ul> 99</ul>
@@ -150,6 +151,64 @@
150<h1><code class="xref py py-mod docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes<a class="headerlink" href="#classes-utility-classes" title="Permalink to this headline">¶</a></h1> 151<h1><code class="xref py py-mod docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes<a class="headerlink" href="#classes-utility-classes" title="Permalink to this headline">¶</a></h1>
151<p>Defines some classes to use when implementing ZMQ devices</p> 152<p>Defines some classes to use when implementing ZMQ devices</p>
152<dl class="class"> 153<dl class="class">
154<dt id="eventmq.utils.classes.HeartbeatMixin">
155<em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">HeartbeatMixin</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin" title="Permalink to this definition">¶</a></dt>
156<dd><p>Provides methods for implementing heartbeats</p>
157<dl class="method">
158<dt id="eventmq.utils.classes.HeartbeatMixin.__init__">
159<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin.__init__" title="Permalink to this definition">¶</a></dt>
160<dd><p>Sets up some variables to track the state of heartbeaty things</p>
161</dd></dl>
162
163<dl class="attribute">
164<dt id="eventmq.utils.classes.HeartbeatMixin.__weakref__">
165<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin.__weakref__" title="Permalink to this definition">¶</a></dt>
166<dd><p>list of weak references to the object (if defined)</p>
167</dd></dl>
168
169<dl class="method">
170<dt id="eventmq.utils.classes.HeartbeatMixin.is_dead">
171<code class="descname">is_dead</code><span class="sig-paren">(</span><em>now=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin.is_dead" title="Permalink to this definition">¶</a></dt>
172<dd><p>Checks the counters for the heartbeats to find out if the thresholds
173have been met.</p>
174<table class="docutils field-list" frame="void" rules="none">
175<col class="field-name" />
176<col class="field-body" />
177<tbody valign="top">
178<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>now</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#float" title="(in Python v2.7)"><em>float</em></a>) &#8211; The time to use to check if death has occurred. If</td>
179</tr>
180</tbody>
181</table>
182<p>:param this value is None, then <code class="xref py py-func docutils literal"><span class="pre">utils.timeutils.monotonic()</span></code> is used.:</p>
183<dl class="docutils">
184<dt>Returns (bool) True if the connection to the peer has died, otherwise</dt>
185<dd>False</dd>
186</dl>
187</dd></dl>
188
189<dl class="method">
190<dt id="eventmq.utils.classes.HeartbeatMixin.reset_heartbeat_counters">
191<code class="descname">reset_heartbeat_counters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin.reset_heartbeat_counters" title="Permalink to this definition">¶</a></dt>
192<dd><p>Resets all the counters for heartbeats back to 0</p>
193</dd></dl>
194
195<dl class="method">
196<dt id="eventmq.utils.classes.HeartbeatMixin.send_heartbeat">
197<code class="descname">send_heartbeat</code><span class="sig-paren">(</span><em>socket</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin.send_heartbeat" title="Permalink to this definition">¶</a></dt>
198<dd><p>Send a HEARTBEAT command to the specified socket</p>
199<table class="docutils field-list" frame="void" rules="none">
200<col class="field-name" />
201<col class="field-body" />
202<tbody valign="top">
203<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) &#8211; The eMQP socket to send the message to</td>
204</tr>
205</tbody>
206</table>
207</dd></dl>
208
209</dd></dl>
210
211<dl class="class">
153<dt id="eventmq.utils.classes.ZMQReceiveMixin"> 212<dt id="eventmq.utils.classes.ZMQReceiveMixin">
154<em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">ZMQReceiveMixin</code><a class="headerlink" href="#eventmq.utils.classes.ZMQReceiveMixin" title="Permalink to this definition">¶</a></dt> 213<em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">ZMQReceiveMixin</code><a class="headerlink" href="#eventmq.utils.classes.ZMQReceiveMixin" title="Permalink to this definition">¶</a></dt>
155<dd><p>Defines some methods for receiving messages. This class will not work if 214<dd><p>Defines some methods for receiving messages. This class will not work if
@@ -240,7 +299,7 @@ specify the the recipient id of the</li>
240 299
241 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> 300 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
242 301
243 <a href="messages.html" class="btn btn-neutral float-right" title="utils.messages – Message Utilities" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> 302 <a href="messages.html" class="btn btn-neutral float-right" title="messages – Message Utilities" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
244 303
245 304
246 <a href="../utils.html" class="btn btn-neutral" title="utils – Utilities" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> 305 <a href="../utils.html" class="btn btn-neutral" title="utils – Utilities" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/utils/timeutils.html b/utils/timeutils.html
new file mode 100644
index 0000000..3f5a73e
--- /dev/null
+++ b/utils/timeutils.html
@@ -0,0 +1,232 @@
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>timeutils – Time Utilites &mdash; EventMQ 0 documentation</title>
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
28
29
30
31
32
33 <link rel="top" title="EventMQ 0 documentation" href="../index.html"/>
34 <link rel="up" title="utils – Utilities" href="../utils.html"/>
35 <link rel="next" title="Contributing to EventMQ" href="../contributing.html"/>
36 <link rel="prev" title="messages – Message Utilities" href="messages.html"/>
37
38
39 <script src="../_static/js/modernizr.min.js"></script>
40
41</head>
42
43<body class="wy-body-for-nav" role="document">
44
45 <div class="wy-grid-for-nav">
46
47
48 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
49 <div class="wy-side-scroll">
50 <div class="wy-side-nav-search">
51
52
53
54 <a href="../index.html" class="icon icon-home"> EventMQ
55
56
57
58 </a>
59
60
61
62
63 <div class="version">
64 0
65 </div>
66
67
68
69
70<div role="search">
71 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
72 <input type="text" name="q" placeholder="Search docs" />
73 <input type="hidden" name="check_keywords" value="yes" />
74 <input type="hidden" name="area" value="default" />
75 </form>
76</div>
77
78
79 </div>
80
81 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
82
83
84
85 <ul class="current">
86<li class="toctree-l1 current"><a class="reference internal" href="../api.html">API Documentation</a><ul class="current">
87<li class="toctree-l2"><a class="reference internal" href="../exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
88<li class="toctree-l2"><a class="reference internal" href="../jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
89<li class="toctree-l2"><a class="reference internal" href="../poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
90<li class="toctree-l2"><a class="reference internal" href="../receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li>
91<li class="toctree-l2"><a class="reference internal" href="../router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li>
92<li class="toctree-l2"><a class="reference internal" href="../sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
93<li class="toctree-l2 current"><a class="reference internal" href="../utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a><ul class="current">
94<li class="toctree-l3"><a class="reference internal" href="classes.html"><code class="docutils literal"><span class="pre">classes</span></code> &#8211; Utility Classes</a></li>
95<li class="toctree-l3"><a class="reference internal" href="messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities</a></li>
96<li class="toctree-l3 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">timeutils</span></code> &#8211; Time Utilites</a></li>
97</ul>
98</li>
99</ul>
100</li>
101<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing to EventMQ</a></li>
102</ul>
103
104
105
106 </div>
107 </div>
108 </nav>
109
110 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
111
112
113 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
114 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
115 <a href="../index.html">EventMQ</a>
116 </nav>
117
118
119
120 <div class="wy-nav-content">
121 <div class="rst-content">
122
123
124
125
126
127
128<div role="navigation" aria-label="breadcrumbs navigation">
129 <ul class="wy-breadcrumbs">
130 <li><a href="../index.html">Docs</a> &raquo;</li>
131
132 <li><a href="../api.html">API Documentation</a> &raquo;</li>
133
134 <li><a href="../utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a> &raquo;</li>
135
136 <li><code class="docutils literal"><span class="pre">timeutils</span></code> &#8211; Time Utilites</li>
137 <li class="wy-breadcrumbs-aside">
138
139
140 <a href="../_sources/utils/timeutils.txt" rel="nofollow"> View page source</a>
141
142
143 </li>
144 </ul>
145 <hr/>
146</div>
147 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
148 <div itemprop="articleBody">
149
150 <span class="target" id="module-eventmq.utils.timeutils"></span><div class="section" id="timeutils-time-utilites">
151<h1><code class="xref py py-mod docutils literal"><span class="pre">timeutils</span></code> &#8211; Time Utilites<a class="headerlink" href="#timeutils-time-utilites" title="Permalink to this headline">¶</a></h1>
152<dl class="function">
153<dt id="eventmq.utils.timeutils.monotonic">
154<code class="descclassname">eventmq.utils.timeutils.</code><code class="descname">monotonic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.monotonic" title="Permalink to this definition">¶</a></dt>
155<dd></dd></dl>
156
157<dl class="function">
158<dt id="eventmq.utils.timeutils.timestamp">
159<code class="descclassname">eventmq.utils.timeutils.</code><code class="descname">timestamp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.timestamp" title="Permalink to this definition">¶</a></dt>
160<dd></dd></dl>
161
162</div>
163
164
165 </div>
166 </div>
167 <footer>
168
169 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
170
171 <a href="../contributing.html" class="btn btn-neutral float-right" title="Contributing to EventMQ" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
172
173
174 <a href="messages.html" class="btn btn-neutral" title="messages – Message Utilities" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
175
176 </div>
177
178
179 <hr/>
180
181 <div role="contentinfo">
182 <p>
183 &copy; Copyright 2015, eventboard.io.
184
185 </p>
186 </div>
187 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
188
189</footer>
190
191 </div>
192 </div>
193
194 </section>
195
196 </div>
197
198
199
200
201
202 <script type="text/javascript">
203 var DOCUMENTATION_OPTIONS = {
204 URL_ROOT:'../',
205 VERSION:'0',
206 COLLAPSE_INDEX:false,
207 FILE_SUFFIX:'.html',
208 HAS_SOURCE: true
209 };
210 </script>
211 <script type="text/javascript" src="../_static/jquery.js"></script>
212 <script type="text/javascript" src="../_static/underscore.js"></script>
213 <script type="text/javascript" src="../_static/doctools.js"></script>
214
215
216
217
218
219 <script type="text/javascript" src="../_static/js/theme.js"></script>
220
221
222
223
224 <script type="text/javascript">
225 jQuery(function () {
226 SphinxRtdTheme.StickyNav.enable();
227 });
228 </script>
229
230
231</body>
232</html> \ No newline at end of file