Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 8d3474d1daee4197d7f9f4eb0188cd4c > files > 41

python-amqplib-0.6.1-2.fc14.noarch.rpm

General layout of the Python code for those interested in hacking on it.
------------------------------------------------------------------------

The Connection class in connection.py is the heart of the library, it
wires together the various other classes.

The items in method_framing.py and transport.py should not be visible
to the amqplib user.

This is the general arrangement of how the classes communicate with
each other:

                           +-----------+        +-----------+
channel.py                 |  Channel  |   ...  |  Channel  |
                           +-----------+        +-----------+
                                 ^                    ^
                                 |      methods       |
                                 V                    V
                        +--------------------------------------+
connection.py           |               Connection             |
                        +-------+------------------------------+
                                |                      ^
                                |       methods        |
                                V                      |
                        +----------------+    +--------+-------+
method_framing.py       |  MethodWriter  |    |  MethodReader  |
                        +-------+--------+    +----------------+
                                |                      ^
                                |        frames        |
                                V                      |
                        +------------------------------+-------+
transport.py            |     TCPTransport or SSLTransport     |
                        +-------+------------------------------+
                                |                      ^
                                |        bytes         |
                                V                      |
                            +--------------------------+--+
                            |         TCP Socket          |
                            +-----------------------------+


Other notable bits of code are:

    abstract_channel.py - Contains a common superclass for Connection
                          and Channel classes.

    basic_message.py    - Location of the Message class - which is what
                          is mostly being sent/received over the Channels.

    exceptions.py       - For indicating when things go wrong.

    serialization.py    - Home of AMQPReader and AMQPWriter which are
                          used in many places within the Channel
                          and Connection classes.