You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2014/08/07 13:00:50 UTC

svn commit: r1616469 [1/4] - in /qpid/proton/branches/examples/tutorial/_build: ./ doctrees/ html/ html/_sources/ html/_static/

Author: gsim
Date: Thu Aug  7 11:00:49 2014
New Revision: 1616469

URL: http://svn.apache.org/r1616469
Log:
Added generated html

Added:
    qpid/proton/branches/examples/tutorial/_build/
    qpid/proton/branches/examples/tutorial/_build/doctrees/
    qpid/proton/branches/examples/tutorial/_build/doctrees/environment.pickle   (with props)
    qpid/proton/branches/examples/tutorial/_build/doctrees/index.doctree   (with props)
    qpid/proton/branches/examples/tutorial/_build/doctrees/tutorial.doctree   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/
    qpid/proton/branches/examples/tutorial/_build/html/.buildinfo
    qpid/proton/branches/examples/tutorial/_build/html/_sources/
    qpid/proton/branches/examples/tutorial/_build/html/_sources/index.txt
    qpid/proton/branches/examples/tutorial/_build/html/_sources/tutorial.txt
    qpid/proton/branches/examples/tutorial/_build/html/_static/
    qpid/proton/branches/examples/tutorial/_build/html/_static/ajax-loader.gif   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/alert_info_32.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/alert_warning_32.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/basic.css
    qpid/proton/branches/examples/tutorial/_build/html/_static/bg-page.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/bullet_orange.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/comment-bright.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/comment-close.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/comment.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/doctools.js
    qpid/proton/branches/examples/tutorial/_build/html/_static/down-pressed.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/down.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/file.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/haiku.css
    qpid/proton/branches/examples/tutorial/_build/html/_static/jquery.js
    qpid/proton/branches/examples/tutorial/_build/html/_static/minus.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/plus.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/pygments.css
    qpid/proton/branches/examples/tutorial/_build/html/_static/searchtools.js
    qpid/proton/branches/examples/tutorial/_build/html/_static/underscore.js
    qpid/proton/branches/examples/tutorial/_build/html/_static/up-pressed.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/up.png   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/_static/websupport.js
    qpid/proton/branches/examples/tutorial/_build/html/genindex.html   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/index.html   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/objects.inv   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/search.html   (with props)
    qpid/proton/branches/examples/tutorial/_build/html/searchindex.js
    qpid/proton/branches/examples/tutorial/_build/html/tutorial.html   (with props)

