socket_protocol/_docs_/socket_protocol.html
2025-08-17 11:18:40 +02:00

1116 lines
181 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>socket_protocol package &#8212; socket_protocol documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/classic.css?v=67a6116b" />
<link rel="stylesheet" type="text/css" href="_static/pydoctheme.css?v=5ff89526" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="_static/pygments_dark.css?v=5349f25f" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /><link rel="stylesheet" href="_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="_static/py.svg">
<script type="text/javascript" src="_static/copybutton.js"></script>
<script type="text/javascript" src="_static/menu.js"></script>
<script type="text/javascript" src="_static/search-focus.js"></script>
<script type="text/javascript" src="_static/themetoggle.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="_static/py.svg" alt="Python logo">
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q">
<input type="submit" value="Go">
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">socket_protocol package</a><ul>
<li><a class="reference internal" href="#socket-protocol-socket-protocol">socket_protocol (Socket Protocol)</a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_KEY_TRANSFERRED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_KEY_TRANSFERRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_SEED_REQUESTED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_SEED_REQUESTED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_SEED_TRANSFERRED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_SEED_TRANSFERRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_TRUSTED_CONNECTION"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_TRUSTED_CONNECTION</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_UNTRUSTED_CONNECTION"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_UNTRUSTED_CONNECTION</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE__NAMES"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE__NAMES</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_AUTH_KEY"><code class="docutils literal notranslate"><span class="pre">DID_AUTH_KEY</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_AUTH_SEED"><code class="docutils literal notranslate"><span class="pre">DID_AUTH_SEED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">DID_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.RequestSidExistsError"><code class="docutils literal notranslate"><span class="pre">RequestSidExistsError</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.ResponseSidExistsError"><code class="docutils literal notranslate"><span class="pre">ResponseSidExistsError</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_AUTH_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_AUTH_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_AUTH_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_AUTH_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_CHANNEL_NAME_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_CHANNEL_NAME_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_CHANNEL_NAME_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_CHANNEL_NAME_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_EXECUTE_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_EXECUTE_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_EXECUTE_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_EXECUTE_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_READ_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_READ_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_READ_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_READ_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_WRITE_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_WRITE_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_WRITE_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_WRITE_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_AUTH_REQUIRED"><code class="docutils literal notranslate"><span class="pre">STATUS_AUTH_REQUIRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_BUFFERING_UNHANDLED_REQUEST"><code class="docutils literal notranslate"><span class="pre">STATUS_BUFFERING_UNHANDLED_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_CALLBACK_ERROR"><code class="docutils literal notranslate"><span class="pre">STATUS_CALLBACK_ERROR</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_CHECKSUM_ERROR"><code class="docutils literal notranslate"><span class="pre">STATUS_CHECKSUM_ERROR</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_LOG_LVL"><code class="docutils literal notranslate"><span class="pre">STATUS_LOG_LVL</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_OKAY"><code class="docutils literal notranslate"><span class="pre">STATUS_OKAY</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_OPERATION_NOT_PERMITTED"><code class="docutils literal notranslate"><span class="pre">STATUS_OPERATION_NOT_PERMITTED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_SERVICE_OR_DATA_UNKNOWN"><code class="docutils literal notranslate"><span class="pre">STATUS_SERVICE_OR_DATA_UNKNOWN</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage"><code class="docutils literal notranslate"><span class="pre">data_storage</span></code></a><ul>
<li><a class="reference internal" href="#socket_protocol.data_storage.ALL_KEYS"><code class="docutils literal notranslate"><span class="pre">data_storage.ALL_KEYS</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_DATA"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_DATA</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_DATA_ID"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_DATA_ID</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_SERVICE_ID"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_SERVICE_ID</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_STATUS"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_STATUS</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_data"><code class="docutils literal notranslate"><span class="pre">data_storage.get_data()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_data_id"><code class="docutils literal notranslate"><span class="pre">data_storage.get_data_id()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_service_id"><code class="docutils literal notranslate"><span class="pre">data_storage.get_service_id()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_status"><code class="docutils literal notranslate"><span class="pre">data_storage.get_status()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a><ul>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_data"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_data()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_msg_to_auth_whitelist_"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_msg_to_auth_whitelist_()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_service"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_service()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_status"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_status()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.authentificate"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.authentificate()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.check_authentification_state"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.check_authentification_state()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.connection_established"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.connection_established()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.is_connected"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.receive"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.receive()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.reconnect"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.reconnect()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.register_callback"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.send"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#socket_protocol.struct_json_protocol"><code class="docutils literal notranslate"><span class="pre">struct_json_protocol</span></code></a></li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/socket_protocol.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="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="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">socket_protocol documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">socket_protocol package</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-socket_protocol">
<span id="socket-protocol-package"></span><h1>socket_protocol package<a class="headerlink" href="#module-socket_protocol" title="Link to this heading"></a></h1>
<section id="socket-protocol-socket-protocol">
<h2>socket_protocol (Socket Protocol)<a class="headerlink" href="#socket-protocol-socket-protocol" title="Link to this heading"></a></h2>
<p><strong>Author:</strong></p>
<ul class="simple">
<li><p>Dirk Alders &lt;<a class="reference external" href="mailto:sudo-dirk&#37;&#52;&#48;mount-mockery&#46;de">sudo-dirk<span>&#64;</span>mount-mockery<span>&#46;</span>de</a>&gt;</p></li>
</ul>
<p><strong>Description:</strong></p>
<blockquote>
<div><p>This Module supports point to point communication for client-server issues.</p>
</div></blockquote>
<p><strong>Submodules:</strong></p>
<ul class="simple">
<li><p><a class="reference internal" href="#socket_protocol.data_storage" title="socket_protocol.data_storage"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket_protocol.data_storage</span></code></a></p></li>
<li><p><a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket_protocol.pure_json_protocol</span></code></a></p></li>
<li><p><a class="reference internal" href="#socket_protocol.struct_json_protocol" title="socket_protocol.struct_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket_protocol.struct_json_protocol</span></code></a></p></li>
</ul>
<p><strong>Unittest:</strong></p>
<blockquote>
<div><p>See also the <a class="reference download internal" download="" href="_downloads/b25d8d689864b23d5eb8f7b4418cc385/unittest.pdf"><code class="xref download docutils literal notranslate"><span class="pre">unittest</span></code></a> documentation.</p>
</div></blockquote>
<p><strong>Module Documentation:</strong></p>
</section>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE_KEY_TRANSFERRED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE_KEY_TRANSFERRED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE_KEY_TRANSFERRED" title="Link to this definition"></a></dt>
<dd><p>Authentification Status for Key has been sent</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE_SEED_REQUESTED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE_SEED_REQUESTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE_SEED_REQUESTED" title="Link to this definition"></a></dt>
<dd><p>Authentification Status for Seed was requested</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE_SEED_TRANSFERRED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE_SEED_TRANSFERRED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE_SEED_TRANSFERRED" title="Link to this definition"></a></dt>
<dd><p>Authentification Status for Seed has been sent</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE_TRUSTED_CONNECTION">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE_TRUSTED_CONNECTION</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE_TRUSTED_CONNECTION" title="Link to this definition"></a></dt>
<dd><p>Authentification Status for a Trusted Connection</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE_UNTRUSTED_CONNECTION">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE_UNTRUSTED_CONNECTION</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE_UNTRUSTED_CONNECTION" title="Link to this definition"></a></dt>
<dd><p>Authentification Status for an Untrusted Connection</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.AUTH_STATE__NAMES">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">AUTH_STATE__NAMES</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{0:</span> <span class="pre">'Untrusted</span> <span class="pre">Connection',</span> <span class="pre">1:</span> <span class="pre">'Seed</span> <span class="pre">was</span> <span class="pre">requested',</span> <span class="pre">2:</span> <span class="pre">'Seed</span> <span class="pre">has</span> <span class="pre">been</span> <span class="pre">sent',</span> <span class="pre">3:</span> <span class="pre">'Key</span> <span class="pre">has</span> <span class="pre">been</span> <span class="pre">sent',</span> <span class="pre">4:</span> <span class="pre">'Trusted</span> <span class="pre">Connection'}</span></em><a class="headerlink" href="#socket_protocol.AUTH_STATE__NAMES" title="Link to this definition"></a></dt>
<dd><p>Authentification Status names for previous defined authentification states</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.DID_AUTH_KEY">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">DID_AUTH_KEY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#socket_protocol.DID_AUTH_KEY" title="Link to this definition"></a></dt>
<dd><p>DID for authentification (key)</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.DID_AUTH_SEED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">DID_AUTH_SEED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#socket_protocol.DID_AUTH_SEED" title="Link to this definition"></a></dt>
<dd><p>DID for authentification (seed)</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.DID_CHANNEL_NAME">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">DID_CHANNEL_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#socket_protocol.DID_CHANNEL_NAME" title="Link to this definition"></a></dt>
<dd><p>DID for channel name</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="socket_protocol.RequestSidExistsError">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">RequestSidExistsError</span></span><a class="headerlink" href="#socket_protocol.RequestSidExistsError" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="socket_protocol.ResponseSidExistsError">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">ResponseSidExistsError</span></span><a class="headerlink" href="#socket_protocol.ResponseSidExistsError" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_AUTH_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_AUTH_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#socket_protocol.SID_AUTH_REQUEST" title="Link to this definition"></a></dt>
<dd><p>SID for authentification request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_AUTH_RESPONSE">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_AUTH_RESPONSE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#socket_protocol.SID_AUTH_RESPONSE" title="Link to this definition"></a></dt>
<dd><p>SID for authentification response</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_CHANNEL_NAME_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_CHANNEL_NAME_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">8</span></em><a class="headerlink" href="#socket_protocol.SID_CHANNEL_NAME_REQUEST" title="Link to this definition"></a></dt>
<dd><p>SID for channel name exchange request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_CHANNEL_NAME_RESPONSE">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_CHANNEL_NAME_RESPONSE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">9</span></em><a class="headerlink" href="#socket_protocol.SID_CHANNEL_NAME_RESPONSE" title="Link to this definition"></a></dt>
<dd><p>SID for channel name exchange response</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_EXECUTE_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_EXECUTE_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">30</span></em><a class="headerlink" href="#socket_protocol.SID_EXECUTE_REQUEST" title="Link to this definition"></a></dt>
<dd><p>SID for a execute request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_EXECUTE_RESPONSE">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_EXECUTE_RESPONSE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">31</span></em><a class="headerlink" href="#socket_protocol.SID_EXECUTE_RESPONSE" title="Link to this definition"></a></dt>
<dd><p>SID for a execute response</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_READ_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_READ_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">10</span></em><a class="headerlink" href="#socket_protocol.SID_READ_REQUEST" title="Link to this definition"></a></dt>
<dd><p>SID for a read data request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_READ_RESPONSE">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_READ_RESPONSE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">11</span></em><a class="headerlink" href="#socket_protocol.SID_READ_RESPONSE" title="Link to this definition"></a></dt>
<dd><p>SID for read data response</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_WRITE_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_WRITE_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">20</span></em><a class="headerlink" href="#socket_protocol.SID_WRITE_REQUEST" title="Link to this definition"></a></dt>
<dd><p>SID for a write data request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.SID_WRITE_RESPONSE">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">SID_WRITE_RESPONSE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">21</span></em><a class="headerlink" href="#socket_protocol.SID_WRITE_RESPONSE" title="Link to this definition"></a></dt>
<dd><p>SID for a write data response</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_AUTH_REQUIRED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_AUTH_REQUIRED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#socket_protocol.STATUS_AUTH_REQUIRED" title="Link to this definition"></a></dt>
<dd><p>Status for authentification is required</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_BUFFERING_UNHANDLED_REQUEST">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_BUFFERING_UNHANDLED_REQUEST</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#socket_protocol.STATUS_BUFFERING_UNHANDLED_REQUEST" title="Link to this definition"></a></dt>
<dd><p>Status for unhandled request</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_CALLBACK_ERROR">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_CALLBACK_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#socket_protocol.STATUS_CALLBACK_ERROR" title="Link to this definition"></a></dt>
<dd><p>Status for callback errors</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_CHECKSUM_ERROR">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_CHECKSUM_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#socket_protocol.STATUS_CHECKSUM_ERROR" title="Link to this definition"></a></dt>
<dd><p>Status for checksum error</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_LOG_LVL">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_LOG_LVL</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{0:</span> <span class="pre">20,</span> <span class="pre">1:</span> <span class="pre">30,</span> <span class="pre">2:</span> <span class="pre">40,</span> <span class="pre">3:</span> <span class="pre">30,</span> <span class="pre">4:</span> <span class="pre">40,</span> <span class="pre">5:</span> <span class="pre">40,</span> <span class="pre">6:</span> <span class="pre">30}</span></em><a class="headerlink" href="#socket_protocol.STATUS_LOG_LVL" title="Link to this definition"></a></dt>
<dd><p>Status depending log level for messages</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_OKAY">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_OKAY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#socket_protocol.STATUS_OKAY" title="Link to this definition"></a></dt>
<dd><p>Status for okay</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_OPERATION_NOT_PERMITTED">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_OPERATION_NOT_PERMITTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">6</span></em><a class="headerlink" href="#socket_protocol.STATUS_OPERATION_NOT_PERMITTED" title="Link to this definition"></a></dt>
<dd><p>Status for operation not permitted</p>
</dd></dl>
<dl class="py data">
<dt class="sig sig-object py" id="socket_protocol.STATUS_SERVICE_OR_DATA_UNKNOWN">
<span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">STATUS_SERVICE_OR_DATA_UNKNOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#socket_protocol.STATUS_SERVICE_OR_DATA_UNKNOWN" title="Link to this definition"></a></dt>
<dd><p>Status for service or data unknown</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="socket_protocol.data_storage">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">data_storage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.data_storage" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>This is a storage object for socket_protocol messages.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>status</strong> (<em>int</em>) The message status.</p></li>
<li><p><strong>service_id</strong> (<em>int</em>) The Service-ID.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID.</p></li>
<li><p><strong>data</strong> (<em>any</em>) The transfered data.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.data_storage.ALL_KEYS">
<span class="sig-name descname"><span class="pre">ALL_KEYS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['data',</span> <span class="pre">'data_id',</span> <span class="pre">'service_id',</span> <span class="pre">'status']</span></em><a class="headerlink" href="#socket_protocol.data_storage.ALL_KEYS" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.data_storage.KEY_DATA">
<span class="sig-name descname"><span class="pre">KEY_DATA</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'data'</span></em><a class="headerlink" href="#socket_protocol.data_storage.KEY_DATA" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.data_storage.KEY_DATA_ID">
<span class="sig-name descname"><span class="pre">KEY_DATA_ID</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'data_id'</span></em><a class="headerlink" href="#socket_protocol.data_storage.KEY_DATA_ID" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.data_storage.KEY_SERVICE_ID">
<span class="sig-name descname"><span class="pre">KEY_SERVICE_ID</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'service_id'</span></em><a class="headerlink" href="#socket_protocol.data_storage.KEY_SERVICE_ID" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.data_storage.KEY_STATUS">
<span class="sig-name descname"><span class="pre">KEY_STATUS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'status'</span></em><a class="headerlink" href="#socket_protocol.data_storage.KEY_STATUS" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.data_storage.get_data">
<span class="sig-name descname"><span class="pre">get_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.data_storage.get_data" title="Link to this definition"></a></dt>
<dd><p>This Method returns the message data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>default</strong> The default value, if no data is available.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.data_storage.get_data_id">
<span class="sig-name descname"><span class="pre">get_data_id</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.data_storage.get_data_id" title="Link to this definition"></a></dt>
<dd><p>This Method returns the message Data-ID.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>default</strong> The default value, if no data is available.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.data_storage.get_service_id">
<span class="sig-name descname"><span class="pre">get_service_id</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.data_storage.get_service_id" title="Link to this definition"></a></dt>
<dd><p>This Method returns the message Service-ID.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>default</strong> The default value, if no data is available.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.data_storage.get_status">
<span class="sig-name descname"><span class="pre">get_status</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.data_storage.get_status" title="Link to this definition"></a></dt>
<dd><p>This Method returns the message status.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>default</strong> The default value, if no data is available.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">pure_json_protocol</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">comm_instance</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">secret</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto_auth</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This <cite>class</cite> supports to transfer a message and its data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>comm_instance</strong> (<em>instance</em>) A communication instance.</p></li>
<li><p><strong>secret</strong> (<em>str</em>) An optinal secret (e.g. created by <code class="docutils literal notranslate"><span class="pre">binascii.hexlify(os.urandom(24))</span></code>).</p></li>
<li><p><strong>auto_auth</strong> (<em>bool</em>) An optional parameter to enable (True) automatic authentification, otherwise you need to do it manually, if needed.</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) An optional parameter to set a channel name for logging of the communication.</p></li>
</ul>
</dd>
</dl>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<ul class="simple">
<li><p>The Service-ID is designed to identify the type of the communication (e.g. <code class="xref py py-const docutils literal notranslate"><span class="pre">READ_REQUEST</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">WRITE_REQUEST</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">READ_RESPONSE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">WRITE_RESPONSE</span></code>, …)</p></li>
<li><p>The Data-ID is designed to identify the requests / responses using the same Service_ID.</p></li>
</ul>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-class docutils literal notranslate"><span class="pre">comm_instance</span></code> needs to have at least the following interface:</p>
<ul class="simple">
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.init_channel_name()</span></code> to set the channel name.</p></li>
<li><p>A Constant <code class="xref py py-const docutils literal notranslate"><span class="pre">comm_instance.IS_CLIENT</span></code> to identify that the <code class="xref py py-class docutils literal notranslate"><span class="pre">comm_instance</span></code> is a client (True) or a server (False).</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.is_connected()</span></code> to identify if the instance is connected (True) or not (False).</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.reconnect()</span></code> to initiate a reconnect.</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.register_callback()</span></code> to register a data available callback.</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.register_connect_callback()</span></code> to register a connect callback.</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.register_disconnect_callback()</span></code> to register a disconnect callback.</p></li>
<li><p>A Method <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.send()</span></code> to send data via the <code class="xref py py-class docutils literal notranslate"><span class="pre">comm_instance</span></code>.</p></li>
</ul>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The parameter <code class="xref py py-const docutils literal notranslate"><span class="pre">auto_auth</span></code> is only relevant, if a secret is given and the <code class="xref py py-class docutils literal notranslate"><span class="pre">comm_instance</span></code> is a client. The authentification is initiated directly after the connection is established.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-const docutils literal notranslate"><span class="pre">channel_name</span></code>-exchange will be initiated by the client directly after the the connection is established.</p>
<ul class="simple">
<li><p>If a channel_name is given at both communication sides and they are different, the client name is taken over and the server will log a warning message.</p></li>
</ul>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">time</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">tcp_socket</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">socket_protocol</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="n">DID_ASC_TIME</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">class</span><span class="w"> </span><span class="nc">example_protocol</span><span class="p">(</span><span class="n">socket_protocol</span><span class="o">.</span><span class="n">pure_json_protocol</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="n">socket_protocol</span><span class="o">.</span><span class="n">pure_json_protocol</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="c1">#</span>
<span class="bp">self</span><span class="o">.</span><span class="n">add_data</span><span class="p">((</span><span class="n">socket_protocol</span><span class="o">.</span><span class="n">SID_READ_REQUEST</span><span class="p">,</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">SID_READ_RESPONSE</span><span class="p">),</span> <span class="n">DID_ASC_TIME</span><span class="p">,</span> <span class="s1">&#39;asc_time&#39;</span><span class="p">)</span>
<span class="c1">#</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">__comm_inst__</span><span class="o">.</span><span class="n">IS_CLIENT</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">socket_protocol</span><span class="o">.</span><span class="n">SID_READ_REQUEST</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">time_callback</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">time_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
<span class="k">if</span> <span class="n">msg</span><span class="o">.</span><span class="n">get_status</span><span class="p">()</span> <span class="o">==</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">STATUS_OKAY</span><span class="p">:</span>
<span class="k">return</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">STATUS_OKAY</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">asctime</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">STATUS_OPERATION_NOT_PERMITTED</span><span class="p">,</span> <span class="kc">None</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;__main__&#39;</span><span class="p">:</span>
<span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="c1"># Start server</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_server_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">sps</span> <span class="o">=</span> <span class="n">example_protocol</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">channel_name</span><span class="o">=</span><span class="s1">&#39;example_server&#39;</span><span class="p">)</span>
<span class="c1"># Start client</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_client_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">spc</span> <span class="o">=</span> <span class="n">example_protocol</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">channel_name</span><span class="o">=</span><span class="s1">&#39;example_client&#39;</span><span class="p">)</span>
<span class="n">spc</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">socket_protocol</span><span class="o">.</span><span class="n">SID_READ_REQUEST</span><span class="p">,</span> <span class="n">DID_ASC_TIME</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">spc</span><span class="o">.</span><span class="n">receive</span><span class="p">(</span><span class="n">socket_protocol</span><span class="o">.</span><span class="n">SID_READ_RESPONSE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">get_data</span><span class="p">()))</span>
</pre></div>
</div>
<p>Will result to the following output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">authentification</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">authentification</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">seed</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">seed</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">key</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">key</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_create_seed__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_create_key__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_check_key__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_process_feedback__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">1</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Resetting</span> <span class="n">authentification</span> <span class="n">state</span> <span class="n">to</span> <span class="n">AUTH_STATE_UNTRUSTED_CONNECTION</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">channel</span> <span class="n">name</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">channel</span> <span class="n">name</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__channel_name_request__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">8</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__channel_name_response__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">9</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">read</span> <span class="n">data</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">read</span> <span class="n">data</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">write</span> <span class="n">data</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">write</span> <span class="n">data</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">execute</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">execute</span> <span class="n">response</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Initialisation</span> <span class="n">finished</span><span class="o">.</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;time_callback&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">10</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Server</span> <span class="n">listening</span> <span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">authentification</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">authentification</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">seed</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">seed</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">key</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">authentification</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">key</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_create_seed__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_create_key__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_check_key__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__authentificate_process_feedback__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">1</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Resetting</span> <span class="n">authentification</span> <span class="n">state</span> <span class="n">to</span> <span class="n">AUTH_STATE_UNTRUSTED_CONNECTION</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">channel</span> <span class="n">name</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">channel</span> <span class="n">name</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Message</span> <span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">)</span> <span class="n">to</span> <span class="n">the</span> <span class="n">authentification</span> <span class="n">whitelist</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__channel_name_request__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">8</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">callback</span> <span class="s1">&#39;__channel_name_response__&#39;</span> <span class="k">for</span> <span class="n">SID</span><span class="o">=</span><span class="mi">9</span> <span class="ow">and</span> <span class="n">DID</span><span class="o">=</span><span class="mi">0</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">read</span> <span class="n">data</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">read</span> <span class="n">data</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">write</span> <span class="n">data</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">write</span> <span class="n">data</span> <span class="n">response</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Adding</span> <span class="n">Service</span> <span class="k">with</span> <span class="n">Request</span><span class="o">=</span><span class="n">execute</span> <span class="n">request</span> <span class="ow">and</span> <span class="n">Response</span><span class="o">=</span><span class="n">execute</span> <span class="n">response</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Initialisation</span> <span class="n">finished</span><span class="o">.</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="n">service</span><span class="p">:</span> <span class="n">read</span> <span class="n">data</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">asc_time</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;None&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;&#39;example_client&#39;&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(82): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 38 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 22 65 78 61 6d 70 6c 65 5f 63 6c 69 65 6e 74 22 7d f5 cd dd e7 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(74): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 38 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 22 65 78 61 6d 70 6c 65 5f 63 6c 69 65 6e 74 22 7d f5 cd dd e7&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(82): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 38 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 22 65 78 61 6d 70 6c 65 5f 63 6c 69 65 6e 74 22 7d f5 cd dd e7 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">74</span><span class="p">):</span> <span class="mi">7</span><span class="n">b</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">65</span> <span class="mi">72</span> <span class="mi">76</span> <span class="mi">69</span> <span class="mi">63</span> <span class="mi">65</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">38</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">75</span> <span class="mi">73</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">65</span> <span class="mi">78</span> <span class="mi">61</span> <span class="mi">6</span><span class="n">d</span> <span class="mi">70</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">65</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">63</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">69</span> <span class="mi">65</span> <span class="mi">6</span><span class="n">e</span> <span class="mi">74</span> <span class="mi">22</span> <span class="mi">7</span><span class="n">d</span> <span class="n">f5</span> <span class="n">cd</span> <span class="n">dd</span> <span class="n">e7</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(71): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 31 30 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 6e 75 6c 6c 7d 45 05 7b b4 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(74): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 38 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 22 65 78 61 6d 70 6c 65 5f 63 6c 69 65 6e 74 22 7d f5 cd dd e7&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(63): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 31 30 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 6e 75 6c 6c 7d 45 05 7b b4&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;&#39;example_client&#39;&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_server</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Executing</span> <span class="n">callback</span> <span class="n">__channel_name_request__</span> <span class="n">to</span> <span class="n">process</span> <span class="n">received</span> <span class="n">data</span>
<span class="n">WARNING</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">overwriting</span> <span class="n">user</span> <span class="n">defined</span> <span class="n">channel</span> <span class="n">name</span> <span class="kn">from</span><span class="w"> </span><span class="s1">&#39;example_server&#39;</span> <span class="n">to</span> <span class="s1">&#39;example_client&#39;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;None&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(70): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 39 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 6e 75 6c 6c 7d 30 59 be 2f 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(62): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 39 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 6e 75 6c 6c 7d 30 59 be 2f&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(71): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 31 30 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 6e 75 6c 6c 7d 45 05 7b b4 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">63</span><span class="p">):</span> <span class="mi">7</span><span class="n">b</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">65</span> <span class="mi">72</span> <span class="mi">76</span> <span class="mi">69</span> <span class="mi">63</span> <span class="mi">65</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">31</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">75</span> <span class="mi">73</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">6</span><span class="n">e</span> <span class="mi">75</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">7</span><span class="n">d</span> <span class="mi">45</span> <span class="mi">05</span> <span class="mi">7</span><span class="n">b</span> <span class="n">b4</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(63): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 31 30 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 6e 75 6c 6c 7d 45 05 7b b4&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="n">service</span><span class="p">:</span> <span class="n">read</span> <span class="n">data</span> <span class="n">request</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">asc_time</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;None&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Executing</span> <span class="n">callback</span> <span class="n">time_callback</span> <span class="n">to</span> <span class="n">process</span> <span class="n">received</span> <span class="n">data</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="n">service</span><span class="p">:</span> <span class="n">read</span> <span class="n">data</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">asc_time</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;&#39;Sun Aug 17 11:02:15 2025&#39;&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(95): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 31 31 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 22 53 75 6e 20 41 75 67 20 31 37 20 31 31 3a 3d 30 32 3a 3d 31 35 20 32 30 32 35 22 7d 1d c7 18 e7 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(85): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 31 31 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 22 53 75 6e 20 41 75 67 20 31 37 20 31 31 3a 30 32 3a 31 35 20 32 30 32 35 22 7d 1d c7 18 e7&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(165): 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 39 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 6e 75 6c 6c 7d 30 59 be 2f 3a 3e 3a 3c 7b 22 64 61 74 61 5f 69 64 22 3a 3d 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 3d 20 31 31 2c 20 22 73 74 61 74 75 73 22 3a 3d 20 30 2c 20 22 64 61 74 61 22 3a 3d 20 22 53 75 6e 20 41 75 67 20 31 37 20 31 31 3a 3d 30 32 3a 3d 31 35 20 32 30 32 35 22 7d 1d c7 18 e7 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">store</span> <span class="n">sync</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">d</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">62</span><span class="p">):</span> <span class="mi">7</span><span class="n">b</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">65</span> <span class="mi">72</span> <span class="mi">76</span> <span class="mi">69</span> <span class="mi">63</span> <span class="mi">65</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">39</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">75</span> <span class="mi">73</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">6</span><span class="n">e</span> <span class="mi">75</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">6</span><span class="n">c</span> <span class="mi">7</span><span class="n">d</span> <span class="mi">30</span> <span class="mi">59</span> <span class="n">be</span> <span class="mi">2</span><span class="n">f</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">85</span><span class="p">):</span> <span class="mi">7</span><span class="n">b</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">65</span> <span class="mi">72</span> <span class="mi">76</span> <span class="mi">69</span> <span class="mi">63</span> <span class="mi">65</span> <span class="mi">5</span><span class="n">f</span> <span class="mi">69</span> <span class="mi">64</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">31</span> <span class="mi">31</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">73</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">75</span> <span class="mi">73</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">30</span> <span class="mi">2</span><span class="n">c</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">64</span> <span class="mi">61</span> <span class="mi">74</span> <span class="mi">61</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">20</span> <span class="mi">22</span> <span class="mi">53</span> <span class="mi">75</span> <span class="mi">6</span><span class="n">e</span> <span class="mi">20</span> <span class="mi">41</span> <span class="mi">75</span> <span class="mi">67</span> <span class="mi">20</span> <span class="mi">31</span> <span class="mi">37</span> <span class="mi">20</span> <span class="mi">31</span> <span class="mi">31</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">30</span> <span class="mi">32</span> <span class="mi">3</span><span class="n">a</span> <span class="mi">31</span> <span class="mi">35</span> <span class="mi">20</span> <span class="mi">32</span> <span class="mi">30</span> <span class="mi">32</span> <span class="mi">35</span> <span class="mi">22</span> <span class="mi">7</span><span class="n">d</span> <span class="mi">1</span><span class="n">d</span> <span class="n">c7</span> <span class="mi">18</span> <span class="n">e7</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(62): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 39 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 6e 75 6c 6c 7d 30 59 be 2f&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(85): 7b 22 64 61 74 61 5f 69 64 22 3a 20 30 2c 20 22 73 65 72 76 69 63 65 5f 69 64 22 3a 20 31 31 2c 20 22 73 74 61 74 75 73 22 3a 20 30 2c 20 22 64 61 74 61 22 3a 20 22 53 75 6e 20 41 75 67 20 31 37 20 31 31 3a 30 32 3a 31 35 20 32 30 32 35 22 7d 1d c7 18 e7&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="n">service</span><span class="p">:</span> <span class="n">channel</span> <span class="n">name</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;None&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Executing</span> <span class="n">callback</span> <span class="n">__channel_name_response__</span> <span class="n">to</span> <span class="n">process</span> <span class="n">received</span> <span class="n">data</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="n">service</span><span class="p">:</span> <span class="n">read</span> <span class="n">data</span> <span class="n">response</span><span class="p">,</span> <span class="n">data_id</span><span class="p">:</span> <span class="n">asc_time</span><span class="p">,</span> <span class="n">status</span><span class="p">:</span> <span class="n">okay</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="s2">&quot;&#39;Sun Aug 17 11:02:15 2025&#39;&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">socket_protocol</span><span class="o">.</span><span class="n">example_client</span> <span class="o">-</span> <span class="n">prot</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Message</span> <span class="n">data</span> <span class="ow">is</span> <span class="n">stored</span> <span class="ow">in</span> <span class="n">buffer</span> <span class="ow">and</span> <span class="ow">is</span> <span class="n">now</span> <span class="n">ready</span> <span class="n">to</span> <span class="n">be</span> <span class="n">retrieved</span> <span class="n">by</span> <span class="n">receive</span> <span class="n">method</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="s1">&#39;Sun Aug 17 11:02:15 2025&#39;</span>
</pre></div>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.DEFAULT_CHANNEL_NAME">
<span class="sig-name descname"><span class="pre">DEFAULT_CHANNEL_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'all_others'</span></em><a class="headerlink" href="#socket_protocol.pure_json_protocol.DEFAULT_CHANNEL_NAME" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.add_data">
<span class="sig-name descname"><span class="pre">add_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.add_data" title="Link to this definition"></a></dt>
<dd><p>Method to add a name for a specific message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_id</strong> (<em>int</em><em> or </em><em>list</em><em> of </em><em>ints</em>) The Service-ID of the message. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">SID_</span></code>.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID of the message.</p></li>
<li><p><strong>name</strong> (<em>str</em>) The Name for the transfered message.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.add_msg_to_auth_whitelist_">
<span class="sig-name descname"><span class="pre">add_msg_to_auth_whitelist_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_id</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.add_msg_to_auth_whitelist_" title="Link to this definition"></a></dt>
<dd><p>Method to add a specific message to the list, where no authentification is required.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_id</strong> (<em>int</em>) The Service-ID of the message. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">SID_</span></code>.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID of the message.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.add_service">
<span class="sig-name descname"><span class="pre">add_service</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">req_sid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resp_sid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">req_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resp_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.add_service" title="Link to this definition"></a></dt>
<dd><p>Method to add a Service defined by Request- and Response Serivce-ID.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>req_sid</strong> (<em>int</em>) The Request Service-ID.</p></li>
<li><p><strong>resp_sid</strong> (<em>int</em>) The Response Service-ID.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.add_status">
<span class="sig-name descname"><span class="pre">add_status</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.add_status" title="Link to this definition"></a></dt>
<dd><p>Method to add a name for a status.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>status</strong> (<em>int</em>) The Status. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">STATUS_</span></code>.</p></li>
<li><p><strong>name</strong> (<em>str</em>) The Name for the Status.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.authentificate">
<span class="sig-name descname"><span class="pre">authentificate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.authentificate" title="Link to this definition"></a></dt>
<dd><p>This method authetificates the client at the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> (<em>float</em>) The timeout for the authentification (requesting seed, sending key and getting authentification_feedback).</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True, if authentification was successfull; False, if not.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>An authentification will only processed, if a secret had been given on initialisation.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Client and Server needs to use the same secret.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.check_authentification_state">
<span class="sig-name descname"><span class="pre">check_authentification_state</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.check_authentification_state" title="Link to this definition"></a></dt>
<dd><p>This Method return the Authitification State as boolean value.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True, if authentification state is okay, otherwise False</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.connection_established">
<span class="sig-name descname"><span class="pre">connection_established</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.connection_established" title="Link to this definition"></a></dt>
<dd><p>This Method returns the Connection state including authentification as a boolean value.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True, if the connection is established (incl. authentification, if a secret has been given)</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.is_connected">
<span class="sig-name descname"><span class="pre">is_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.is_connected" title="Link to this definition"></a></dt>
<dd><p>This Methods returns Connection state of the Communication Instance <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.is_connected()</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True if the <code class="xref py py-class docutils literal notranslate"><span class="pre">comm_instance</span></code> is connected, otherwise False..</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.receive">
<span class="sig-name descname"><span class="pre">receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.receive" title="Link to this definition"></a></dt>
<dd><p>This Method returns a message object for a defined message or None, if this message is not available after the given timout.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_id</strong> (<em>int</em>) The Service-ID for the message. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">SID_</span></code>.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID for the message.</p></li>
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for receiving.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The received data storage object or None, if no data was received.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#socket_protocol.data_storage" title="socket_protocol.data_storage">data_storage</a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.reconnect" title="Link to this definition"></a></dt>
<dd><p>This methods initiates a reconnect by calling <code class="xref py py-func docutils literal notranslate"><span class="pre">comm_instance.reconnect()</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.register_callback">
<span class="sig-name descname"><span class="pre">register_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.register_callback" title="Link to this definition"></a></dt>
<dd><p>This method registers a callback for the given parameters. Giving <code class="docutils literal notranslate"><span class="pre">None</span></code> means, that all Service-IDs or all Data-IDs are used.
If a message hitting these parameters has been received, the callback will be executed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_id</strong> (<em>int</em>) The Service-ID for the message. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">SID_</span></code>.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID for the message.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">callback()</span></code> is priorised in the following order:</p>
<ul class="simple">
<li><p>Callbacks with defined Service-ID and Data-ID.</p></li>
<li><p>Callbacks with a defined Service-ID and all Data-IDs.</p></li>
<li><p>Callbacks with a defined Data-ID and all Service-IDs.</p></li>
<li><p>Unspecific Callbacks.</p></li>
</ul>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">callback()</span></code> is executed with these arguments:</p>
<p><strong>Parameters given at the callback call:</strong></p>
<ul class="simple">
<li><p>The first Arguments is the received message as <a class="reference internal" href="#socket_protocol.data_storage" title="socket_protocol.data_storage"><code class="xref py py-class docutils literal notranslate"><span class="pre">data_storage</span></code></a> object.</p></li>
<li><p>Further arguments given at registration.</p></li>
<li><p>Further keyword arguments given at registration.</p></li>
</ul>
<p><strong>Return value of the callback:</strong></p>
<p>If the Callback is a Request Callback for a registered Service, the return value has to be a tuple or list with</p>
<ul class="simple">
<li><p><code class="xref py py-const docutils literal notranslate"><span class="pre">response_status</span></code>: The response status (see class definitions starting with <code class="xref py py-const docutils literal notranslate"><span class="pre">STA_*</span></code>.</p></li>
<li><p><code class="xref py py-const docutils literal notranslate"><span class="pre">response_data</span></code>: A JSON iterable object to be used as data for the response.</p></li>
</ul>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only registered services will respond via the callbacks return values with the same data_id.</p>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="socket_protocol.pure_json_protocol.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">service_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.pure_json_protocol.send" title="Link to this definition"></a></dt>
<dd><p>This methods sends out a message with the given content.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>service_id</strong> (<em>int</em>) The Service-ID for the message. See class definitions starting with <code class="docutils literal notranslate"><span class="pre">SERVICE_</span></code>.</p></li>
<li><p><strong>data_id</strong> (<em>int</em>) The Data-ID for the message.</p></li>
<li><p><strong>data</strong> (<em>str</em>) The data to be transfered. The data needs to be json compatible.</p></li>
<li><p><strong>status</strong> (<em>int</em>) The Status for the message. All requests should have <code class="docutils literal notranslate"><span class="pre">STATUS_OKAY</span></code>.</p></li>
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for sending data (e.g. time to establish new connection).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if data had been sent, otherwise False.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="socket_protocol.struct_json_protocol">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket_protocol.</span></span><span class="sig-name descname"><span class="pre">struct_json_protocol</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#socket_protocol.struct_json_protocol" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a></p>
<p>This Class has the same functionality like <a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a>. The message length is less than for <a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a>, but the functionality and compatibility is reduced.
See also parent <a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This class is depreceated and here for compatibility reasons (to support old clients or servers). Usage of <a class="reference internal" href="#socket_protocol.pure_json_protocol" title="socket_protocol.pure_json_protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a> is recommended.</p>
</div>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">socket_protocol package</a><ul>
<li><a class="reference internal" href="#socket-protocol-socket-protocol">socket_protocol (Socket Protocol)</a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_KEY_TRANSFERRED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_KEY_TRANSFERRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_SEED_REQUESTED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_SEED_REQUESTED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_SEED_TRANSFERRED"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_SEED_TRANSFERRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_TRUSTED_CONNECTION"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_TRUSTED_CONNECTION</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE_UNTRUSTED_CONNECTION"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE_UNTRUSTED_CONNECTION</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.AUTH_STATE__NAMES"><code class="docutils literal notranslate"><span class="pre">AUTH_STATE__NAMES</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_AUTH_KEY"><code class="docutils literal notranslate"><span class="pre">DID_AUTH_KEY</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_AUTH_SEED"><code class="docutils literal notranslate"><span class="pre">DID_AUTH_SEED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.DID_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">DID_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.RequestSidExistsError"><code class="docutils literal notranslate"><span class="pre">RequestSidExistsError</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.ResponseSidExistsError"><code class="docutils literal notranslate"><span class="pre">ResponseSidExistsError</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_AUTH_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_AUTH_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_AUTH_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_AUTH_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_CHANNEL_NAME_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_CHANNEL_NAME_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_CHANNEL_NAME_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_CHANNEL_NAME_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_EXECUTE_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_EXECUTE_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_EXECUTE_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_EXECUTE_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_READ_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_READ_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_READ_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_READ_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_WRITE_REQUEST"><code class="docutils literal notranslate"><span class="pre">SID_WRITE_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.SID_WRITE_RESPONSE"><code class="docutils literal notranslate"><span class="pre">SID_WRITE_RESPONSE</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_AUTH_REQUIRED"><code class="docutils literal notranslate"><span class="pre">STATUS_AUTH_REQUIRED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_BUFFERING_UNHANDLED_REQUEST"><code class="docutils literal notranslate"><span class="pre">STATUS_BUFFERING_UNHANDLED_REQUEST</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_CALLBACK_ERROR"><code class="docutils literal notranslate"><span class="pre">STATUS_CALLBACK_ERROR</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_CHECKSUM_ERROR"><code class="docutils literal notranslate"><span class="pre">STATUS_CHECKSUM_ERROR</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_LOG_LVL"><code class="docutils literal notranslate"><span class="pre">STATUS_LOG_LVL</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_OKAY"><code class="docutils literal notranslate"><span class="pre">STATUS_OKAY</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_OPERATION_NOT_PERMITTED"><code class="docutils literal notranslate"><span class="pre">STATUS_OPERATION_NOT_PERMITTED</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.STATUS_SERVICE_OR_DATA_UNKNOWN"><code class="docutils literal notranslate"><span class="pre">STATUS_SERVICE_OR_DATA_UNKNOWN</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage"><code class="docutils literal notranslate"><span class="pre">data_storage</span></code></a><ul>
<li><a class="reference internal" href="#socket_protocol.data_storage.ALL_KEYS"><code class="docutils literal notranslate"><span class="pre">data_storage.ALL_KEYS</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_DATA"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_DATA</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_DATA_ID"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_DATA_ID</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_SERVICE_ID"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_SERVICE_ID</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.KEY_STATUS"><code class="docutils literal notranslate"><span class="pre">data_storage.KEY_STATUS</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_data"><code class="docutils literal notranslate"><span class="pre">data_storage.get_data()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_data_id"><code class="docutils literal notranslate"><span class="pre">data_storage.get_data_id()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_service_id"><code class="docutils literal notranslate"><span class="pre">data_storage.get_service_id()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.data_storage.get_status"><code class="docutils literal notranslate"><span class="pre">data_storage.get_status()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol</span></code></a><ul>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_data"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_data()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_msg_to_auth_whitelist_"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_msg_to_auth_whitelist_()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_service"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_service()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.add_status"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.add_status()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.authentificate"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.authentificate()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.check_authentification_state"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.check_authentification_state()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.connection_established"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.connection_established()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.is_connected"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.receive"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.receive()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.reconnect"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.reconnect()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.register_callback"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#socket_protocol.pure_json_protocol.send"><code class="docutils literal notranslate"><span class="pre">pure_json_protocol.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#socket_protocol.struct_json_protocol"><code class="docutils literal notranslate"><span class="pre">struct_json_protocol</span></code></a></li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/socket_protocol.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="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="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">socket_protocol documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">socket_protocol package</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
&copy;
Copyright
2025, Dirk Alders.
<br>
This page is licensed under the Python Software Foundation License Version 2.
<br>
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br>
<br>
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br>
<br>
<br>
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>