1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
:mod:`toro` Classes
===================
.. currentmodule:: toro
.. contents:: Contents
:local:
.. _primitives:
Primitives
~~~~~~~~~~
AsyncResult
-----------
.. autoclass:: AsyncResult
:members:
Lock
----
.. autoclass:: Lock
:members:
RWLock
------
.. autoclass:: RWLock
:members:
Semaphore
---------
.. autoclass:: Semaphore
:members:
BoundedSemaphore
----------------
.. autoclass:: BoundedSemaphore
:members:
Condition
---------
.. autoclass:: Condition
:members:
Event
-----
.. autoclass:: Event
:members:
Queues
~~~~~~
Queue
-----
.. autoclass:: Queue
:members:
PriorityQueue
-------------
.. autoclass:: PriorityQueue
:members:
LifoQueue
---------
.. autoclass:: LifoQueue
:members:
JoinableQueue
-------------
.. autoclass:: JoinableQueue
:members:
Exceptions
~~~~~~~~~~
.. autoclass:: Timeout
.. autoclass:: NotReady
.. autoclass:: AlreadySet
Toro also uses exceptions Empty_ and Full_ from the standard module Queue_.
.. _Empty: http://docs.python.org/library/queue.html#Queue.Empty
.. _Full: http://docs.python.org/library/queue.html#Queue.Full
.. _Queue: http://docs.python.org/library/queue.html
Class relationships
~~~~~~~~~~~~~~~~~~~
Toro uses some of its primitives in the implementation of others.
For example, :class:`JoinableQueue` is a subclass of :class:`Queue`, and it
contains an :class:`Event`. (:class:`AsyncResult` stands alone.)
.. graphviz::
digraph Toro {
graph [splines=false];
node [shape=record];
// First show UML-style subclass relationships.
edge [label=subclass arrowtail=empty arrowhead=none dir=both];
Queue -> PriorityQueue
Queue -> LifoQueue
Queue -> JoinableQueue
Semaphore -> BoundedSemaphore
// Now UML-style composition or has-a relationships.
edge [label="has a" arrowhead=odiamond arrowtail=none];
Event -> JoinableQueue
Condition -> Event
Event -> Semaphore
Queue -> Semaphore
Semaphore -> Lock
}
|