PSF-LoginServer/net/psforever/packet/PacketHelpers$.html

25 lines
55 KiB
HTML
Raw Normal View History

<!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.packet.PacketHelpers</title><meta content="PSF - LoginServer - master - net.psforever.packet.PacketHelpers" name="description"/><meta content="PSF LoginServer master net.psforever.packet.PacketHelpers" 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.packet" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="packet"></a><a id="packet:packet"></a> <span class="permalink"><a href="../../../net/psforever/packet/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">packet</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.packet.control" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="control"></a><a id="control:control"></a> <span class="permalink"><a href="../../../net/psforever/packet/control/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="control/index.html" title=""><span class="name">control</span></a></span><div class="fullcomment"><dl class="a
This is only to overload createEnumerationCodec to work with uint32[L] codecs (which are Long)
</p></div></div></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#createLongIntEnumCodec" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="createLongIntEnumCodec[E&lt;:enumeratum.values.IntEnumEntry](enum:enumeratum.values.IntEnum[E],storageCodec:scodec.Codec[Long]):scodec.Codec[E]"></a><a id="createLongIntEnumCodec[E&lt;:IntEnumEntry](IntEnum[E],Codec[Long]):Codec[E]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#createLongIntEnumCodec[E&lt;:enumeratum.values.IntEnumEntry](enum:enumeratum.values.IntEnum[E],storageCodec:scodec.Codec[Long]):scodec.Codec[E]" 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">createLongIntEnumCodec</span><span class="tparams">[<span name="E">E &lt;: <span name="enumeratum.values.IntEnumEntry" class="extype">IntEnumEntry</span></span>]</span><span class="params">(<span name="enum">enum: <span name="enumeratum.values.IntEnum" class="extype">IntEnum</span>[<span name="net.psforever.packet.PacketHelpers.createLongIntEnumCodec.E" class="extype">E</span>]</span>, <span name="storageCodec">storageCodec: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Long" class="extype">Long</span>]</span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="net.psforever.packet.PacketHelpers.createLongIntEnumCodec.E" class="extype">E</span>]</span></span></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#emptyCodec" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="emptyCodec[T](instance:T):scodec.Codec[T]"></a><a id="emptyCodec[T](T):Codec[T]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#emptyCodec[T](instance:T):scodec.Codec[T]" 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">emptyCodec</span><span class="tparams">[<span name="T">T</span>]</span><span class="params">(<span name="instance">instance: <span name="net.psforever.packet.PacketHelpers.emptyCodec.T" class="extype">T</span></span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="net.psforever.packet.PacketHelpers.emptyCodec.T" class="extype">T</span>]</span></span><p class="shortcomment cmt">Used in certain instances where Codec defintions are stubbed out</p></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#encodedString" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="encodedString:scodec.Codec[String]"></a><a id="encodedString:Codec[String]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#encodedString:scodec.Codec[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">encodedString</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Predef.String" class="extype">String</span>]</span></span><p class="shortcomment cmt">Codec for how PlanetSide represents strings on the wire</p></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#encodedStringAligned" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="encodedStringAligned(adjustment:Int):scodec.Codec[String]"></a><a id="encodedStringAligned(Int):Codec[String]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#encodedStringAligned(adjustment:Int):scodec.Codec[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">encodedStrin
will byte align after decoding the string lenght, but BEFORE the string itself. Scodec doesn't like this
variability and there doesn't appear to be a way to fix this issue.</p></div><dl class="paramcmts block"><dt class="param">adjustment</dt><dd class="cmt"><p>The adjustment amount in bits</p></dd><dt>returns</dt><dd class="cmt"><p>Generated string decoding codec with adjustment</p></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#encodedStringSize" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="encodedStringSize:scodec.Codec[Int]"></a><a id="encodedStringSize:Codec[Int]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#encodedStringSize:scodec.Codec[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">encodedStringSize</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Int" class="extype">Int</span>]</span></span><p class="shortcomment cmt">Common codec for how PlanetSide stores string sizes</p><div class="fullcomment"><div class="comment cmt"><p>Common codec for how PlanetSide stores string sizes</p><p>When the first bit of the byte is set, the size can be between [0, 127].
Otherwise, it is between [128, 32767] and two bytes are used for encoding.
The magic in this is next level (read as: SCodec makes things hard to understand)
</p></div></div></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#encodedWideString" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="encodedWideString:scodec.Codec[String]"></a><a id="encodedWideString:Codec[String]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#encodedWideString:scodec.Codec[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">encodedWideString</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Predef.String" class="extype">String</span>]</span></span><p class="shortcomment cmt">Common codec for PlanetSide wchar_t strings (wide strings, UTF-16)</p><div class="fullcomment"><div class="comment cmt"><p>Common codec for PlanetSide wchar_t strings (wide strings, UTF-16)</p><p>An encoded *wide* string is twice the length of the given encoded size and half of the length of the
input string. We use xmap to transform the <a href="#encodedString:scodec.Codec[String]" name="net.psforever.packet.PacketHelpers#encodedString" id="net.psforever.packet.PacketHelpers#encodedString" class="extmbr">encodedString</a> codec as this change is just a division and multiply
</p></div></div></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#encodedWideStringAligned" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="encodedWideStringAligned(adjustment:Int):scodec.Codec[String]"></a><a id="encodedWideStringAligned(Int):Codec[String]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#encodedWideStringAligned(adjustment:Int):scodec.Codec[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">encodedWideStringAligned</span><span class="params">(<span name="adjustment">adjustment: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Predef.String" class="extype">String</span>]</span></span><p class="shortcomment cmt">Same as <a href="#encodedWideString:scodec.Codec[String]" name="net.psforever.packet.PacketHelpers#encodedWideString" id="net.psforever.packet.PacketHelpers#encodedWideString" class="extmbr">encodedWideString</a> but with a bit alignment after the decoded size
</p></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/packet/PacketHelpers$.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/packet/PacketHelpers$.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/packet/PacketHelpers$.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/packet/PacketHelpers$.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="scala.AnyRef#hashCode" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="hashCode():Int"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.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><spa
<br>
This function is copied almost verbatim from its source, with exception of swapping the normal <code>ListCodec</code> for a new <code>AlignedListCodec</code>.</p><div class="fullcomment"><div class="comment cmt"><p>Encode and decode a byte-aligned <code>List</code>.<br>
<br>
This function is copied almost verbatim from its source, with exception of swapping the normal <code>ListCodec</code> for a new <code>AlignedListCodec</code>.</p></div><dl class="paramcmts block"><dt class="tparam">A</dt><dd class="cmt"><p>the type of the <code>List</code> contents</p></dd><dt class="param">countCodec</dt><dd class="cmt"><p>the codec that represents the prefixed size of the <code>List</code></p></dd><dt class="param">alignment</dt><dd class="cmt"><p>the number of bits padded between the <code>List</code> size and the <code>List</code> contents</p></dd><dt class="param">valueCodec</dt><dd class="cmt"><p>a codec that describes each of the contents of the <code>List</code></p></dd><dt>returns</dt><dd class="cmt"><p>a codec that works on a List of A</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p>codec\package.scala, listOfN</p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.PacketHelpers#listOfNSized" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="listOfNSized[A](size:Long,codec:scodec.Codec[A]):scodec.Codec[List[A]]"></a><a id="listOfNSized[A](Long,Codec[A]):Codec[List[A]]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#listOfNSized[A](size:Long,codec:scodec.Codec[A]):scodec.Codec[List[A]]" 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">listOfNSized</span><span class="tparams">[<span name="A">A</span>]</span><span class="params">(<span name="size">size: <span name="scala.Long" class="extype">Long</span></span>, <span name="codec">codec: <span name="scodec.Codec" class="extype">Codec</span>[<span name="net.psforever.packet.PacketHelpers.listOfNSized.A" class="extype">A</span>]</span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.List" class="extype">List</span>[<span name="net.psforever.packet.PacketHelpers.listOfNSized.A" class="extype">A</span>]]</span></span><p class="shortcomment cmt">Codec that encodes/decodes a list of <code>n</code> elements, where <code>n</code> is known at compile time.<br>
<br>
This function is copied almost verbatim from its source, with exception of swapping the parameter that is normally a <code>Nat</code> <code>literal</code>.</p><div class="fullcomment"><div class="comment cmt"><p>Codec that encodes/decodes a list of <code>n</code> elements, where <code>n</code> is known at compile time.<br>
<br>
This function is copied almost verbatim from its source, with exception of swapping the parameter that is normally a <code>Nat</code> <code>literal</code>.
The modified function takes a normal unsigned <code>Integer</code> and assures that the parameter is non-negative before further processing.</p></div><dl class="paramcmts block"><dt class="tparam">A</dt><dd class="cmt"><p>the type of the <code>List</code> contents</p></dd><dt class="param">size</dt><dd class="cmt"><p>the known size of the <code>List</code></p></dd><dt class="param">codec</dt><dd class="cmt"><p>a codec that describes each of the contents of the <code>List</code></p></dd><dt>returns</dt><dd class="cmt"><p>a codec that works on a List of A but excludes the size from the encoding</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p>codec\package.scala, sizedList</p></span><span class="cmt"><p>codec\package.scala, listOfN</p></span><span class="cmt"><p>codec\package.scala, provides</p></span></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/packet/PacketHelpers$.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/packet/PacketHelpers$.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/packet/PacketHelpers$.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="net.psforever.packet.PacketHelpers#peek" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="peek[A](target:scodec.Codec[A]):scodec.Codec[A]"></a><a id="peek[A](Codec[A]):Codec[A]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#peek[A](target:scodec.Codec[A]):scodec.Codec[A]" 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">peek</span><span class="tparams">[<span name="A">A</span>]</span><span class="params">(<span name="target">target: <span name="scodec.Codec" class="extype">Codec</span>[<span name="net.psforever.packet.PacketHelpers.peek.A" class="extype">A</span>]</span>)</span><spa
Decoding <code>Codec[A]</code> from the input vector emits a value but reverts to the prior read position.
Encoding <code>Codec[A]</code> to the input vector appends no new data to the input vector.
In effect, <code>peek</code> is a harmless meta-<code>Codec</code> that processes a value and introduces no changes to the input/output vector.</p></div><dl class="paramcmts block"><dt class="param">target</dt><dd class="cmt"><p>codec that decodes the value</p></dd><dt>returns</dt><dd class="cmt"><p><code>Codec</code> that behaves the same as <code>target</code> but resets the contents of the vector as if <code>Codec</code> were never applied</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>scodec.codecs.peek</code> or <code>codecs/package.scala:peek</code></p></span></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/packet/PacketHelpers$.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/packet/PacketHelpers$.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="net.psforever.packet.PacketHelpers#utf16" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="utf16:scodec.Codec[String]"></a><a id="utf16:Codec[String]"></a> <span class="permalink"><a href="../../../net/psforever/packet/PacketHelpers$.html#utf16:scodec.Codec[String]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">val</span></span> <span class="symbol"><span class="name">utf16</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<span name="scala.Predef.String" class="extype">String</span>]</span></span><p class="shortcomment cmt">Variable for the charset that PlanetSide uses for unicode (2 byte unicode)</p></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/packet/PacketHelpers$.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