<spanid="evennia-server-portal-amp"></span><h1>evennia.server.portal.amp<aclass="headerlink"href="#module-evennia.server.portal.amp"title="Permalink to this headline">¶</a></h1>
<p>The AMP (Asynchronous Message Protocol)-communication commands and constants used by Evennia.</p>
<p>This module acts as a central place for AMP-servers and -clients to get commands to use.</p>
<dlclass="py function">
<dtid="evennia.server.portal.amp.dumps">
<codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">dumps</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#dumps"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.dumps"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="py function">
<dtid="evennia.server.portal.amp.loads">
<codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">loads</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#loads"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.loads"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="py class">
<dtid="evennia.server.portal.amp.Compressed">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">Compressed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">optional</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">fromBox</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="n">strings</span></em>, <emclass="sig-param"><spanclass="n">objects</span></em>, <emclass="sig-param"><spanclass="n">proto</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.fromBox"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.fromBox"title="Permalink to this definition">¶</a></dt>
<dd><p>Converts from box string representation to python. We read back too-long batched data and
<codeclass="sig-name descname">toBox</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="n">strings</span></em>, <emclass="sig-param"><spanclass="n">objects</span></em>, <emclass="sig-param"><spanclass="n">proto</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.toBox"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.toBox"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert from python object to string box representation.
we break up too-long data snippets into multiple batches here.</p>
<codeclass="sig-name descname">toString</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inObject</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.toString"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.toString"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert to send as a bytestring on the wire, with compression.</p>
<codeclass="sig-name descname">fromString</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inString</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.fromString"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.fromString"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert (decompress) from the string-representation on the wire to Python.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgLauncher2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgLauncher2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property">: List<spanclass="p">[</span>Tuple<spanclass="p">[</span>bytes<spanclass="p">, </span>twisted.protocols.amp.Argument<spanclass="p">]</span><spanclass="p">]</span></em><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = b'MsgPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property">: List<spanclass="p">[</span>Tuple<spanclass="p">[</span>bytes<spanclass="p">, </span>twisted.protocols.amp.Argument<spanclass="p">]</span><spanclass="p">]</span></em><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property">: List<spanclass="p">[</span>Tuple<spanclass="p">[</span>bytes<spanclass="p">, </span>twisted.protocols.amp.Argument<spanclass="p">]</span><spanclass="p">]</span></em><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AdminPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AdminPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'AdminPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property">: List<spanclass="p">[</span>Tuple<spanclass="p">[</span>bytes<spanclass="p">, </span>twisted.protocols.amp.Argument<spanclass="p">]</span><spanclass="p">]</span></em><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'AdminPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AdminServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AdminServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'AdminServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property">: List<spanclass="p">[</span>Tuple<spanclass="p">[</span>bytes<spanclass="p">, </span>twisted.protocols.amp.Argument<spanclass="p">]</span><spanclass="p">]</span></em><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'AdminServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="py class">
<dtid="evennia.server.portal.amp.MsgStatus">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgStatus</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgStatus"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgStatus'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgStatus'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.reverseErrors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="py class">
<dtid="evennia.server.portal.amp.FunctionCall">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">FunctionCall</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kw</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#FunctionCall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'FunctionCall'</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'FunctionCall'</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AMPMultiConnectionProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize protocol with some things that need to be in place
already before connecting both on portal and server.</p>
<codeclass="sig-name descname">stringReceived</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">string</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.stringReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.stringReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Overrides the base stringReceived of twisted in order to handle
the strange error reported in <aclass="reference external"href="https://github.com/evennia/evennia/issues/2053">https://github.com/evennia/evennia/issues/2053</a>,
which can lead to the amp connection locking up.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>string</strong> (<em>str</em>) – the data coming in.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>To test, add the following code to the beginning of
<strong>evennia.server.amp_client.AMPServerClientProtocol.data_to_portal</strong>, then
run multiple commands until the error trigger:</p>
<codeclass="sig-name descname">dataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.dataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.dataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Handle non-AMP messages, such as HTTP communication.</p>
<codeclass="sig-name descname">makeConnection</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">transport</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.makeConnection"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.makeConnection"title="Permalink to this definition">¶</a></dt>
<dd><p>Swallow connection log message here. Copied from original
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when an AMP connection is (re-)established. AMP calls it on both sides.</p>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>We swallow connection errors here. The reason is that during a
normal reload/shutdown there will almost always be cases where
either the portal or server shuts down before a message has
returned its (empty) return, triggering a connectionLost error
that is irrelevant. If a true connection error happens, the
portal will continuously try to reconnect, showing the problem
<codeclass="sig-name descname">errback</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">err</span></em>, <emclass="sig-param"><spanclass="n">info</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.errback"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.errback"title="Permalink to this definition">¶</a></dt>
<dd><p>Error callback.
Handles errors to avoid dropping connections on server tracebacks.</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">packed_data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">broadcast</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">command</span></em>, <emclass="sig-param"><spanclass="n">sessid</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.broadcast"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.broadcast"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data across the wire to all connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>command</strong> (<em>AMP Command</em>) – A protocol send command.</p></li>
<li><p><strong>sessid</strong> (<em>int</em>) – A unique Session id.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>deferred (deferred or None)</em>– A deferred with an errback.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
<codeclass="sig-name descname">send_FunctionCall</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">modulepath</span></em>, <emclass="sig-param"><spanclass="n">functionname</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.send_FunctionCall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.send_FunctionCall"title="Permalink to this definition">¶</a></dt>
<dd><p>Access method called by either process. This will call an arbitrary
function on the other process (On Portal if calling from Server and
vice versa).</p>
<dl>
<dt>Inputs:</dt><dd><p>modulepath (str) - python path to module holding function to call
functionname (str) - name of function in given module
<ahref="#id1"><spanclass="problematic"id="id2">*</span></a>args, <ahref="#id3"><spanclass="problematic"id="id4">**</span></a>kwargs will be used as arguments/keyword args for the</p>
<blockquote>
<div><p>remote function call</p>
</div></blockquote>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>A deferred that fires with the return value of the remote
<codeclass="sig-name descname">receive_functioncall</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.receive_functioncall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.receive_functioncall"title="Permalink to this definition">¶</a></dt>