Added: qpid/proton/branches/examples/tutorial/_build/doctrees/environment.pickle
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/doctrees/environment.pickle?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/doctrees/environment.pickle
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: qpid/proton/branches/examples/tutorial/_build/doctrees/index.doctree
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/doctrees/index.doctree?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/doctrees/index.doctree
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: qpid/proton/branches/examples/tutorial/_build/doctrees/tutorial.doctree
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/doctrees/tutorial.doctree?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/doctrees/tutorial.doctree
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: qpid/proton/branches/examples/tutorial/_build/html/.buildinfo
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/.buildinfo?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/.buildinfo (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/.buildinfo Thu Aug  7 11:00:49 2014
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: c06a81077f28195f54475c7e611de571
+tags: fbb0d17656682115ca4d033fb2f83ba1

Added: qpid/proton/branches/examples/tutorial/_build/html/_sources/index.txt
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_sources/index.txt?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/_sources/index.txt (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/_sources/index.txt Thu Aug  7 11:00:49 2014
@@ -0,0 +1,15 @@
+.. Proton documentation master file, created by
+   sphinx-quickstart on Thu Jul 31 10:31:05 2014.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Some Proton Examples
+====================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   tutorial
+

Added: qpid/proton/branches/examples/tutorial/_build/html/_sources/tutorial.txt
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_sources/tutorial.txt?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/_sources/tutorial.txt (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/_sources/tutorial.txt Thu Aug  7 11:00:49 2014
@@ -0,0 +1,211 @@
+============
+Hello World!
+============
+
+Let's start, in time honoured tradition, with hello world!:
+
+.. literalinclude:: helloworld.py
+   :lines: 21-
+   :linenos:
+
+You can see the import of ``Runtime`` from ``proton_utils`` on the
+second line. This is a helper class that makes programming with proton
+a little easier for the common cases.
+
+We use the ``Runtime`` on line 12. Specifically we use a special
+default instance of it. We'll see some examples using other instances
+later. Line 12 uses the runtime to make a connection to the desired
+host and port via the ``connect()`` call. This call returns a
+``MessagingContext`` object through which we can create objects for
+sending and receiving messages to the process it is connected to.
+
+On line 13 we create a receiver through which to receiver messages
+from the specified address. We specify a ``handler`` parameter, with
+an instance of our ``HelloWorld`` class as it's value. The ``handler``
+parameter provides a way of being notified of important events related
+to the receiver being created. The event we care about most is the
+receiving of a message. To be notified of that we define a
+``received`` method on our handler which will be called whenever a
+message for that receiver arrives.  As well as the received message,
+this method also gets passed the receiver over which the message
+arrived and a ``delivery`` handle associated with it, which we can
+ignore for now.  In our example we simply print the body of the
+message, then close the connection of the receiver it arrived on.
+
+Now we are all ready to receive and print our message. All we need to
+do is send one! To do so we use the ``MessagingContext`` object to
+create a sender for the same address we used when creating the
+receiver, and then we send a message over it.
+
+Finally we allow the runtime to process these instructions and handle
+all the necessary IO by calling ``run()`` on it in line 15.
+
+To run this example as it is, you need to have an AMQP broker running
+locally on port 5672, with a queue (or topic) named ``examples``, or
+configured to create that dynamically. The broker must also allow
+unauthenticated connections.
+
+In fact, if your broker doesn't have the requisite queue, the example
+just hangs. Let's modify the example to handle that a little more
+gracefully.
+
+.. literalinclude:: helloworld_2.py
+   :lines: 21-
+   :emphasize-lines: 12-15
+   :linenos:
+
+All we have added is a new method to our receiver's handler. This
+method is called ``closed()`` and it is called whenever the remote
+process closes our receiver. We'll print any error if specified and
+then close the connection. If you now run it against a broker that
+doesn't have (and will not automatically create) a queue named
+``examples`` then it should exit with a more informative error
+message. This demonstrates a key concept in using proton, namely that
+you often structure your logic to react to particular events.
+
+====================
+Hello World, Direct!
+====================
+
+Though often used in conjunction with a broker, AMQP does not
+*require* this. It also allows senders and receivers can communicate
+directly if desired.
+
+Let's modify our example to demonstrate this.
+
+.. literalinclude:: helloworld_3.py
+   :lines: 21-
+   :emphasize-lines: 12-14
+   :linenos:
+
+The first difference, on line 12, is that we create our own
+``Runtime`` instance rather than just using the default instance. We
+pass in some handler objects. The first of these is our ``HelloWorld``
+handler as used in the original example. We pass it to the runtime,
+because we aren't going to directly create the receiver here
+ourselves. Rather we will accept an incoming connection on which the
+message will be received. As well as our own handler, we specify a
+couple of useful handlers from the ``proton_utils`` toolkit. The
+``Handshaker`` handler will ensure our server follows the basic
+handshaking rules laid down by the protocol. The ``FlowController``
+will issue credit for incoming messages. We won't worry about them in
+more detail than that for now.
+
+On line 13 we then invoke ``listen()`` on our runtime. This starts a
+server socket listening for incoming connections on the specified
+interface and port. Then on line 14 we use ``connect`` as before on
+our runtime instance to establish an outgoing connection back to
+ourselves. As before we create a sender on this connection and send
+our message over it. So now we have our example working without a
+broker involved!
+
+However, the example doesn't exit after the message is printed. This
+is because we are still listenting for incoming connections; the
+runtime is still running. Let's now change it to shutdown cleanly when
+done.
+
+.. literalinclude:: helloworld_4.py
+   :lines: 21-
+   :emphasize-lines: 12-17,20,21
+   :linenos:
+
+On line 21 we pass a handler to the ``connect()`` call on our
+runtime. This is similar to what we did when creating a receiver in
+the original example. Here however the handler is scoped to the
+connection. We are interested in reacting to the closing of the
+connection by the remote peer by closing the server socket we have
+listening for incoming connections. The call to ``listen()`` returns
+an object we can ``close()`` to accomplish this, so we modify line 20
+to create an object to use as our connection scoped handler, passing
+in this reference to the incoming socket acceptor. Now the ``run()``
+call returns when we are finished and the example exits cleanly.
+
+==========
+The Basics
+==========
+
+So much for hello world! Let's explore a little more. Separating out
+the receiving logic and receiving messages until the program is
+stopped, we get the following example (which has the same broker
+requirements mentioned for the first hello world example).
+
+.. literalinclude:: simple_recv.py
+   :lines: 21-
+   :linenos:
+
+Often we want to be notified whether the messages we send arrive at
+their intended destination. We can do that by specifying a handler for
+the sender we create with an ``accepted()`` method defined on it. This
+will be called whenever a message sent by the sender is accepted by
+the remote peer.
+
+When sending a large number of messages, we need to consider whether
+the remote peer is able to handle them all. AMQP has a powerful flow
+control mechanism through which processes can limit the incoming flow
+of messages. If we implement a ``link_flow()`` method on our sender's
+handler, this will be called whenever the sender is allowed to send
+and will prevent messages building up due to the receivers inability
+to process them.
+
+Separating out the sending logic, extending it to send a given number
+of messages and incorporating the two handler methods just described
+we get:
+
+.. literalinclude:: simple_send.py
+   :lines: 21-
+   :linenos:
+
+============
+Reconnecting
+============
+
+TODO: This shows a basic reconnect for the receiver. Need some backoff
+logic which requires some sort of support for timers in the event
+loop.
+
+.. literalinclude:: simple_recv_2.py
+   :lines: 21-
+   :linenos:
+
+================
+Request/Response
+================
+
+A common pattern is to send a request message and expect a response
+message in return. AMQP has special support for this pattern. Let's
+have a look at a simple example. We'll start with the 'server',
+i.e. the program that will process the request and send the
+response. Note that we are still using a broker in this example.
+
+Our server will provide a very simple service: it will respond with
+the body of the request converted to uppercase.
+
+.. literalinclude:: server.py
+   :lines: 21-
+   :linenos:
+
+The code here is not too different from the simple receiver example. When
+we receive a request however, we look at the reply-to address and
+create a sender for that over which to send the response. We'll cache
+the senders incase we get further requests wit the same reply-to.
+
+Now let's create a simple client to test this service out.
+
+.. literalinclude:: client.py
+   :lines: 21-
+   :linenos:
+
+As well as sending requests, we need to be able to get back the
+responses. We create a receiver for that (see line 8), but we don't
+specify an address, we set the dynamic option which tells the broker
+we are connected to to create a temporary address over which we can
+receive our responses.
+
+We need to use the address allocated by the broker as the reply_to
+address of our requests. To be notified when the broker has sent us
+back the address to use, we add an ``opened()`` method to our
+receiver's handler, and use that as the trigger to send our first
+request.
+
+
+

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/ajax-loader.gif
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/ajax-loader.gif?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/ajax-loader.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/alert_info_32.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/alert_info_32.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/alert_info_32.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/alert_warning_32.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/alert_warning_32.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/alert_warning_32.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/basic.css
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/basic.css?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/_static/basic.css (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/_static/basic.css Thu Aug  7 11:00:49 2014
@@ -0,0 +1,540 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+    width: 170px;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+    width: 30px;
+}
+
+img {
+    border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+    width: 100%;
+}
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+div.modindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.align-left {
+    text-align: left;
+}
+
+.align-center {
+    text-align: center;
+}
+
+.align-right {
+    text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 5px;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+table.citation {
+    border-left: solid 1px gray;
+    margin-left: 1px;
+}
+
+table.citation td {
+    border-bottom: none;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+    list-style: decimal;
+}
+
+ol.loweralpha {
+    list-style: lower-alpha;
+}
+
+ol.upperalpha {
+    list-style: upper-alpha;
+}
+
+ol.lowerroman {
+    list-style: lower-roman;
+}
+
+ol.upperroman {
+    list-style: upper-roman;
+}
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlighted {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.refcount {
+    color: #060;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa;
+}
+
+.line-block {
+    display: block;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+.line-block .line-block {
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+    font-family: sans-serif;
+}
+
+.accelerator {
+    text-decoration: underline;
+}
+
+.classifier {
+    font-style: oblique;
+}
+
+abbr, acronym {
+    border-bottom: dotted 1px;
+    cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+.viewcode-link {
+    float: right;
+}
+
+.viewcode-back {
+    float: right;
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    margin: -1px -10px;
+    padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
\ No newline at end of file

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/bg-page.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/bg-page.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/bg-page.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/bullet_orange.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/bullet_orange.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/bullet_orange.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/comment-bright.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/comment-bright.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/comment-bright.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/comment-close.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/comment-close.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/comment-close.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/comment.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/comment.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/comment.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/doctools.js
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/doctools.js?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/_static/doctools.js (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/_static/doctools.js Thu Aug  7 11:00:49 2014
@@ -0,0 +1,247 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+if (!window.console || !console.firebug) {
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
+    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
+    "profile", "profileEnd"];
+  window.console = {};
+  for (var i = 0; i < names.length; ++i)
+    window.console[names[i]] = function() {};
+}
+ */
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+  return decodeURIComponent(x).replace(/\+/g, ' ');
+}
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+  if (typeof s == 'undefined')
+    s = document.location.search;
+  var parts = s.substr(s.indexOf('?') + 1).split('&');
+  var result = {};
+  for (var i = 0; i < parts.length; i++) {
+    var tmp = parts[i].split('=', 2);
+    var key = jQuery.urldecode(tmp[0]);
+    var value = jQuery.urldecode(tmp[1]);
+    if (key in result)
+      result[key].push(value);
+    else
+      result[key] = [value];
+  }
+  return result;
+};
+
+/**
+ * small function to check if an array contains
+ * a given item.
+ */
+jQuery.contains = function(arr, item) {
+  for (var i = 0; i < arr.length; i++) {
+    if (arr[i] == item)
+      return true;
+  }
+  return false;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+  function highlight(node) {
+    if (node.nodeType == 3) {
+      var val = node.nodeValue;
+      var pos = val.toLowerCase().indexOf(text);
+      if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
+        var span = document.createElement("span");
+        span.className = className;
+        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+          document.createTextNode(val.substr(pos + text.length)),
+          node.nextSibling));
+        node.nodeValue = val.substr(0, pos);
+      }
+    }
+    else if (!jQuery(node).is("button, select, textarea")) {
+      jQuery.each(node.childNodes, function() {
+        highlight(this);
+      });
+    }
+  }
+  return this.each(function() {
+    highlight(this);
+  });
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+  init : function() {
+    this.fixFirefoxAnchorBug();
+    this.highlightSearchWords();
+    this.initIndexTable();
+  },
+
+  /**
+   * i18n support
+   */
+  TRANSLATIONS : {},
+  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
+  LOCALE : 'unknown',
+
+  // gettext and ngettext don't access this so that the functions
+  // can safely bound to a different name (_ = Documentation.gettext)
+  gettext : function(string) {
+    var translated = Documentation.TRANSLATIONS[string];
+    if (typeof translated == 'undefined')
+      return string;
+    return (typeof translated == 'string') ? translated : translated[0];
+  },
+
+  ngettext : function(singular, plural, n) {
+    var translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated == 'undefined')
+      return (n == 1) ? singular : plural;
+    return translated[Documentation.PLURALEXPR(n)];
+  },
+
+  addTranslations : function(catalog) {
+    for (var key in catalog.messages)
+      this.TRANSLATIONS[key] = catalog.messages[key];
+    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+    this.LOCALE = catalog.locale;
+  },
+
+  /**
+   * add context elements like header anchor links
+   */
+  addContextElements : function() {
+    $('div[id] > :header:first').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this headline')).
+      appendTo(this);
+    });
+    $('dt[id]').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this definition')).
+      appendTo(this);
+    });
+  },
+
+  /**
+   * workaround a firefox stupidity
+   */
+  fixFirefoxAnchorBug : function() {
+    if (document.location.hash && $.browser.mozilla)
+      window.setTimeout(function() {
+        document.location.href += '';
+      }, 10);
+  },
+
+  /**
+   * highlight the search words provided in the url in the text
+   */
+  highlightSearchWords : function() {
+    var params = $.getQueryParameters();
+    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+    if (terms.length) {
+      var body = $('div.body');
+      window.setTimeout(function() {
+        $.each(terms, function() {
+          body.highlightText(this.toLowerCase(), 'highlighted');
+        });
+      }, 10);
+      $('<p class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+          .appendTo($('#searchbox'));
+    }
+  },
+
+  /**
+   * init the domain index toggle buttons
+   */
+  initIndexTable : function() {
+    var togglers = $('img.toggler').click(function() {
+      var src = $(this).attr('src');
+      var idnum = $(this).attr('id').substr(7);
+      $('tr.cg-' + idnum).toggle();
+      if (src.substr(-9) == 'minus.png')
+        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+      else
+        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
+        togglers.click();
+    }
+  },
+
+  /**
+   * helper function to hide the search marks again
+   */
+  hideSearchWords : function() {
+    $('#searchbox .highlight-link').fadeOut(300);
+    $('span.highlighted').removeClass('highlighted');
+  },
+
+  /**
+   * make the url absolute
+   */
+  makeURL : function(relativeURL) {
+    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+  },
+
+  /**
+   * get the current relative url
+   */
+  getCurrentURL : function() {
+    var path = document.location.pathname;
+    var parts = path.split(/\//);
+    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+      if (this == '..')
+        parts.pop();
+    });
+    var url = parts.join('/');
+    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+  }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+  Documentation.init();
+});

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/down-pressed.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/down-pressed.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/down-pressed.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/down.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/down.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/down.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/file.png
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/file.png?rev=1616469&view=auto
==============================================================================
Binary file - no diff available.

