PSF-LoginServer/net/psforever/login/PacketCodingActor.html
2020-08-26 04:22:45 +00:00

46 lines
71 KiB
HTML

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.login.PacketCodingActor</title><meta content="PSF - LoginServer - master - net.psforever.login.PacketCodingActor" name="description"/><meta content="PSF LoginServer master net.psforever.login.PacketCodingActor" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../lib/index.js"></script><script type="text/javascript" src="../../../index.js"></script><script type="text/javascript" src="../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.login" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="login"></a><a id="login:login"></a> <span class="permalink"><a href="../../../net/psforever/login/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="index.html" title=""><span class="name">login</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.login.psadmin" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psadmin"></a><a id="psadmin:psadmin"></a> <span class="permalink"><a href="../../../net/psforever/login/psadmin/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="psadmin/index.html" title=""><span class="name">psadmin</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.login" id="net.psforever.login" class="extype">login</a></dd></dl></div></li><li class="current-entities indented3"><span class="separator"></span> <a href="Closed.html" title="" class="class"></a><a href="Closed.html" title="">Closed</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Closing.html" title="" class="class"></a><a href="Closing.html" title="">Closing</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="CryptoSessionAPI.html" title="" class="trait"></a><a href="CryptoSessionAPI.html" title="">CryptoSessionAPI</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="CryptoSessionActor.html" title="Actor that stores crypto state for a connection, appropriately encrypts and decrypts packets, and passes packets along to the next hop once processed." class="class"></a><a href="CryptoSessionActor.html" title="Actor that stores crypto state for a connection, appropriately encrypts and decrypts packets, and passes packets along to the next hop once processed.">CryptoSessionActor</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="DropCryptoSession.html" title="" class="class"></a><a href="DropCryptoSession.html" title="">DropCryptoSession</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="DropSession.html" title="" class="class"></a><a href="DropSession.html" title="">DropSession</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Established.html" title="" class="class"></a><a href="Established.html" title="">Established</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Handshaking.html" title="" class="class"></a><a href="Handshaking.html" title="">Handshaking</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Hello.html" title="" class="class"></a><a href="Hello.html" title="">Hello</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="HelloFriend.html" title="" class="class"></a><a href="HelloFriend.html" title="">HelloFriend</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="LoginSessionActor.html" title="" class="class"></a><a href="LoginSessionActor.html" title="">LoginSessionActor</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="NetworkSimulatorParameters.html" title="Parameters for the Network simulator" class="class"></a><a href="NetworkSimulatorParameters.html" title="Parameters for the Network simulator">NetworkSimulatorParameters</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="New.html" title="" class="class"></a><a href="New.html" title="">New</a></li><li class="current-entities indented3"><a href="PacketCodingActor$.html" title="" class="object"></a> <a href="" title="In between the network side and the higher functioning side of the simulation: accept packets and transform them into a sequence of data (encoding), and accept a sequence of data and transform it into s packet (decoding). Following the standardization of the SessionRouter pipeline, the throughput of this Actor has directionality." class="class"></a><a href="" title="In between the network side and the higher functioning side of the simulation: accept packets and transform them into a sequence of data (encoding), and accept a sequence of data and transform it into s packet (decoding). Following the standardization of the SessionRouter pipeline, the throughput of this Actor has directionality.">PacketCodingActor</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="RawPacket.html" title="" class="class"></a><a href="RawPacket.html" title="">RawPacket</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="ReceivedPacket.html" title="" class="class"></a><a href="ReceivedPacket.html" title="">ReceivedPacket</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Related.html" title="" class="class"></a><a href="Related.html" title="">Related</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="ResponsePacket.html" title="" class="class"></a><a href="ResponsePacket.html" title="">ResponsePacket</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SendPacket.html" title="" class="class"></a><a href="SendPacket.html" title="">SendPacket</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="Session.html" title="" class="class"></a><a href="Session.html" title="">Session</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SessionPipeline.html" title="" class="class"></a><a href="SessionPipeline.html" title="">SessionPipeline</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SessionReaper.html" title="" class="class"></a><a href="SessionReaper.html" title="">SessionReaper</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SessionRouter.html" title="Login sessions are divided between two actors." class="class"></a><a href="SessionRouter.html" title="Login sessions are divided between two actors.">SessionRouter</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SessionRouterAPI.html" title="" class="trait"></a><a href="SessionRouterAPI.html" title="">SessionRouterAPI</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="SessionState.html" title="" class="trait"></a><a href="SessionState.html" title="">SessionState</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="TcpListener.html" title="" class="class"></a><a href="TcpListener.html" title="">TcpListener</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="UdpListener.html" title="" class="class"></a><a href="UdpListener.html" title="">UdpListener</a></li><li class="current-entities indented3"><a href="UdpNetworkSimulator$.html" title="" class="object"></a> <a href="UdpNetworkSimulator.html" title="" class="class"></a><a href="UdpNetworkSimulator.html" title="">UdpNetworkSimulator</a></li><li class="current-entities indented3"><span class="separator"></span> <a href="WorldSession$.html" title="" class="object"></a><a href="WorldSession$.html" title="">WorldSession</a></li></ul></div></div><div id="content"><body class="class type"><div id="definition"><a href="PacketCodingActor$.html" title="See companion object"><div class="big-circle class-companion-object">c</div></a><p id="owner"><a href="../../index.html" name="net" id="net" class="extype">net</a>.<a href="../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a>.<a href="index.html" name="net.psforever.login" id="net.psforever.login" class="extype">login</a></p><h1><a href="PacketCodingActor$.html" title="See companion object">PacketCodingActor</a><span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html" title="Permalink"><i class="material-icons"></i></a></span></h1><h3><span class="morelinks"><div>Companion <a href="PacketCodingActor$.html" title="See companion object">object PacketCodingActor</a></div></span></h3></div><h4 id="signature" class="signature"><span class="modifier_kind"><span class="modifier"></span> <span class="kind">class</span></span> <span class="symbol"><span class="name">PacketCodingActor</span><span class="result"> extends <span name="akka.actor.Actor" class="extype">Actor</span> with <a href="../../../akka/actor/MDCContextAware.html" name="akka.actor.MDCContextAware" id="akka.actor.MDCContextAware" class="extype">MDCContextAware</a></span></span></h4><div id="comment" class="fullcommenttop"><div class="comment cmt"><p>In between the network side and the higher functioning side of the simulation:
accept packets and transform them into a sequence of data (encoding), and
accept a sequence of data and transform it into s packet (decoding).<br>
<br>
Following the standardization of the <code>SessionRouter</code> pipeline, the throughput of this <code>Actor</code> has directionality.
The "network," where the encoded data comes and goes, is assumed to be <code>leftRef</code>.
The "simulation", where the decoded packets come and go, is assumed to be <code>rightRef</code>.
<code>rightRef</code> can accept a sequence that looks like encoded data but it will merely pass out the same sequence.
Likewise, <code>leftRef</code> accepts decoded packets but merely ejects the same packets without doing any work on them.
The former functionality is anticipated.
The latter functionality is deprecated.<br>
<br>
Encoded data leaving the <code>Actor</code> (<code>leftRef</code>) is limited by an upper bound capacity.
Sequences can not be larger than that bound or else they will be dropped.
This maximum transmission unit (MTU) is used to divide the encoded sequence into chunks of encoded data,
re-packaged into nested <code>ControlPacket</code> units, and each unit encoded.
The outer packaging is numerically consistent with a <code>subslot</code> that starts counting once the simulation starts.
The client is very specific about the <code>subslot</code> number and will reject out-of-order packets.
It resets to 0 each time this <code>Actor</code> starts up and the client reflects this functionality.
</p></div><dl class="attributes block"><dt>Source</dt><dd><a href="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/login/PacketCodingActor.scala" target="_blank">PacketCodingActor.scala</a></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><a href="../../../akka/actor/MDCContextAware.html" name="akka.actor.MDCContextAware" id="akka.actor.MDCContextAware" class="extype">MDCContextAware</a>, <span name="akka.actor.ActorLogging" class="extype">ActorLogging</span>, <span name="akka.actor.Actor" class="extype">Actor</span>, <span name="scala.AnyRef" class="extype">AnyRef</span>, <span name="scala.Any" class="extype">Any</span></div></div></div></div><div id="mbrsel"><div class="toggle"></div><div id="memberfilter"><i class="material-icons arrow"></i><span class="input"><input placeholder="Filter all members" id="mbrsel-input" type="text" accesskey="/"/></span><i class="clear material-icons"></i></div><div id="filterby"><div id="order"><span class="filtertype">Ordering</span><ol><li class="alpha in"><span>Alphabetic</span></li><li class="inherit out"><span>By Inheritance</span></li></ol></div><div class="ancestors"><span class="filtertype">Inherited<br/></span><ol id="linearization"><li class="in" name="net.psforever.login.PacketCodingActor"><span>PacketCodingActor</span></li><li class="in" name="akka.actor.MDCContextAware"><span>MDCContextAware</span></li><li class="in" name="akka.actor.ActorLogging"><span>ActorLogging</span></li><li class="in" name="akka.actor.Actor"><span>Actor</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li></ol></div><div class="ancestors"><span class="filtertype"></span><ol><li class="hideall out"><span>Hide All</span></li><li class="showall in"><span>Show All</span></li></ol></div><div id="visbl"><span class="filtertype">Visibility</span><ol><li class="public in"><span>Public</span></li><li class="protected out"><span>Protected</span></li></ol></div></div></div><div id="template"><div id="allMembers"><div id="constructors" class="members"><h3>Instance Constructors</h3><ol><li class="indented0 " name="net.psforever.login.PacketCodingActor#&lt;init&gt;" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="&lt;init&gt;():net.psforever.login.PacketCodingActor"></a><a id="&lt;init&gt;:PacketCodingActor"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#&lt;init&gt;():net.psforever.login.PacketCodingActor" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">new</span></span> <span class="symbol"><span class="name">PacketCodingActor</span><span class="params">()</span></span></li></ol></div><div id="types" class="types members"><h3>Type Members</h3><ol><li class="indented0 " name="akka.actor.Actor.Receive" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Receive=akka.actor.Actor.Receive"></a><a id="Receive:Receive"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#Receive=akka.actor.Actor.Receive" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">type</span></span> <span class="symbol"><span class="name">Receive</span><span class="result alias"> = <span name="scala.PartialFunction" class="extype">PartialFunction</span>[<span name="scala.Any" class="extype">Any</span>, <span name="scala.Unit" class="extype">Unit</span>]</span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li></ol></div><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="scala.AnyRef#!=" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#!=(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $bang$eq">!=</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef###" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="##:Int"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html###:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $hash$hash">##</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#==" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#==(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $eq$eq">==</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#AddSlottedPacketToLog" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="AddSlottedPacketToLog(subslot:Int,packet:scodec.bits.ByteVector):Unit"></a><a id="AddSlottedPacketToLog(Int,ByteVector):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#AddSlottedPacketToLog(subslot:Int,packet:scodec.bits.ByteVector):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">AddSlottedPacketToLog</span><span class="params">(<span name="subslot">subslot: <span name="scala.Int" class="extype">Int</span></span>, <span name="packet">packet: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#Established" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Established:PacketCodingActor.this.Receive"></a><a id="Established:Receive"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#Established:PacketCodingActor.this.Receive" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Established</span><span class="result">: <a href="#Receive=akka.actor.Actor.Receive" name="net.psforever.login.PacketCodingActor.Receive" id="net.psforever.login.PacketCodingActor.Receive" class="extmbr">Receive</a></span></span></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#Initializing" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Initializing:PacketCodingActor.this.Receive"></a><a id="Initializing:Receive"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#Initializing:PacketCodingActor.this.Receive" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Initializing</span><span class="result">: <a href="#Receive=akka.actor.Actor.Receive" name="net.psforever.login.PacketCodingActor.Receive" id="net.psforever.login.PacketCodingActor.Receive" class="extmbr">Receive</a></span></span></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#Subslot" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Subslot:Int"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#Subslot:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Subslot</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><p class="shortcomment cmt">Retrieve the current subslot number.</p><div class="fullcomment"><div class="comment cmt"><p>Retrieve the current subslot number.
Increment the <code>subslot</code> for the next time it is needed.</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>a <code>16u</code> number starting at 0</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#UnmarshalInnerPacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="UnmarshalInnerPacket(data:scodec.bits.ByteVector,description:String):Unit"></a><a id="UnmarshalInnerPacket(ByteVector,String):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#UnmarshalInnerPacket(data:scodec.bits.ByteVector,description:String):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">UnmarshalInnerPacket</span><span class="params">(<span name="data">data: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>, <span name="description">description: <span name="scala.Predef.String" class="extype">String</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Transform data into a container packet and re-submit that container to the process that handles the packet.</p><div class="fullcomment"><div class="comment cmt"><p>Transform data into a container packet and re-submit that container to the process that handles the packet.</p></div><dl class="paramcmts block"><dt class="param">data</dt><dd class="cmt"><p>the packet data</p></dd><dt class="param">description</dt><dd class="cmt"><p>an explanation of the input <code>data</code></p></dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#aroundPostRestart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="aroundPostRestart(reason:Throwable):Unit"></a><a id="aroundPostRestart(Throwable):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#aroundPostRestart(reason:Throwable):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">aroundPostRestart</span><span class="params">(<span name="reason">reason: <span name="scala.Throwable" class="extype">Throwable</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<a href="../../../akka/index.html" name="akka" id="akka" class="extype">akka</a>] </dd><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@InternalApi</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#aroundPostStop" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="aroundPostStop():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#aroundPostStop():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">aroundPostStop</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<a href="../../../akka/index.html" name="akka" id="akka" class="extype">akka</a>] </dd><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@InternalApi</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#aroundPreRestart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="aroundPreRestart(reason:Throwable,message:Option[Any]):Unit"></a><a id="aroundPreRestart(Throwable,Option[Any]):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#aroundPreRestart(reason:Throwable,message:Option[Any]):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">aroundPreRestart</span><span class="params">(<span name="reason">reason: <span name="scala.Throwable" class="extype">Throwable</span></span>, <span name="message">message: <span name="scala.Option" class="extype">Option</span>[<span name="scala.Any" class="extype">Any</span>]</span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<a href="../../../akka/index.html" name="akka" id="akka" class="extype">akka</a>] </dd><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@InternalApi</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#aroundPreStart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="aroundPreStart():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#aroundPreStart():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">aroundPreStart</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<a href="../../../akka/index.html" name="akka" id="akka" class="extype">akka</a>] </dd><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@InternalApi</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.MDCContextAware#aroundReceive" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="aroundReceive(receive:akka.actor.Actor.Receive,msg:Any):Unit"></a><a id="aroundReceive(akka.actor.Actor.Receive,Any):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#aroundReceive(receive:akka.actor.Actor.Receive,msg:Any):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">aroundReceive</span><span class="params">(<span name="receive">receive: <span name="akka.actor.Actor.Receive" class="extype">akka.actor.Actor.Receive</span></span>, <span name="msg">msg: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<a href="../../../akka/index.html" name="akka" id="akka" class="extype">akka</a>] </dd><dt>Definition Classes</dt><dd><a href="../../../akka/actor/MDCContextAware.html" name="akka.actor.MDCContextAware" id="akka.actor.MDCContextAware" class="extype">MDCContextAware</a> → Actor</dd></dl></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#asInstanceOf[T0]:T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Any.asInstanceOf.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#clone" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="clone():Object"></a><a id="clone():AnyRef"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#clone():Object" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">clone</span><span class="params">()</span><span class="result">: <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.CloneNotSupportedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#context" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="context:akka.actor.ActorContext"></a><a id="context:ActorContext"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#context:akka.actor.ActorContext" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">implicit </span> <span class="kind">val</span></span> <span class="symbol"><span class="name">context</span><span class="result">: <span name="akka.actor.ActorContext" class="extype">ActorContext</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#eq" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#eq(x$1:AnyRef):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#equals" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="equals(x$1:Object):Boolean"></a><a id="equals(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#equals(x$1:Object):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#finalize" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="finalize():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#finalize():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">finalize</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="symbol">classOf[java.lang.Throwable]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#getClass" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="getClass():Class[_]"></a><a id="getClass():Class[_&lt;:AnyRef]"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#getClass():Class[_]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">getClass</span><span class="params">()</span><span class="result">: <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#java.lang.Class" name="java.lang.Class" id="java.lang.Class" class="extype">Class</a>[_ &lt;: <span name="scala.AnyRef" class="extype">AnyRef</span>]</span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd><span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleBundlePacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleBundlePacket(data:scodec.bits.ByteVector):Unit"></a><a id="handleBundlePacket(ByteVector):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleBundlePacket(data:scodec.bits.ByteVector):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleBundlePacket</span><span class="params">(<span name="data">data: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Accept <code>ByteVector</code> data and package it into a <code>SlottedMetaPacket</code>.</p><div class="fullcomment"><div class="comment cmt"><p>Accept <code>ByteVector</code> data and package it into a <code>SlottedMetaPacket</code>.
Send it (towards the network) upon successful encoding.</p></div><dl class="paramcmts block"><dt class="param">data</dt><dd class="cmt"><p>an encoded packet</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleBundlePacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleBundlePacket(vec:Vector[scodec.bits.ByteVector]):Unit"></a><a id="handleBundlePacket(Vector[ByteVector]):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleBundlePacket(vec:Vector[scodec.bits.ByteVector]):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleBundlePacket</span><span class="params">(<span name="vec">vec: <span name="scala.Vector" class="extype">Vector</span>[<span name="scodec.bits.ByteVector" class="extype">ByteVector</span>]</span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Accept a <code>Vector</code> of encoded packets and re-package them.</p><div class="fullcomment"><div class="comment cmt"><p>Accept a <code>Vector</code> of encoded packets and re-package them.
The normal order is to package the elements of the vector into a <code>MultiPacketEx</code>.
If the vector only has one element, it will get packaged by itself in a <code>SlottedMetaPacket</code>.
If that one element risks being too big for the MTU, however, it will be handled off to be split.
Splitting should preserve <code>Subslot</code> ordering with the rest of the bundling.</p></div><dl class="paramcmts block"><dt class="param">vec</dt><dd class="cmt"><p>a specific number of byte streams</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleBundlePacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleBundlePacket(bundle:List[net.psforever.packet.PlanetSidePacket]):Unit"></a><a id="handleBundlePacket(List[PlanetSidePacket]):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleBundlePacket(bundle:List[net.psforever.packet.PlanetSidePacket]):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleBundlePacket</span><span class="params">(<span name="bundle">bundle: <span name="scala.List" class="extype">List</span>[<a href="../packet/PlanetSidePacket.html" name="net.psforever.packet.PlanetSidePacket" id="net.psforever.packet.PlanetSidePacket" class="extype">PlanetSidePacket</a>]</span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Accept a <code>List</code> of packets and sequentially re-package the elements from the list into multiple container packets.<br>
<br>
The original packets are encoded then paired with their encoding lengths plus extra space to prefix the length.</p><div class="fullcomment"><div class="comment cmt"><p>Accept a <code>List</code> of packets and sequentially re-package the elements from the list into multiple container packets.<br>
<br>
The original packets are encoded then paired with their encoding lengths plus extra space to prefix the length.
Encodings from these pairs are drawn from the list until into buckets that fit a maximum byte stream length.
The size limitation on any bucket is the MTU limit.
less by the base sizes of <code>MultiPacketEx</code> (2) and of <code>SlottedMetaPacket</code> (4).</p></div><dl class="paramcmts block"><dt class="param">bundle</dt><dd class="cmt"><p>the packets to be bundled</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleControlPacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleControlPacket(container:net.psforever.packet.PlanetSidePacketContainer,packet:net.psforever.packet.PlanetSideControlPacket):Unit"></a><a id="handleControlPacket(PlanetSidePacketContainer,PlanetSideControlPacket):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleControlPacket(container:net.psforever.packet.PlanetSidePacketContainer,packet:net.psforever.packet.PlanetSideControlPacket):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleControlPacket</span><span class="params">(<span name="container">container: <a href="../packet/PlanetSidePacketContainer.html" name="net.psforever.packet.PlanetSidePacketContainer" id="net.psforever.packet.PlanetSidePacketContainer" class="extype">PlanetSidePacketContainer</a></span>, <span name="packet">packet: <a href="../packet/PlanetSideControlPacket.html" name="net.psforever.packet.PlanetSideControlPacket" id="net.psforever.packet.PlanetSideControlPacket" class="extype">PlanetSideControlPacket</a></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Process a control packet or determine that it does not need to be processed at this level.</p><div class="fullcomment"><div class="comment cmt"><p>Process a control packet or determine that it does not need to be processed at this level.
Primarily, if the packet is of a type that contains another packet that needs be be unmarshalled,
that/those packet must be unwound.<br>
<br>
The subslot information is used to identify these nested packets after arriving at their destination,
to establish order for sequential packets and relation between divided packets.</p></div><dl class="paramcmts block"><dt class="param">container</dt><dd class="cmt"><p>the original container packet</p></dd><dt class="param">packet</dt><dd class="cmt"><p>the packet that was extracted from the container</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handlePacketContainer" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handlePacketContainer(container:net.psforever.packet.PlanetSidePacketContainer):Unit"></a><a id="handlePacketContainer(PlanetSidePacketContainer):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handlePacketContainer(container:net.psforever.packet.PlanetSidePacketContainer):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handlePacketContainer</span><span class="params">(<span name="container">container: <a href="../packet/PlanetSidePacketContainer.html" name="net.psforever.packet.PlanetSidePacketContainer" id="net.psforever.packet.PlanetSidePacketContainer" class="extype">PlanetSidePacketContainer</a></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt"> Sort and redirect a container packet bound for the server by type of contents.</p><div class="fullcomment"><div class="comment cmt"><p> Sort and redirect a container packet bound for the server by type of contents.
<code>GamePacket</code> objects can just onwards without issue.
<code>ControlPacket</code> objects may need to be dequeued.
All other container types are invalid.</p></div><dl class="paramcmts block"><dt class="param">container</dt><dd class="cmt"><p>the container packet</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleSplitPacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleSplitPacket(data:scodec.bits.ByteVector):Unit"></a><a id="handleSplitPacket(ByteVector):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleSplitPacket(data:scodec.bits.ByteVector):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleSplitPacket</span><span class="params">(<span name="data">data: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Accept <code>ByteVector</code> data, representing a <code>ControlPacket</code>, and split it into chunks.</p><div class="fullcomment"><div class="comment cmt"><p>Accept <code>ByteVector</code> data, representing a <code>ControlPacket</code>, and split it into chunks.
The chunks should not be blocked by the MTU.
Send each chunk (towards the network) as it is converted.</p></div><dl class="paramcmts block"><dt class="param">data</dt><dd class="cmt"><p><code>ByteVector</code> data to be split</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#handleSplitPacket" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="handleSplitPacket(cont:net.psforever.packet.ControlPacket):Unit"></a><a id="handleSplitPacket(ControlPacket):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#handleSplitPacket(cont:net.psforever.packet.ControlPacket):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">handleSplitPacket</span><span class="params">(<span name="cont">cont: <a href="../packet/ControlPacket.html" name="net.psforever.packet.ControlPacket" id="net.psforever.packet.ControlPacket" class="extype">ControlPacket</a></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Transform a <code>ControlPacket</code> into <code>ByteVector</code> data for splitting.</p><div class="fullcomment"><div class="comment cmt"><p>Transform a <code>ControlPacket</code> into <code>ByteVector</code> data for splitting.</p></div><dl class="paramcmts block"><dt class="param">cont</dt><dd class="cmt"><p>the original <code>ControlPacket</code></p></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#hashCode" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="hashCode():Int"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#hashCode():Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">hashCode</span><span class="params">()</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd><dt>Annotations</dt><dd><span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="scala.Any#isInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="isInstanceOf[T0]:Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#isInstanceOf[T0]:Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="akka.actor.ActorLogging#log" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="log:akka.event.LoggingAdapter"></a><a id="log:LoggingAdapter"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#log:akka.event.LoggingAdapter" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">log</span><span class="result">: <span name="akka.event.LoggingAdapter" class="extype">LoggingAdapter</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>ActorLogging</dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#mtuLimit" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="mtuLimit(msg:scodec.bits.ByteVector):Unit"></a><a id="mtuLimit(ByteVector):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#mtuLimit(msg:scodec.bits.ByteVector):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">mtuLimit</span><span class="params">(<span name="msg">msg: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Check that an outbound packet is not too big to get stuck by the MTU.</p><div class="fullcomment"><div class="comment cmt"><p>Check that an outbound packet is not too big to get stuck by the MTU.
If it is larger than the MTU, divide it up and re-package the sections.
Otherwise, send the data out like normal.</p></div><dl class="paramcmts block"><dt class="param">msg</dt><dd class="cmt"><p>the encoded packet data</p></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#ne" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="ne(x$1:AnyRef):Boolean"></a><a id="ne(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#ne(x$1:AnyRef):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">ne</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#notify" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="notify():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#notify():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">notify</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#notifyAll" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="notifyAll():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#notifyAll():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">notifyAll</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#postRestart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="postRestart(reason:Throwable):Unit"></a><a id="postRestart(Throwable):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#postRestart(reason:Throwable):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">postRestart</span><span class="params">(<span name="reason">reason: <span name="scala.Throwable" class="extype">Throwable</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="symbol">classOf[java.lang.Exception]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#postStop" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="postStop():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#postStop():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">postStop</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.login.PacketCodingActor" id="net.psforever.login.PacketCodingActor" class="extype">PacketCodingActor</a> → Actor</dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#preRestart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="preRestart(reason:Throwable,message:Option[Any]):Unit"></a><a id="preRestart(Throwable,Option[Any]):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#preRestart(reason:Throwable,message:Option[Any]):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">preRestart</span><span class="params">(<span name="reason">reason: <span name="scala.Throwable" class="extype">Throwable</span></span>, <span name="message">message: <span name="scala.Option" class="extype">Option</span>[<span name="scala.Any" class="extype">Any</span>]</span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="symbol">classOf[java.lang.Exception]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#preStart" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="preStart():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#preStart():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">preStart</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="symbol">classOf[java.lang.Exception]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#receive" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="receive:PacketCodingActor.this.Receive"></a><a id="receive:Receive"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#receive:PacketCodingActor.this.Receive" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">receive</span><span class="result">: <a href="#Receive=akka.actor.Actor.Receive" name="net.psforever.login.PacketCodingActor.Receive" id="net.psforever.login.PacketCodingActor.Receive" class="extmbr">Receive</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.login.PacketCodingActor" id="net.psforever.login.PacketCodingActor" class="extype">PacketCodingActor</a> → Actor</dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#self" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="self:akka.actor.ActorRef"></a><a id="self:ActorRef"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#self:akka.actor.ActorRef" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">implicit final </span> <span class="kind">val</span></span> <span class="symbol"><span class="name">self</span><span class="result">: <span name="akka.actor.ActorRef" class="extype">ActorRef</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#sendResponseLeft" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="sendResponseLeft(cont:scodec.bits.ByteVector):Unit"></a><a id="sendResponseLeft(ByteVector):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#sendResponseLeft(cont:scodec.bits.ByteVector):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">sendResponseLeft</span><span class="params">(<span name="cont">cont: <span name="scodec.bits.ByteVector" class="extype">ByteVector</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Encoded sequence of data going towards the network.</p><div class="fullcomment"><div class="comment cmt"><p>Encoded sequence of data going towards the network.</p></div><dl class="paramcmts block"><dt class="param">cont</dt><dd class="cmt"><p>the data</p></dd></dl></div></li><li class="indented0 " name="net.psforever.login.PacketCodingActor#sendResponseRight" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="sendResponseRight(cont:net.psforever.packet.PlanetSidePacketContainer):Unit"></a><a id="sendResponseRight(PlanetSidePacketContainer):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#sendResponseRight(cont:net.psforever.packet.PlanetSidePacketContainer):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">sendResponseRight</span><span class="params">(<span name="cont">cont: <a href="../packet/PlanetSidePacketContainer.html" name="net.psforever.packet.PlanetSidePacketContainer" id="net.psforever.packet.PlanetSidePacketContainer" class="extype">PlanetSidePacketContainer</a></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><p class="shortcomment cmt">Decoded packet going towards the simulation.</p><div class="fullcomment"><div class="comment cmt"><p>Decoded packet going towards the simulation.</p></div><dl class="paramcmts block"><dt class="param">cont</dt><dd class="cmt"><p>the packet</p></dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#sender" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="sender():akka.actor.ActorRef"></a><a id="sender():ActorRef"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#sender():akka.actor.ActorRef" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">sender</span><span class="params">()</span><span class="result">: <span name="akka.actor.ActorRef" class="extype">ActorRef</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#supervisorStrategy" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="supervisorStrategy:akka.actor.SupervisorStrategy"></a><a id="supervisorStrategy:SupervisorStrategy"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#supervisorStrategy:akka.actor.SupervisorStrategy" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">supervisorStrategy</span><span class="result">: <span name="akka.actor.SupervisorStrategy" class="extype">SupervisorStrategy</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#synchronized" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](=&gt;T0):T0"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: =&gt; <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span>)</span><span class="result">: <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#toString" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="toString():String"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#toString():String" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">toString</span><span class="params">()</span><span class="result">: <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#java.lang.String" name="java.lang.String" id="java.lang.String" class="extype">String</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="akka.actor.Actor#unhandled" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="unhandled(message:Any):Unit"></a><a id="unhandled(Any):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#unhandled(message:Any):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">unhandled</span><span class="params">(<span name="message">message: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Actor</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait():Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#wait():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait(x$1:Long,x$2:Int):Unit"></a><a id="wait(Long,Int):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span name="scala.Long" class="extype">Long</span></span>, <span name="arg1">arg1: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait(x$1:Long):Unit"></a><a id="wait(Long):Unit"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#wait(x$1:Long):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span name="scala.Long" class="extype">Long</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li></ol></div></div><div id="inheritedMembers"><div name="akka.actor.MDCContextAware" class="parent"><h3>Inherited from <a href="../../../akka/actor/MDCContextAware.html" name="akka.actor.MDCContextAware" id="akka.actor.MDCContextAware" class="extype">MDCContextAware</a></h3></div><div name="akka.actor.ActorLogging" class="parent"><h3>Inherited from <span name="akka.actor.ActorLogging" class="extype">ActorLogging</span></h3></div><div name="akka.actor.Actor" class="parent"><h3>Inherited from <span name="akka.actor.Actor" class="extype">Actor</span></h3></div><div name="scala.AnyRef" class="parent"><h3>Inherited from <span name="scala.AnyRef" class="extype">AnyRef</span></h3></div><div name="scala.Any" class="parent"><h3>Inherited from <span name="scala.Any" class="extype">Any</span></h3></div></div><div id="groupedMembers"><div name="Ungrouped" class="group"><h3>Ungrouped</h3></div></div></div><div id="tooltip"></div><div id="footer"></div></body></div></div></div></body></html>