summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-01-29 12:33:15 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-01-29 12:33:15 (GMT)
commit54a231d5397bda24257f253eb1aaabf1b741a0b5 (patch)
tree028602e0d21841373ec0de59a5429790d12ef3a1
parent47bbea712415e79ee224d21e518470ec70477d41 (diff)
downloadcpython-54a231d5397bda24257f253eb1aaabf1b741a0b5.zip
cpython-54a231d5397bda24257f253eb1aaabf1b741a0b5.tar.gz
cpython-54a231d5397bda24257f253eb1aaabf1b741a0b5.tar.bz2
asyncio doc: document Protocol state machine
-rw-r--r--Doc/library/asyncio-protocol.rst8
-rw-r--r--Lib/asyncio/protocols.py5
2 files changed, 13 insertions, 0 deletions
diff --git a/Doc/library/asyncio-protocol.rst b/Doc/library/asyncio-protocol.rst
index 60776d1..b6fcc48 100644
--- a/Doc/library/asyncio-protocol.rst
+++ b/Doc/library/asyncio-protocol.rst
@@ -374,6 +374,14 @@ The following callbacks are called on :class:`Protocol` instances:
a connection. However, :meth:`eof_received` is called at most once
and, if called, :meth:`data_received` won't be called after it.
+State machine:
+
+ start -> :meth:`~BaseProtocol.connection_made`
+ [-> :meth:`~Protocol.data_received` \*]
+ [-> :meth:`~Protocol.eof_received` ?]
+ -> :meth:`~BaseProtocol.connection_lost` -> end
+
+
Datagram protocols
------------------
diff --git a/Lib/asyncio/protocols.py b/Lib/asyncio/protocols.py
index 52fc25c..80fcac9 100644
--- a/Lib/asyncio/protocols.py
+++ b/Lib/asyncio/protocols.py
@@ -78,6 +78,11 @@ class Protocol(BaseProtocol):
State machine of calls:
start -> CM [-> DR*] [-> ER?] -> CL -> end
+
+ * CM: connection_made()
+ * DR: data_received()
+ * ER: eof_received()
+ * CL: connection_lost()
"""
def data_received(self, data):