Propchange: qpid/proton/branches/examples/tutorial/_build/html/_static/file.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: qpid/proton/branches/examples/tutorial/_build/html/_static/haiku.css
URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/_build/html/_static/haiku.css?rev=1616469&view=auto
==============================================================================
--- qpid/proton/branches/examples/tutorial/_build/html/_static/haiku.css (added)
+++ qpid/proton/branches/examples/tutorial/_build/html/_static/haiku.css Thu Aug  7 11:00:49 2014
@@ -0,0 +1,371 @@
+/*
+ * haiku.css_t
+ * ~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- haiku theme.
+ *
+ * Adapted from http://haiku-os.org/docs/Haiku-doc.css.
+ * Original copyright message:
+ *
+ *     Copyright 2008-2009, Haiku. All rights reserved.
+ *     Distributed under the terms of the MIT License.
+ *
+ *     Authors:
+ *              Francois Revol <re...@free.fr>
+ *              Stephan Assmus <su...@gmx.de>
+ *              Braden Ewing <br...@gmail.com>
+ *              Humdinger <hu...@gmail.com>
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+@import url("basic.css");
+
+html {
+    margin: 0px;
+    padding: 0px;
+    background: #FFF url(bg-page.png) top left repeat-x;
+}
+
+body {
+    line-height: 1.5;
+    margin: auto;
+    padding: 0px;
+    font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
+    min-width: 59em;
+    max-width: 70em;
+    color: #333333;
+}
+
+div.footer {
+    padding: 8px;
+    font-size: 11px;
+    text-align: center;
+    letter-spacing: 0.5px;
+}
+
+/* link colors and text decoration */
+
+a:link {
+    font-weight: bold;
+    text-decoration: none;
+    color: #dc3c01;
+}
+
+a:visited {
+    font-weight: bold;
+    text-decoration: none;
+    color: #892601;
+}
+
+a:hover, a:active {
+    text-decoration: underline;
+    color: #ff4500;
+}
+
+/* Some headers act as anchors, don't give them a hover effect */
+
+h1 a:hover, a:active {
+    text-decoration: none;
+    color: #0c3762;
+}
+
+h2 a:hover, a:active {
+    text-decoration: none;
+    color: #0c3762;
+}
+
+h3 a:hover, a:active {
+    text-decoration: none;
+    color: #0c3762;
+}
+
+h4 a:hover, a:active {
+    text-decoration: none;
+    color: #0c3762;
+}
+
+a.headerlink {
+    color: #a7ce38;
+    padding-left: 5px;
+}
+
+a.headerlink:hover {
+    color: #a7ce38;
+}
+
+/* basic text elements */
+
+div.content {
+    margin-top: 20px;
+    margin-left: 40px;
+    margin-right: 40px;
+    margin-bottom: 50px;
+    font-size: 0.9em;
+}
+
+/* heading and navigation */
+
+div.header {
+    position: relative;
+    left: 0px;
+    top: 0px;
+    height: 85px;
+    /* background: #eeeeee; */
+    padding: 0 40px;
+}
+div.header h1 {
+    font-size: 1.6em;
+    font-weight: normal;
+    letter-spacing: 1px;
+    color: #0c3762;
+    border: 0;
+    margin: 0;
+    padding-top: 15px;
+}
+div.header h1 a {
+    font-weight: normal;
+    color: #0c3762;
+}
+div.header h2 {
+    font-size: 1.3em;
+    font-weight: normal;
+    letter-spacing: 1px;
+    text-transform: uppercase;
+    color: #aaa;
+    border: 0;
+    margin-top: -3px;
+    padding: 0;
+}
+
+div.header img.rightlogo {
+    float: right;
+}
+
+
+div.title {
+    font-size: 1.3em;
+    font-weight: bold;
+    color: #0c3762;
+    border-bottom: dotted thin #e0e0e0;
+    margin-bottom: 25px;
+}
+div.topnav {
+    /* background: #e0e0e0; */
+}
+div.topnav p {
+    margin-top: 0;
+    margin-left: 40px;
+    margin-right: 40px;
+    margin-bottom: 0px;
+    text-align: right;
+    font-size: 0.8em;
+}
+div.bottomnav {
+    background: #eeeeee;
+}
+div.bottomnav p {
+    margin-right: 40px;
+    text-align: right;
+    font-size: 0.8em;
+}
+
+a.uplink {
+    font-weight: normal;
+}
+
+
+/* contents box */
+
+table.index {
+    margin: 0px 0px 30px 30px;
+    padding: 1px;
+    border-width: 1px;
+    border-style: dotted;
+    border-color: #e0e0e0;
+}
+table.index tr.heading {
+    background-color: #e0e0e0;
+    text-align: center;
+    font-weight: bold;
+    font-size: 1.1em;
+}
+table.index tr.index {
+    background-color: #eeeeee;
+}
+table.index td {
+    padding: 5px 20px;
+}
+
+table.index a:link, table.index a:visited {
+    font-weight: normal;
+    text-decoration: none;
+    color: #dc3c01;
+}
+table.index a:hover, table.index a:active {
+    text-decoration: underline;
+    color: #ff4500;
+}
+
+
+/* Haiku User Guide styles and layout */
+
+/* Rounded corner boxes */
+/* Common declarations */
+div.admonition {
+    -webkit-border-radius: 10px;
+    -khtml-border-radius: 10px;
+    -moz-border-radius: 10px;
+    border-radius: 10px;
+    border-style: dotted;
+    border-width: thin;
+    border-color: #dcdcdc;
+    padding: 10px 15px 10px 15px;
+    margin-bottom: 15px;
+    margin-top: 15px;
+}
+div.note {
+    padding: 10px 15px 10px 80px;
+    background: #e4ffde url(alert_info_32.png) 15px 15px no-repeat;
+    min-height: 42px;
+}
+div.warning {
+    padding: 10px 15px 10px 80px;
+    background: #fffbc6 url(alert_warning_32.png) 15px 15px no-repeat;
+    min-height: 42px;
+}
+div.seealso {
+    background: #e4ffde;
+}
+
+/* More layout and styles */
+h1 {
+    font-size: 1.3em;
+    font-weight: bold;
+    color: #0c3762;
+    border-bottom: dotted thin #e0e0e0;
+    margin-top: 30px;
+}
+
+h2 {
+    font-size: 1.2em;
+    font-weight: normal;
+    color: #0c3762;
+    border-bottom: dotted thin #e0e0e0;
+    margin-top: 30px;
+}
+
+h3 {
+    font-size: 1.1em;
+    font-weight: normal;
+    color: #0c3762;
+    margin-top: 30px;
+}
+
+h4 {
+    font-size: 1.0em;
+    font-weight: normal;
+    color: #0c3762;
+    margin-top: 30px;
+}
+
+p {
+    text-align: justify;
+}
+
+p.last {
+    margin-bottom: 0;
+}
+
+ol {
+    padding-left: 20px;
+}
+
+ul {
+    padding-left: 5px;
+    margin-top: 3px;
+}
+
+li {
+    line-height: 1.3;
+}
+
+div.content ul > li {
+    -moz-background-clip:border;
+    -moz-background-inline-policy:continuous;
+    -moz-background-origin:padding;
+    background: transparent url(bullet_orange.png) no-repeat scroll left 0.45em;
+    list-style-image: none;
+    list-style-type: none;
+    padding: 0 0 0 1.666em;
+    margin-bottom: 3px;
+}
+
+td {
+    vertical-align: top;
+}
+
+tt {
+    background-color: #e2e2e2;
+    font-size: 1.0em;
+    font-family: monospace;
+}
+
+pre {
+    border-color: #0c3762;
+    border-style: dotted;
+    border-width: thin;
+    margin: 0 0 12px 0;
+    padding: 0.8em;
+    background-color: #f0f0f0;
+}
+
+hr {
+    border-top: 1px solid #ccc;
+    border-bottom: 0;
+    border-right: 0;
+    border-left: 0;
+    margin-bottom: 10px;
+    margin-top: 20px;
+}
+
+/* printer only pretty stuff */
+@media print {
+    .noprint {
+        display: none;
+    }
+    /* for acronyms we want their definitions inlined at print time */
+    acronym[title]:after {
+        font-size: small;
+        content: " (" attr(title) ")";
+        font-style: italic;
+    }
+    /* and not have mozilla dotted underline */
+    acronym {
+        border: none;
+    }
+    div.topnav, div.bottomnav, div.header, table.index {
+        display: none;
+    }
+    div.content {
+        margin: 0px;
+        padding: 0px;
+    }
+    html {
+        background: #FFF;
+    }
+}
+
+.viewcode-back {
+    font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+    margin: -1px -12px;
+    padding: 0 12px;
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org