mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-03-06 22:10:26 +00:00
46 lines
71 KiB
HTML
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"><</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#<init>" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="<init>():net.psforever.login.PacketCodingActor"></a><a id="<init>:PacketCodingActor"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#<init>():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[_<: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>[_ <: <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:=>T0):T0"></a><a id="synchronized[T0](=>T0):T0"></a> <span class="permalink"><a href="../../../net/psforever/login/PacketCodingActor.html#synchronized[T0](x$1:=>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: => <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>
|