http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/_build/html/tutorial.html
----------------------------------------------------------------------
diff --git a/tutorial/_build/html/tutorial.html 
b/tutorial/_build/html/tutorial.html
deleted file mode 100644
index 049fd8a..0000000
--- a/tutorial/_build/html/tutorial.html
+++ /dev/null
@@ -1,495 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-
-
-<html xmlns="http://www.w3.org/1999/xhtml";>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Hello World! &mdash; Proton 0.9-alpha documentation</title>
-    
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '0.9-alpha',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="Proton 0.9-alpha documentation" href="index.html" />
-    <link rel="prev" title="Some Proton Examples" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="index.html" title="Some Proton Examples"
-             accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Proton 0.9-alpha documentation</a> 
&raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-          <div class="body">
-            
-  <div class="section" id="hello-world">
-<h1>Hello World!<a class="headerlink" href="#hello-world" title="Permalink to 
this headline">¶</a></h1>
-<p>Tradition dictates that we start with hello world! However rather than
-simply striving for the shortest program possible, we&#8217;ll aim for a
-more illustrative example while still restricting the functionality to
-sending and receiving a single message.</p>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
-<span class="kn">import</span> <span class="nn">proton_events</span>
-
-<span class="k">class</span> <span class="nc">HelloWorld</span><span 
class="p">(</span><span class="n">proton_events</span><span 
class="o">.</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">server</span><span class="p">,</span> <span 
class="n">address</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">address</span> <span class="o">=</span> <span class="n">address</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span> <span class="o">=</span> <span 
class="n">proton_events</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="n">server</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="bp">self</span><span class="p">)</span>
-
-    <span class="k">def</span> <span 
class="nf">on_connection_opened</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span><span class="o">.</span><span 
class="n">create_receiver</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">address</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">address</span><span class="p">)</span>
-
-    <span class="k">def</span> <span class="nf">on_credit</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span 
class="n">send_msg</span><span class="p">(</span><span 
class="n">Message</span><span class="p">(</span><span 
class="n">body</span><span class="o">=</span><span class="s">u&quot;Hello 
World!&quot;</span><span class="p">))</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">print</span> <span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-<span class="n">HelloWorld</span><span class="p">(</span><span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="s">&quot;examples&quot;</span><span class="p">)</span>
-<span class="n">proton_events</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-</pre></div>
-</td></tr></table></div>
-<p>This example uses proton in an event-driven or reactive manner. The
-flow of control is an &#8216;event loop&#8217;, where the events may be 
triggered
-by data arriving on a socket among other things and are then passed to
-relevant &#8216;handlers&#8217;. Applications are then structured as a set of
-defined handlers for events of interest; to be notified of a
-particular event, you define a class with an appropriately name method
-on it, inform the event loop of that method which then calls it
-whenever the event occurs.</p>
-<p>The class we define in this example, <tt class="docutils literal"><span 
class="pre">HelloWorld</span></tt>, has methods to
-handle three types of events.</p>
-<p>The first, <tt class="docutils literal"><span 
class="pre">on_connection_opened()</span></tt>, is called when the connection
-is opened, and when that occurs we create a receiver over which to
-receive our message and a sender over which to send it.</p>
-<p>The second method, <tt class="docutils literal"><span 
class="pre">on_credit()</span></tt>, is called when our sender has been
-issued by the peer with &#8216;credit&#8217;, allowing it to send messages. A
-credit based flow control mechanism like this ensures we only send
-messages when the recipient is ready and able to receive them. This is
-particularly important when the volume of messages might be large. In
-our case we are just going to send one message.</p>
-<p>The third and final method, <tt class="docutils literal"><span 
class="pre">on_message()</span></tt>, is called when a message
-arrives. Within that method we simply print the body of the message
-and then close the connection.</p>
-<p>This particular example assumes a broker (or similar service), which
-accepts connections and routes published messages to intended
-recipients. The constructor for the <tt class="docutils literal"><span 
class="pre">HelloWorld</span></tt> class takes the
-details of the broker to connect to, and the address through which the
-message is sent and received (for a broker this corresponds to a queue
-or topic name).</p>
-<p>After an instance of <tt class="docutils literal"><span 
class="pre">HelloWorld</span></tt> is constructed, the event loop is
-entered by the call to the <tt class="docutils literal"><span 
class="pre">run()</span></tt> method on the last line. This
-call will return only when the loop determines there are no more
-events possible (at which point our example program will then exit).</p>
-</div>
-<div class="section" id="hello-world-direct">
-<h1>Hello World, Direct!<a class="headerlink" href="#hello-world-direct" 
title="Permalink to this headline">¶</a></h1>
-<p>Though often used in conjunction with a broker, AMQP does not
-<em>require</em> this. It also allows senders and receivers can communicate
-directly if desired.</p>
-<p>Let&#8217;s modify our example to demonstrate this.</p>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
-<span class="kn">from</span> <span class="nn">proton_events</span> <span 
class="kn">import</span> <span class="n">ClientHandler</span><span 
class="p">,</span> <span class="n">EventLoop</span><span class="p">,</span> 
<span class="n">FlowController</span><span class="p">,</span> <span 
class="n">Handshaker</span><span class="p">,</span> <span 
class="n">IncomingMessageHandler</span>
-
-<span class="k">class</span> <span class="nc">HelloWorldReceiver</span><span 
class="p">(</span><span class="n">IncomingMessageHandler</span><span 
class="p">):</span>
-    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">print</span> <span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-<span class="k">class</span> <span class="nc">HelloWorld</span><span 
class="p">(</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">eventloop</span><span class="p">,</span> <span 
class="n">url</span><span class="p">,</span> <span 
class="n">address</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span> <span class="o">=</span> <span 
class="n">eventloop</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">acceptor</span> <span class="o">=</span> <span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">listen</span><span class="p">(</span><span class="n">url</span><span 
class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span> <span class="o">=</span> <span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span class="n">url</span><span 
class="p">,</span> <span class="n">handler</span><span class="o">=</span><span 
class="bp">self</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">address</span> <span class="o">=</span> <span class="n">address</span>
-
-    <span class="k">def</span> <span 
class="nf">on_connection_opened</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-<span class="hll">        <span class="bp">self</span><span 
class="o">.</span><span class="n">conn</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">address</span><span class="p">)</span>
-</span>
-    <span class="k">def</span> <span class="nf">on_credit</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span 
class="n">send_msg</span><span class="p">(</span><span 
class="n">Message</span><span class="p">(</span><span 
class="n">body</span><span class="o">=</span><span class="s">u&quot;Hello 
World!&quot;</span><span class="p">))</span>
-        <span class="n">event</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">on_accepted</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span><span class="o">.</span><span class="n">close</span><span 
class="p">()</span>
-
-    <span class="k">def</span> <span 
class="nf">on_connection_closed</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">acceptor</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">run</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-
-<span class="n">eventloop</span> <span class="o">=</span> <span 
class="n">EventLoop</span><span class="p">(</span><span 
class="n">HelloWorldReceiver</span><span class="p">(),</span> <span 
class="n">Handshaker</span><span class="p">(),</span> <span 
class="n">FlowController</span><span class="p">(</span><span 
class="mi">1</span><span class="p">))</span>
-<span class="hll"><span class="n">HelloWorld</span><span 
class="p">(</span><span class="n">eventloop</span><span class="p">,</span> 
<span class="s">&quot;localhost:8888&quot;</span><span class="p">,</span> <span 
class="s">&quot;examples&quot;</span><span class="p">)</span><span 
class="o">.</span><span class="n">run</span><span class="p">()</span>
-</span></pre></div>
-</td></tr></table></div>
-<p>The first difference, on line 17, is that rather than creating a
-receiver on the same connection as our sender, we listen for incoming
-connections by invoking the <tt class="docutils literal"><span 
class="pre">listen()</span> <span class="pre">method</span> <span 
class="pre">on</span> <span class="pre">the</span> <span 
class="pre">``EventLoop</span></tt>
-instance.</p>
-<p>Another difference is that the <tt class="docutils literal"><span 
class="pre">EventLoop</span></tt> instance we use is not
-the default instance as was used in the original example, but one we
-construct ourselves on line 38, passing in some event handlers. The
-first of these is <tt class="docutils literal"><span 
class="pre">HelloWorldReceiver</span></tt>, as used in the original
-example. We pass it to the event loop, because we aren&#8217;t going to
-directly create the receiver here ourselves. Rather we will accept an
-incoming connection on which the message will be received. This
-handler would then be notified of any incoming message event on any of
-the connections the event loop controls. As well as our own handler, we
-specify a couple of useful handlers from the <tt class="docutils 
literal"><span class="pre">proton_events</span></tt>
-toolkit. The <tt class="docutils literal"><span 
class="pre">Handshaker</span></tt> handler will ensure our server follows the
-basic handshaking rules laid down by the protocol. The
-<tt class="docutils literal"><span class="pre">FlowController</span></tt> will 
issue credit for incoming messages. We won&#8217;t
-worry about them in more detail than that for now.</p>
-<p>The last difference is that we close the <tt class="docutils literal"><span 
class="pre">acceptor</span></tt> returned from
-the <tt class="docutils literal"><span class="pre">listen()</span></tt> call 
as part of the handling of the connection close
-event (line 33).</p>
-<p>So now we have our example working without a broker involved!</p>
-</div>
-<div class="section" id="the-basics">
-<h1>The Basics<a class="headerlink" href="#the-basics" title="Permalink to 
this headline">¶</a></h1>
-<p>TODO: These examples show reliable (at-least-once) send and receive
-with reconnect ability. Need to write some explanation. Could also do
-with some further cleanup.</p>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">import</span> <span class="nn">proton_events</span>
-
-<span class="k">class</span> <span class="nc">Recv</span><span 
class="p">(</span><span class="n">proton_events</span><span 
class="o">.</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">print</span> <span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span>
-
-<span class="k">try</span><span class="p">:</span>
-    <span class="n">conn</span> <span class="o">=</span> <span 
class="n">proton_events</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="n">Recv</span><span class="p">())</span>
-    <span class="n">conn</span><span class="o">.</span><span 
class="n">create_receiver</span><span class="p">(</span><span 
class="s">&quot;examples&quot;</span><span class="p">)</span>
-    <span class="n">proton_events</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
-</pre></div>
-</td></tr></table></div>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
-<span class="kn">import</span> <span class="nn">proton_events</span>
-
-<span class="k">class</span> <span class="nc">Send</span><span 
class="p">(</span><span class="n">proton_events</span><span 
class="o">.</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">messages</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">=</span> <span class="mi">0</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">confirmed</span> <span class="o">=</span> <span class="mi">0</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span> <span class="o">=</span> <span class="n">messages</span>
-
-    <span class="k">def</span> <span class="nf">on_credit</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">while</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">credit</span> <span class="ow">and</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">sent</span> <span 
class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span><span class="p">:</span>
-            <span class="n">msg</span> <span class="o">=</span> <span 
class="n">Message</span><span class="p">(</span><span 
class="n">body</span><span class="o">=</span><span class="p">{</span><span 
class="s">&#39;sequence&#39;</span><span class="p">:(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sent</span><span 
class="o">+</span><span class="mi">1</span><span class="p">)})</span>
-            <span class="n">event</span><span class="o">.</span><span 
class="n">link</span><span class="o">.</span><span 
class="n">send_msg</span><span class="p">(</span><span 
class="n">msg</span><span class="p">)</span>
-            <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">+=</span> <span class="mi">1</span>
-
-    <span class="k">def</span> <span class="nf">on_accepted</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">confirmed</span> <span class="o">+=</span> <span class="mi">1</span>
-        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">confirmed</span> <span class="o">==</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">total</span><span class="p">:</span>
-            <span class="k">print</span> <span class="s">&quot;all messages 
confirmed&quot;</span>
-            <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">on_disconnected</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">confirmed</span>
-
-<span class="k">try</span><span class="p">:</span>
-    <span class="n">conn</span> <span class="o">=</span> <span 
class="n">proton_events</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="n">Send</span><span class="p">(</span><span class="mi">10000</span><span 
class="p">))</span>
-    <span class="n">conn</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="s">&quot;examples&quot;</span><span class="p">)</span>
-    <span class="n">proton_events</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
-</pre></div>
-</td></tr></table></div>
-</div>
-<div class="section" id="request-response">
-<h1>Request/Response<a class="headerlink" href="#request-response" 
title="Permalink to this headline">¶</a></h1>
-<p>A common pattern is to send a request message and expect a response
-message in return. AMQP has special support for this pattern. Let&#8217;s
-have a look at a simple example. We&#8217;ll start with the 
&#8216;server&#8217;,
-i.e. the program that will process the request and send the
-response. Note that we are still using a broker in this example.</p>
-<p>Our server will provide a very simple service: it will respond with
-the body of the request converted to uppercase.</p>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
-<span class="kn">from</span> <span class="nn">proton_events</span> <span 
class="kn">import</span> <span class="n">EventLoop</span><span 
class="p">,</span> <span class="n">ClientHandler</span>
-
-<span class="k">class</span> <span class="nc">Server</span><span 
class="p">(</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">eventloop</span><span class="p">,</span> <span 
class="n">host</span><span class="p">,</span> <span 
class="n">address</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span> <span class="o">=</span> <span 
class="n">eventloop</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span> <span class="o">=</span> <span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="n">host</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="bp">self</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">receiver</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="o">.</span><span class="n">create_receiver</span><span 
class="p">(</span><span class="n">address</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="bp">self</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span> <span class="o">=</span> <span class="p">{}</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">relay</span> <span class="o">=</span> <span class="bp">None</span>
-
-    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">relay</span>
-        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">sender</span><span class="p">:</span>
-            <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">)</span>
-        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">sender</span><span class="p">:</span>
-            <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="o">.</span><span class="n">create_sender</span><span 
class="p">(</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">)</span>
-            <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="p">[</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">]</span> <span class="o">=</span> 
<span class="n">sender</span>
-        <span class="n">sender</span><span class="o">.</span><span 
class="n">send_msg</span><span class="p">(</span><span 
class="n">Message</span><span class="p">(</span><span 
class="n">address</span><span class="o">=</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">,</span> <span 
class="n">body</span><span class="o">=</span><span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span><span class="o">.</span><span class="n">upper</span><span 
class="p">()))</span>
-
-    <span class="k">def</span> <span 
class="nf">on_connection_opened</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">connection</span><span 
class="o">.</span><span class="n">remote_offered_capabilities</span> <span 
class="ow">and</span> <span class="s">&#39;ANONYMOUS-RELAY&#39;</span> <span 
class="ow">in</span> <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">remote_offered_capabilities</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span 
class="n">relay</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="o">.</span><span class="n">create_sender</span><span 
class="p">(</span><span class="bp">None</span><span class="p">)</span>
-
-    <span class="k">def</span> <span class="nf">run</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-
-<span class="k">try</span><span class="p">:</span>
-    <span class="n">Server</span><span class="p">(</span><span 
class="n">EventLoop</span><span class="p">(),</span> <span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="s">&quot;examples&quot;</span><span class="p">)</span><span 
class="o">.</span><span class="n">run</span><span class="p">()</span>
-<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
-</pre></div>
-</td></tr></table></div>
-<p>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&#8217;ll cache
-the senders incase we get further requests wit the same reply-to.</p>
-<p>Now let&#8217;s create a simple client to test this service out.</p>
-<div class="highlight-python"><table class="highlighttable"><tr><td 
class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
-<span class="kn">from</span> <span class="nn">proton_events</span> <span 
class="kn">import</span> <span class="n">EventLoop</span><span 
class="p">,</span> <span class="n">ClientHandler</span>
-
-<span class="k">class</span> <span class="nc">Client</span><span 
class="p">(</span><span class="n">ClientHandler</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">eventloop</span><span class="p">,</span> <span 
class="n">host</span><span class="p">,</span> <span 
class="n">address</span><span class="p">,</span> <span 
class="n">requests</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span> <span class="o">=</span> <span 
class="n">eventloop</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span> <span class="o">=</span> <span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="n">host</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="o">.</span><span class="n">create_sender</span><span 
class="p">(</span><span class="n">address</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">receiver</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="o">.</span><span class="n">create_receiver</span><span 
class="p">(</span><span class="bp">None</span><span class="p">,</span> <span 
class="n">dynamic</span><span class="o">=</span><span 
class="bp">True</span><span class="p">,</span> <span 
class="n">handler</span><span class="o">=</span><span 
class="bp">self</span><span class="p">)</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">requests</span> <span class="o">=</span> <span 
class="n">requests</span>
-
-    <span class="k">def</span> <span class="nf">next_request</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="n">req</span> <span class="o">=</span> <span 
class="n">Message</span><span class="p">(</span><span 
class="n">reply_to</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">receiver</span><span class="o">.</span><span 
class="n">remote_source</span><span class="o">.</span><span 
class="n">address</span><span class="p">,</span> <span 
class="n">body</span><span class="o">=</span><span class="bp">self</span><span 
class="o">.</span><span class="n">requests</span><span class="p">[</span><span 
class="mi">0</span><span class="p">])</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span 
class="n">send_msg</span><span class="p">(</span><span 
class="n">req</span><span class="p">)</span>
-
-    <span class="k">def</span> <span class="nf">on_link_opened</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">next_request</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
-        <span class="k">print</span> <span class="s">&quot;</span><span 
class="si">%s</span><span class="s"> =&gt; </span><span 
class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> 
<span class="p">(</span><span class="bp">self</span><span 
class="o">.</span><span class="n">requests</span><span class="o">.</span><span 
class="n">pop</span><span class="p">(</span><span class="mi">0</span><span 
class="p">),</span> <span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">body</span><span class="p">)</span>
-        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">requests</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span 
class="n">next_request</span><span class="p">()</span>
-        <span class="k">else</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span><span class="o">.</span><span class="n">close</span><span 
class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">run</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">eventloop</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-
-<span class="n">REQUESTS</span><span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;Twas brillig, and the slithy 
toves&quot;</span><span class="p">,</span>
-           <span class="s">&quot;Did gire and gymble in the 
wabe.&quot;</span><span class="p">,</span>
-           <span class="s">&quot;All mimsy were the 
borogroves,&quot;</span><span class="p">,</span>
-           <span class="s">&quot;And the mome raths 
outgrabe.&quot;</span><span class="p">]</span>
-
-<span class="n">Client</span><span class="p">(</span><span 
class="n">EventLoop</span><span class="p">(),</span> <span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="s">&quot;examples&quot;</span><span class="p">,</span> <span 
class="n">REQUESTS</span><span class="p">)</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
-</pre></div>
-</td></tr></table></div>
-<p>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&#8217;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.</p>
-<p>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 <tt class="docutils literal"><span 
class="pre">on_link_remote_open()</span></tt> method to
-our receiver&#8217;s handler, and use that as the trigger to send our first
-request.</p>
-</div>
-
-
-          </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="index.html" title="Some Proton Examples"
-             >previous</a> |</li>
-        <li><a href="index.html">Proton 0.9-alpha documentation</a> 
&raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2014, Apache Qpid.
-      Created using <a href="http://sphinx.pocoo.org/";>Sphinx</a> 1.1.3.
-    </div>
-  </body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/abstract_server.py
----------------------------------------------------------------------
diff --git a/tutorial/abstract_server.py b/tutorial/abstract_server.py
deleted file mode 100644
index 2d0de32..0000000
--- a/tutorial/abstract_server.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton_server import Server
-
-class Application(Server):
-    def __init__(self, host, address):
-        super(Application, self).__init__(host, address)
-
-    def on_request(self, request, reply_to):
-        response = request.upper()
-        self.send(response, reply_to)
-        print "Request from: %s" % reply_to
-
-try:
-    Application("localhost:5672", "examples").run()
-except KeyboardInterrupt: pass
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/client.py
----------------------------------------------------------------------
diff --git a/tutorial/client.py b/tutorial/client.py
deleted file mode 100755
index a649dec..0000000
--- a/tutorial/client.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton.reactors import EventLoop
-
-class Client(MessagingHandler):
-    def __init__(self, host, address, requests):
-        super(Client, self).__init__()
-        self.host = host
-        self.address = address
-        self.requests = requests
-
-    def on_start(self, event):
-        self.conn = event.reactor.connect(self.host)
-        self.sender = self.conn.create_sender(self.address)
-        self.receiver = self.conn.create_receiver(None, dynamic=True)
-
-    def next_request(self):
-        if self.receiver.remote_source.address:
-            req = Message(reply_to=self.receiver.remote_source.address, 
body=self.requests[0])
-            self.sender.send_msg(req)
-
-    def on_link_opened(self, event):
-        if event.receiver == self.receiver:
-            self.next_request()
-
-    def on_message(self, event):
-        print "%s => %s" % (self.requests.pop(0), event.message.body)
-        if self.requests:
-            self.next_request()
-        else:
-            self.conn.close()
-
-REQUESTS= ["Twas brillig, and the slithy toves",
-           "Did gire and gymble in the wabe.",
-           "All mimsy were the borogroves,",
-           "And the mome raths outgrabe."]
-
-EventLoop(Client("localhost:5672", "examples", REQUESTS)).run()
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/client_http.py
----------------------------------------------------------------------
diff --git a/tutorial/client_http.py b/tutorial/client_http.py
deleted file mode 100755
index ab7b1cd..0000000
--- a/tutorial/client_http.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton_tornado import TornadoLoop
-from tornado.ioloop import IOLoop
-import tornado.web
-
-class Client(MessagingHandler):
-    def __init__(self, host, address):
-        super(Client, self).__init__()
-        self.host = host
-        self.address = address
-        self.sent = []
-        self.pending = []
-        self.reply_address = None
-        self.sender = None
-        self.receiver = None
-
-    def on_start(self, event):
-        context = event.reactor.connect(self.host)
-        self.sender = context.create_sender(self.address)
-        self.receiver = context.create_receiver(None, dynamic=True)
-
-    def on_link_opened(self, event):
-        if event.receiver == self.receiver:
-            self.reply_address = event.link.remote_source.address
-            self.do_request()
-
-    def on_credit(self, event):
-        self.do_request()
-
-    def on_message(self, event):
-        if self.sent:
-            request, handler = self.sent.pop(0)
-            print "%s => %s" % (request, event.message.body)
-            handler(event.message.body)
-            self.do_request()
-
-    def do_request(self):
-        if self.pending and self.reply_address and self.sender.credit:
-            request, handler = self.pending.pop(0)
-            self.sent.append((request, handler))
-            req = Message(reply_to=self.reply_address, body=request)
-            self.sender.send_msg(req)
-
-    def request(self, body, handler):
-        self.pending.append((body, handler))
-        self.do_request()
-
-class ExampleHandler(tornado.web.RequestHandler):
-    def initialize(self, client):
-        self.client = client
-
-    def get(self):
-        self._write_open()
-        self._write_form()
-        self._write_close()
-
-    @tornado.web.asynchronous
-    def post(self):
-        client.request(self.get_body_argument("message"), lambda x: 
self.on_response(x))
-
-    def on_response(self, body):
-        self.set_header("Content-Type", "text/html")
-        self._write_open()
-        self._write_form()
-        self.write("Response: " + body)
-        self._write_close()
-        self.finish()
-
-    def _write_open(self):
-        self.write('<html><body>')
-
-    def _write_close(self):
-        self.write('</body></html>')
-
-    def _write_form(self):
-        self.write('<form action="/client" method="POST">'
-                   'Request: <input type="text" name="message">'
-                   '<input type="submit" value="Submit">'
-                   '</form>')
-
-
-client = Client("localhost:5672", "examples")
-loop = TornadoLoop(client)
-app = tornado.web.Application([tornado.web.url(r"/client", ExampleHandler, 
dict(client=client))])
-app.listen(8888)
-try:
-    loop.run()
-except KeyboardInterrupt:
-    loop.stop()

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/conf.py
----------------------------------------------------------------------
diff --git a/tutorial/conf.py b/tutorial/conf.py
deleted file mode 100644
index 8644399..0000000
--- a/tutorial/conf.py
+++ /dev/null
@@ -1,242 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Proton documentation build configuration file, created by
-# sphinx-quickstart on Thu Jul 31 10:31:05 2014.
-#
-# This file is execfile()d with the current directory set to its containing 
dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-# -- General configuration 
-----------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be 
extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = []
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'Proton'
-copyright = u'2014, Apache Qpid'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '0.9'
-# The full version, including alpha/beta/rc tags.
-release = '0.9-alpha'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all 
documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output 
---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-html_theme_options = {'nosidebar':'true'}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'Protondoc'
-
-
-# -- Options for LaTeX output 
--------------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass 
[howto/manual]).
-latex_documents = [
-  ('index', 'Proton.tex', u'Proton Documentation',
-   u'Apache Qpid', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output 
--------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    ('index', 'proton', u'Proton Documentation',
-     [u'Apache Qpid'], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output 
------------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
-texinfo_documents = [
-  ('index', 'Proton', u'Proton Documentation',
-   u'Apache Qpid', 'Proton', 'One line description of project.',
-   'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/db_common.py
----------------------------------------------------------------------
diff --git a/tutorial/db_common.py b/tutorial/db_common.py
deleted file mode 100644
index 584c15a..0000000
--- a/tutorial/db_common.py
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-import Queue
-import sqlite3
-import threading
-
-class Db(object):
-    def __init__(self, db, events):
-        self.db = db
-        self.events = events
-        self.tasks = Queue.Queue()
-        self.position = None
-        self.pending_events = []
-        self.thread = threading.Thread(target=self._process)
-        self.thread.daemon=True
-        self.thread.start()
-
-    def reset(self):
-        self.tasks.put(lambda conn: self._reset())
-
-    def load(self, records, event=None):
-        self.tasks.put(lambda conn: self._load(conn, records, event))
-
-    def insert(self, id, data, event=None):
-        self.tasks.put(lambda conn: self._insert(conn, id, data, event))
-
-    def delete(self, id, event=None):
-        self.tasks.put(lambda conn: self._delete(conn, id, event))
-
-    def _reset(self, ignored=None):
-        self.position = None
-
-    def _load(self, conn, records, event):
-        if self.position:
-            cursor = conn.execute("SELECT * FROM records WHERE id > ? ORDER BY 
id", (self.position,))
-        else:
-            cursor = conn.execute("SELECT * FROM records ORDER BY id")
-        while not records.full():
-            row = cursor.fetchone()
-            if row:
-                self.position = row['id']
-                records.put(dict(row))
-            else:
-                break
-        if event:
-            self.events.trigger(event)
-
-    def _insert(self, conn, id, data, event):
-        if id:
-            conn.execute("INSERT INTO records(id, description) VALUES (?, ?)", 
(id, data))
-        else:
-            conn.execute("INSERT INTO records(description) VALUES (?)", 
(data,))
-        if event:
-            self.pending_events.append(event)
-
-    def _delete(self, conn, id, event):
-        conn.execute("DELETE FROM records WHERE id=?", (id,))
-        if event:
-            self.pending_events.append(event)
-
-    def _process(self):
-        conn = sqlite3.connect(self.db)
-        conn.row_factory = sqlite3.Row
-        with conn:
-            while True:
-                f = self.tasks.get(True)
-                try:
-                    while True:
-                        f(conn)
-                        f = self.tasks.get(False)
-                except Queue.Empty: pass
-                conn.commit()
-                for event in self.pending_events:
-                    self.events.trigger(event)
-                self.pending_events = []

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/db_ctrl.py
----------------------------------------------------------------------
diff --git a/tutorial/db_ctrl.py b/tutorial/db_ctrl.py
deleted file mode 100755
index b28e0eb..0000000
--- a/tutorial/db_ctrl.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-import sqlite3
-import sys
-
-if len(sys.argv) < 3:
-    print "Usage: %s [init|insert|list] db" % sys.argv[0]
-else:
-    conn = sqlite3.connect(sys.argv[2])
-    with conn:
-        if sys.argv[1] == "init":
-            conn.execute("DROP TABLE IF EXISTS records")
-            conn.execute("CREATE TABLE records(id INTEGER PRIMARY KEY 
AUTOINCREMENT, description TEXT)")
-            conn.commit()
-        elif sys.argv[1] == "list":
-            cursor = conn.cursor()
-            cursor.execute("SELECT * FROM records")
-            rows = cursor.fetchall()
-            for r in rows:
-                print r
-        elif sys.argv[1] == "insert":
-            while True:
-                l = sys.stdin.readline()
-                if not l: break
-                conn.execute("INSERT INTO records(description) VALUES (?)", 
(l.rstrip(),))
-            conn.commit()
-        else:
-            print "Unrecognised command: %s" %  sys.argv[1]

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/db_recv.py
----------------------------------------------------------------------
diff --git a/tutorial/db_recv.py b/tutorial/db_recv.py
deleted file mode 100755
index 5779403..0000000
--- a/tutorial/db_recv.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton.handlers import MessagingHandler
-from proton.reactors import ApplicationEvent, EventLoop
-from db_common import Db
-
-class Recv(MessagingHandler):
-    def __init__(self, host, address):
-        super(Recv, self).__init__(auto_accept=False)
-        self.host = host
-        self.address = address
-        self.delay = 0
-        # TODO: load last tag from db
-        self.last_id = None
-
-    def on_start(self, event):
-        self.db = Db("dst_db", event.reactor.get_event_trigger())
-        context = event.reactor.connect(self.host)
-        context.create_receiver(self.address)
-
-    def on_record_inserted(self, event):
-        self.accept(event.delivery)
-
-    def on_message(self, event):
-        id = int(event.message.id)
-        if (not self.last_id) or id > self.last_id:
-            self.last_id = id
-            self.db.insert(id, event.message.body, 
ApplicationEvent("record_inserted", delivery=event.delivery))
-            print "inserted message %s" % id
-        else:
-            self.accept(event.delivery)
-
-try:
-    EventLoop(Recv("localhost:5672", "examples")).run()
-except KeyboardInterrupt: pass
-
-
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/db_send.py
----------------------------------------------------------------------
diff --git a/tutorial/db_send.py b/tutorial/db_send.py
deleted file mode 100755
index b3a26fd..0000000
--- a/tutorial/db_send.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-import Queue
-import time
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton.reactors import ApplicationEvent, EventLoop
-from db_common import Db
-
-class Send(MessagingHandler):
-    def __init__(self, host, address):
-        super(Send, self).__init__()
-        self.host = host
-        self.address = address
-        self.delay = 0
-        self.sent = 0
-        self.records = Queue.Queue(maxsize=50)
-
-    def on_start(self, event):
-        self.eventloop = event.reactor
-        self.db = Db("src_db", event.reactor.get_event_trigger())
-        context = event.reactor.connect(self.host)
-        self.sender = context.create_sender(self.address)
-
-    def on_records_loaded(self, event):
-        if self.records.empty() and event.subject == self.sent:
-            print "Exhausted available data, waiting to recheck..."
-            # check for new data after 5 seconds
-            self.eventloop.schedule(time.time() + 5, link=self.sender, 
subject="data")
-        else:
-            self.send()
-
-    def request_records(self):
-        if not self.records.full():
-            self.db.load(self.records, 
event=ApplicationEvent("records_loaded", link=self.sender, subject=self.sent))
-
-    def on_credit(self, event):
-        self.send()
-
-    def send(self):
-        while self.sender.credit and not self.records.empty():
-            record = self.records.get(False)
-            id = record['id']
-            self.sender.send_msg(Message(id=id, durable=True, 
body=record['description']), tag=str(id))
-            self.sent += 1
-            print "sent message %s" % id
-        self.request_records()
-
-    def on_settled(self, event):
-        id = int(event.delivery.tag)
-        self.db.delete(id)
-        print "settled message %s" % id
-
-    def on_disconnected(self, event):
-        self.db.reset()
-
-    def on_timer(self, event):
-        if event.subject == "data":
-            print "Rechecking for data..."
-            self.request_records()
-
-try:
-    EventLoop(Send("localhost:5672", "examples")).run()
-except KeyboardInterrupt: pass
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/helloworld.py
----------------------------------------------------------------------
diff --git a/tutorial/helloworld.py b/tutorial/helloworld.py
deleted file mode 100755
index 5aa1482..0000000
--- a/tutorial/helloworld.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton.reactors import EventLoop
-
-class HelloWorld(MessagingHandler):
-    def __init__(self, server, address):
-        super(HelloWorld, self).__init__()
-        self.server = server
-        self.address = address
-
-    def on_start(self, event):
-        ctxt = event.reactor.connect(self.server)
-        ctxt.create_receiver(self.address)
-        ctxt.create_sender(self.address)
-
-    def on_credit(self, event):
-        event.sender.send_msg(Message(body=u"Hello World!"))
-        event.sender.close()
-
-    def on_message(self, event):
-        print event.message.body
-        event.connection.close()
-
-EventLoop(HelloWorld("localhost:5672", "examples")).run()
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/helloworld_blocking.py
----------------------------------------------------------------------
diff --git a/tutorial/helloworld_blocking.py b/tutorial/helloworld_blocking.py
deleted file mode 100755
index 9c5e062..0000000
--- a/tutorial/helloworld_blocking.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.utils import BlockingConnection
-from proton.handlers import IncomingMessageHandler
-
-class HelloWorldReceiver(IncomingMessageHandler):
-    def on_message(self, event):
-        print event.message.body
-        event.connection.close()
-
-conn = BlockingConnection("localhost:5672")
-conn.create_receiver("examples", handler=HelloWorldReceiver())
-sender = conn.create_sender("examples")
-sender.send_msg(Message(body=u"Hello World!"));
-conn.run()
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/helloworld_direct.py
----------------------------------------------------------------------
diff --git a/tutorial/helloworld_direct.py b/tutorial/helloworld_direct.py
deleted file mode 100755
index 35ac597..0000000
--- a/tutorial/helloworld_direct.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton.reactors import EventLoop
-
-class HelloWorld(MessagingHandler):
-    def __init__(self, server, address):
-        super(HelloWorld, self).__init__()
-        self.server = server
-        self.address = address
-
-    def on_start(self, event):
-        self.acceptor = event.reactor.listen(self.server)
-        ctxt = event.reactor.connect(self.server)
-        ctxt.create_sender(self.address)
-
-    def on_credit(self, event):
-        event.sender.send_msg(Message(body=u"Hello World!"))
-        event.sender.close()
-
-    def on_message(self, event):
-        print event.message.body
-
-    def on_accepted(self, event):
-        event.connection.close()
-
-    def on_connection_closed(self, event):
-        self.acceptor.close()
-
-EventLoop(HelloWorld("localhost:8888", "examples")).run()

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/helloworld_direct_tornado.py
----------------------------------------------------------------------
diff --git a/tutorial/helloworld_direct_tornado.py 
b/tutorial/helloworld_direct_tornado.py
deleted file mode 100755
index 45926c6..0000000
--- a/tutorial/helloworld_direct_tornado.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton_tornado import TornadoLoop
-
-class HelloWorld(MessagingHandler):
-    def __init__(self, server, address):
-        super(HelloWorld, self).__init__()
-        self.server = server
-        self.address = address
-
-    def on_start(self, event):
-        self.eventloop = event.reactor
-        self.acceptor = event.reactor.listen(self.server)
-        ctxt = event.reactor.connect(self.server)
-        ctxt.create_sender(self.address)
-
-    def on_credit(self, event):
-        event.sender.send_msg(Message(body=u"Hello World!"))
-        event.sender.close()
-
-    def on_message(self, event):
-        print event.message.body
-
-    def on_accepted(self, event):
-        event.connection.close()
-
-    def on_connection_closed(self, event):
-        self.acceptor.close()
-        self.eventloop.stop()
-
-TornadoLoop(HelloWorld("localhost:8888", "examples")).run()
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/helloworld_tornado.py
----------------------------------------------------------------------
diff --git a/tutorial/helloworld_tornado.py b/tutorial/helloworld_tornado.py
deleted file mode 100755
index 6a82b69..0000000
--- a/tutorial/helloworld_tornado.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.handlers import MessagingHandler
-from proton_tornado import TornadoLoop
-
-class HelloWorld(MessagingHandler):
-    def __init__(self, server, address):
-        super(HelloWorld, self).__init__()
-        self.server = server
-        self.address = address
-
-    def on_start(self, event):
-        self.eventloop = event.reactor
-        ctxt = event.reactor.connect(self.server)
-        ctxt.create_receiver(self.address)
-        ctxt.create_sender(self.address)
-
-    def on_credit(self, event):
-        event.sender.send_msg(Message(body=u"Hello World!"))
-        event.sender.close()
-
-    def on_message(self, event):
-        print event.message.body
-        event.connection.close()
-
-    def on_connection_closed(self, event):
-        self.eventloop.stop()
-
-TornadoLoop(HelloWorld("localhost:5672", "examples")).run()
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/index.rst
----------------------------------------------------------------------
diff --git a/tutorial/index.rst b/tutorial/index.rst
deleted file mode 100644
index d5f5b76..0000000
--- a/tutorial/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. 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
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/make.bat
----------------------------------------------------------------------
diff --git a/tutorial/make.bat b/tutorial/make.bat
deleted file mode 100644
index 55ed870..0000000
--- a/tutorial/make.bat
+++ /dev/null
@@ -1,190 +0,0 @@
-@ECHO OFF
-
-REM Command file for Sphinx documentation
-
-if "%SPHINXBUILD%" == "" (
-       set SPHINXBUILD=sphinx-build
-)
-set BUILDDIR=_build
-set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
-set I18NSPHINXOPTS=%SPHINXOPTS% .
-if NOT "%PAPER%" == "" (
-       set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
-       set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
-)
-
-if "%1" == "" goto help
-
-if "%1" == "help" (
-       :help
-       echo.Please use `make ^<target^>` where ^<target^> is one of
-       echo.  html       to make standalone HTML files
-       echo.  dirhtml    to make HTML files named index.html in directories
-       echo.  singlehtml to make a single large HTML file
-       echo.  pickle     to make pickle files
-       echo.  json       to make JSON files
-       echo.  htmlhelp   to make HTML files and a HTML help project
-       echo.  qthelp     to make HTML files and a qthelp project
-       echo.  devhelp    to make HTML files and a Devhelp project
-       echo.  epub       to make an epub
-       echo.  latex      to make LaTeX files, you can set PAPER=a4 or 
PAPER=letter
-       echo.  text       to make text files
-       echo.  man        to make manual pages
-       echo.  texinfo    to make Texinfo files
-       echo.  gettext    to make PO message catalogs
-       echo.  changes    to make an overview over all changed/added/deprecated 
items
-       echo.  linkcheck  to check all external links for integrity
-       echo.  doctest    to run all doctests embedded in the documentation if 
enabled
-       goto end
-)
-
-if "%1" == "clean" (
-       for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
-       del /q /s %BUILDDIR%\*
-       goto end
-)
-
-if "%1" == "html" (
-       %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The HTML pages are in %BUILDDIR%/html.
-       goto end
-)
-
-if "%1" == "dirhtml" (
-       %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
-       goto end
-)
-
-if "%1" == "singlehtml" (
-       %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
-       goto end
-)
-
-if "%1" == "pickle" (
-       %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished; now you can process the pickle files.
-       goto end
-)
-
-if "%1" == "json" (
-       %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished; now you can process the JSON files.
-       goto end
-)
-
-if "%1" == "htmlhelp" (
-       %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished; now you can run HTML Help Workshop with the ^
-.hhp project file in %BUILDDIR%/htmlhelp.
-       goto end
-)
-
-if "%1" == "qthelp" (
-       %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished; now you can run "qcollectiongenerator" with the ^
-.qhcp project file in %BUILDDIR%/qthelp, like this:
-       echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Proton.qhcp
-       echo.To view the help file:
-       echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Proton.ghc
-       goto end
-)
-
-if "%1" == "devhelp" (
-       %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished.
-       goto end
-)
-
-if "%1" == "epub" (
-       %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The epub file is in %BUILDDIR%/epub.
-       goto end
-)
-
-if "%1" == "latex" (
-       %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
-       goto end
-)
-
-if "%1" == "text" (
-       %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The text files are in %BUILDDIR%/text.
-       goto end
-)
-
-if "%1" == "man" (
-       %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The manual pages are in %BUILDDIR%/man.
-       goto end
-)
-
-if "%1" == "texinfo" (
-       %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
-       goto end
-)
-
-if "%1" == "gettext" (
-       %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
-       goto end
-)
-
-if "%1" == "changes" (
-       %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.The overview file is in %BUILDDIR%/changes.
-       goto end
-)
-
-if "%1" == "linkcheck" (
-       %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Link check complete; look for any errors in the above output ^
-or in %BUILDDIR%/linkcheck/output.txt.
-       goto end
-)
-
-if "%1" == "doctest" (
-       %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
-       if errorlevel 1 exit /b 1
-       echo.
-       echo.Testing of doctests in the sources finished, look at the ^
-results in %BUILDDIR%/doctest/output.txt.
-       goto end
-)
-
-:end

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/proton_server.py
----------------------------------------------------------------------
diff --git a/tutorial/proton_server.py b/tutorial/proton_server.py
deleted file mode 100644
index b2e2027..0000000
--- a/tutorial/proton_server.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton import Message
-from proton.reactors import EventLoop
-from proton.handlers import FlowController, IncomingMessageHandler
-
-class Server(IncomingMessageHandler):
-    def __init__(self, host, address):
-        super(Server, self).__init__()
-        self.eventloop = EventLoop(self, FlowController(10))
-        self.conn = self.eventloop.connect(host)
-        self.receiver = self.conn.create_receiver(address)
-        self.senders = {}
-        self.relay = None
-
-    def on_message(self, event):
-        self.on_request(event.message.body, event.message.reply_to)
-
-    def on_connection_open(self, event):
-        if event.connection.remote_offered_capabilities and "ANONYMOUS-RELAY" 
in event.connection.remote_offered_capabilities:
-            self.relay = self.conn.create_sender(None)
-
-    def on_connection_close(self, endpoint, error):
-        if error: print "Closed due to %s" % error
-        self.conn.close()
-
-    def run(self):
-        self.eventloop.run()
-
-    def send(self, response, reply_to):
-        sender = self.relay
-        if not sender:
-            sender = self.senders.get(reply_to)
-        if not sender:
-            sender = self.conn.create_sender(reply_to)
-            self.senders[reply_to] = sender
-        msg = Message(body=response)
-        if self.relay:
-            msg.address = reply_to
-        sender.send_msg(msg)
-
-    def on_request(self, request, reply_to):
-        pass
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d4b154cb/tutorial/proton_tornado.py
----------------------------------------------------------------------
diff --git a/tutorial/proton_tornado.py b/tutorial/proton_tornado.py
deleted file mode 100644
index e49b28e..0000000
--- a/tutorial/proton_tornado.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from proton.reactors import ApplicationEvent, EventLoop, StartEvent
-import tornado.ioloop
-
-class TornadoLoop(EventLoop):
-    def __init__(self, *handlers):
-        super(TornadoLoop, self).__init__(*handlers)
-        self.loop = tornado.ioloop.IOLoop.current()
-
-    def connect(self, url=None, urls=None, address=None, handler=None, 
reconnect=None):
-        conn = super(TornadoLoop, self).connect(url, urls, address, handler, 
reconnect)
-        self.events.process()
-        return conn
-
-    def schedule(self, deadline, connection=None, session=None, link=None, 
delivery=None, subject=None):
-        self.loop.call_at(deadline, self.events.dispatch, 
ApplicationEvent("timer", connection, session, link, delivery, subject))
-
-    def add(self, conn):
-        self.loop.add_handler(conn, self._connection_ready, 
tornado.ioloop.IOLoop.READ | tornado.ioloop.IOLoop.WRITE)
-
-    def remove(self, conn):
-        self.loop.remove_handler(conn)
-
-    def run(self):
-        self.events.dispatch(StartEvent(self))
-        self.loop.start()
-
-    def stop(self):
-        self.loop.stop()
-
-    def _get_event_flags(self, conn):
-        flags = 0
-        if conn.reading():
-            flags |= tornado.ioloop.IOLoop.READ
-        # FIXME: need way to update flags to avoid busy loop
-        #if conn.writing():
-        #    flags |= tornado.ioloop.IOLoop.WRITE
-        flags |= tornado.ioloop.IOLoop.WRITE
-        return flags
-
-    def _connection_ready(self, conn, events):
-        if events & tornado.ioloop.IOLoop.READ:
-            conn.readable()
-        if events & tornado.ioloop.IOLoop.WRITE:
-            conn.writable()
-        if events & tornado.ioloop.IOLoop.ERROR:# or conn.closed():
-            self.loop.remove_handler(conn)
-            conn.close()
-            conn.removed()
-        self.events.process()
-        self.loop.update_handler(conn, self._get_event_flags(conn))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to