PSF-LoginServer/net/psforever/objects/guid/UniqueNumberOps.html

30 lines
44 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.objects.guid.UniqueNumberOps</title><meta content="PSF - LoginServer - master - net.psforever.objects.guid.UniqueNumberOps" name="description"/><meta content="PSF LoginServer master net.psforever.objects.guid.UniqueNumberOps" 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.objects" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="objects"></a><a id="objects:objects"></a> <span class="permalink"><a href="../../../../net/psforever/objects/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">objects</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.objects.guid" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="guid"></a><a id="guid:guid"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/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">guid</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="net.psforever.objects" id="net.psforever.objects" class="extype">objects</a></dd></dl></div></li><li class="indented5 " name="net.psforever.objects.guid.key" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="key"></a><a id="key:key"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/key/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="key/index.html" title=""><span class="name">key</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></dd></dl></div></li><li class="indented5 " name="net.psforever.objects.guid.pool" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="pool"></a><a id="pool:pool"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/pool/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="pool/index.html" title=""><span class="name">pool</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></dd></dl></div></li><li class="indented5 " name="net.psforever.objects.guid.selector" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="selector"></a><a id="selector:selector"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/selector/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="selector/index.html" title=""><span class="name">selector</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></dd></dl></div></li><li class="indented5 " name="net.psforever.objects.guid.source" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="source"></a><a id="source:source"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/source/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="source/index.html" title=""><span class="name">source</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></dd></dl></div></li><li class="indented5 " name="net.psforever.objects.guid.uns" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="uns"></a><a id="uns:uns"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/uns/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="uns/index.html" title=""><span class="name">uns</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></dd></dl></div></li><li class="current-entities indented4"><span class="separator"></span> <a href="GUIDTask$.html" title="The basic compiled tasks for assigning (registering) and revoking (unregistering) globally unique identifiers. Almost all of these functions will be invoked from WorldSessionActor." class="object"></a><a href="GUIDTask$.html" title="The basic compiled tasks for assigning (registering) and revoking (unregistering) globally unique identifiers. Almost all of these functions will be invoked from WorldSessionActor.">GUIDTask</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="NumberPoolHub.html" title="A master object that manages NumberPools when they are applied to a single NumberSource." class="class"></a><a href="NumberPoolHub.html" title="A master object that manages NumberPools when they are applied to a single NumberSource.">NumberPoolHub</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="RegisteredToWrongPlaceException.html" title="The entity was registered, but not to the target UNS." class="class"></a><a href="RegisteredToWrongPlaceException.html" title="The entity was registered, but not to the target UNS.">RegisteredToWrongPlaceException</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="RegisteringException.html" title="" class="class"></a><a href="RegisteringException.html" title="">RegisteringException</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="StraightforwardTask.html" title="A primary unit of work in a workflow that is set up to execute and never be taken back." class="trait"></a><a href="StraightforwardTask.html" title="A primary unit of work in a workflow that is set up to execute and never be taken back.">StraightforwardTask</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="Task.html" title="A primary unit of work in a workflow." class="trait"></a><a href="Task.html" title="A primary unit of work in a workflow.">Task</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="TaskBehaviors.html" title="Parts of the task resolution lifecycle." class="trait"></a><a href="TaskBehaviors.html" title="Parts of the task resolution lifecycle.">TaskBehaviors</a></li><li class="current-entities indented4"><a href="TaskBundle$.html" title="" class="object"></a> <a href="TaskBundle.html" title="The packaging of a more complicated unit of work in a workflow in which one task relies on the successful completion of other tasks." class="class"></a><a href="TaskBundle.html" title="The packaging of a more complicated unit of work in a workflow in which one task relies on the successful completion of other tasks.">TaskBundle</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="TaskNotExecutedException.html" title="" class="class"></a><a href="TaskNotExecutedException.html" title="">TaskNotExecutedException</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="TaskWorkflow$.html" title="" class="object"></a><a href="TaskWorkflow$.html" title="">TaskWorkflow</a></li><li class="current-entities indented4"><a href="UniqueNumberOps$.html" title="" class="object"></a> <a href="" title="Wrap around converted NumberPools and synchronize a portion of the number registration process as a part of the global unique identifier (GUID, UID) number system (UNS, &quot;unique number system&quot;)." class="class"></a><a href="" title="Wrap around converted NumberPools and synchronize a portion of the number registration process as a part of the global unique identifier (GUID, UID) number system (UNS, &quot;unique number system&quot;).">UniqueNumberOps</a></li><li class="current-entities indented4"><a href="UniqueNumberSetup$.html" title="" class="object"></a> <a href="UniqueNumberSetup.html" title="A class for spawning Actors to manage the number pools and create a number system operations class to access those pools within the context of registering and unregistering." class="class"></a><a href="UniqueNumberSetup.html" title="A class for spawning Actors to manage the number pools and create a number system operations class to access those pools within the context of registering and unregistering.">UniqueNumberSetup</a></li><li class="current-entities indented4"><span class="separator"></span> <a href="UnregisteringException.html" title="" class="class"></a><a href="UnregisteringException.html" title="">UnregisteringException</a></li></ul></div></div><div id="content"><body class="class type"><div id="definition"><a href="UniqueNumberOps$.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.objects" id="net.psforever.objects" class="extype">objects</a>.<a href="index.html" name="net.psforever.objects.guid" id="net.psforever.objects.guid" class="extype">guid</a></p><h1><a href="UniqueNumberOps$.html" title="See companion object">UniqueNumberOps</a><span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html" title="Permalink"><i class="material-icons"></i></a></span></h1><h3><span class="morelinks"><div>Companion <a href="UniqueNumberOps$.html" title="See companion object">object UniqueNumberOps</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">UniqueNumberOps</span><span class="result"> extends <span name="scala.AnyRef" class="extype">AnyRef</span></span></span></h4><div id="comment" class="fullcommenttop"><div class="comment cmt"><p>Wrap around converted <code>NumberPool</code>s and synchronize a portion of the number registration process
as a part of the global unique identifier (GUID, UID) number system (UNS, "unique number system").
The ultimate goal is to manage a coherent group of unique identifiers for a given "region".
Both parts of the UID system sit atop the <code>Zone</code> for easy external access.
The plain part - the <code>NumberPoolHub</code> here - is used for low-priority requests
such as checking for existing associations.<br>
<br>
A four part process is used for object registration tasks.
First, the requested <code>NumberPool</code> is located among the list of known <code>NumberPool</code>s.
Second, an asynchronous request is sent to that pool to retrieve a number.
(Only any number. Only a failing case allows for selection of a specific number.)
Third, the asynchronous request returns and the original information about the request is recovered.
Fourth, both sides of the contract are completed by the object being assigned the number and
the underlying "number source" is made to remember an association between the object and the number.
Short circuits and recoveries as available on all steps though reporting is split between logging and callbacks.
The process of removing the association between a number and object (unregistering) is a similar four part process.<br>
<br>
The important relationship between this <code>Actor</code> and the <code>Map</code> of <code>NumberPoolActors</code> is as a "gate."
A single <code>Map</code> is constructed and shared between multiple entry points to the UID system where requests are messaged.
Multiple entry points send messages to the same <code>NumberPool</code>.
That <code>NumberPool</code> deals with the messages one at a time and sends reply to each entry point that communicated with it.
This process is almost as fast as the process of the <code>NumberPool</code> selecting a number.
(At least, both should be fast.)</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/objects/guid/UniqueNumberOps.scala" target="_blank">UniqueNumberOps.scala</a></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><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.objects.guid.UniqueNumberOps"><span>UniqueNumberOps</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.objects.guid.UniqueNumberOps#&lt;init&gt;" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="&lt;init&gt;(guid:net.psforever.objects.guid.NumberPoolHub,poolActors:Map[String,akka.actor.ActorRef]):net.psforever.objects.guid.UniqueNumberOps"></a><a id="&lt;init&gt;:UniqueNumberOps"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html#&lt;init&gt;(guid:net.psforever.objects.guid.NumberPoolHub,poolActors:Map[String,akka.actor.ActorRef]):net.psforever.objects.guid.UniqueNumberOps" 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">UniqueNumberOps</span><span class="params">(<span name="guid">guid: <a href="NumberPoolHub.html" name="net.psforever.objects.guid.NumberPoolHub" id="net.psforever.objects.guid.NumberPoolHub" class="extype">NumberPoolHub</a></span>, <span name="poolActors">poolActors: <span name="scala.Predef.Map" class="extype">Map</span>[<span name="scala.Predef.String" class="extype">String</span>, <span name="akka.actor.ActorRef" class="extype">ActorRef</span>]</span>)</span></span><p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"></div><dl class="paramcmts block"><dt class="param">guid</dt><dd class="cmt"><p>the supporting datatype for the unique number distribution</p></dd><dt class="param">poolActors</dt><dd class="cmt"><p>a mapping created from the <code>NumberPool</code>s, to achieve synchronized access</p></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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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.objects.guid.UniqueNumberOps#Register" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Register(obj:net.psforever.objects.entity.IdentifiableEntity,poolName:String):scala.concurrent.Future[Any]"></a><a id="Register(IdentifiableEntity,String):Future[Any]"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html#Register(obj:net.psforever.objects.entity.IdentifiableEntity,poolName:String):scala.concurrent.Future[Any]" 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">Register</span><span class="params">(<span name="obj">obj: <a href="../entity/IdentifiableEntity.html" name="net.psforever.objects.entity.IdentifiableEntity" id="net.psforever.objects.entity.IdentifiableEntity" class="extype">IdentifiableEntity</a></span>, <span name="poolName">poolName: <span name="scala.Predef.String" class="extype">String</span></span>)</span><span class="result">: <span name="scala.concurrent.Future" class="extype">Future</span>[<span name="scala.Any" class="extype">Any</span>]</span></span><p class="shortcomment cmt">The entry point for the entity GUID registration process.</p><div class="fullcomment"><div class="comment cmt"><p>The entry point for the entity GUID registration process.
A special check is made first to determine if the entity is already registered, and if so to where.
If the entity is not registered, then the process continues.</p></div><dl class="paramcmts block"><dt class="param">obj</dt><dd class="cmt"><p>the entity to be assigned a GUID</p></dd><dt class="param">poolName</dt><dd class="cmt"><p>the pool from which the entity wants a GUID to be selected</p></dd><dt>returns</dt><dd class="cmt"><p>the anticipation of this activity being completed</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.UniqueNumberOps#Unregister" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Unregister(obj:net.psforever.objects.entity.IdentifiableEntity):scala.concurrent.Future[Any]"></a><a id="Unregister(IdentifiableEntity):Future[Any]"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html#Unregister(obj:net.psforever.objects.entity.IdentifiableEntity):scala.concurrent.Future[Any]" 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">Unregister</span><span class="params">(<span name="obj">obj: <a href="../entity/IdentifiableEntity.html" name="net.psforever.objects.entity.IdentifiableEntity" id="net.psforever.objects.entity.IdentifiableEntity" class="extype">IdentifiableEntity</a></span>)</span><span class="result">: <span name="scala.concurrent.Future" class="extype">Future</span>[<span name="scala.Any" class="extype">Any</span>]</span></span><p class="shortcomment cmt">The entry point for the entity GUID unregistration process.</p><div class="fullcomment"><div class="comment cmt"><p>The entry point for the entity GUID unregistration process.
A special check is made first to determine where, if at all, the entity is registered.
Obviously, if the entity is not registered somewhere within purview of this UNS, the process can not continue.
If the entity's registration number pool is found, then the process continues.</p></div><dl class="paramcmts block"><dt class="param">obj</dt><dd class="cmt"><p>the entity to be unassigned its GUID</p></dd><dt>returns</dt><dd class="cmt"><p>the anticipation of this activity being completed</p></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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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="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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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="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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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.objects.guid.UniqueNumberOps#registrationProcessRetry" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="registrationProcessRetry(promise:scala.concurrent.Promise[Any],exception:Throwable,obj:net.psforever.objects.entity.IdentifiableEntity,hub:net.psforever.objects.guid.NumberPoolHub,pools:Map[String,akka.actor.ActorRef],poolName:String):Unit"></a><a id="registrationProcessRetry(Promise[Any],Throwable,IdentifiableEntity,NumberPoolHub,Map[String,ActorRef],String):Unit"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html#registrationProcessRetry(promise:scala.concurrent.Promise[Any],exception:Throwable,obj:net.psforever.objects.entity.IdentifiableEntity,hub:net.psforever.objects.guid.NumberPoolHub,pools:Map[String,akka.actor.ActorRef],poolName: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">registrationProcessRetry</span><span class="params">(<span name="promise">promise: <span name="scala.concurrent.Promise" class="extype">Promise</span>[<span name="scala.Any" class="extype">Any</span>]</span>, <span name="exception">exception: <span name="scala.Throwable" class="extype">Throwable</span></span>, <span name="obj">obj: <a href="../entity/IdentifiableEntity.html" name="net.psforever.objects.entity.IdentifiableEntity" id="net.psforever.objects.entity.IdentifiableEntity" class="extype">IdentifiableEntity</a></span>, <span name="hub">hub: <a href="NumberPoolHub.html" name="net.psforever.objects.guid.NumberPoolHub" id="net.psforever.objects.guid.NumberPoolHub" class="extype">NumberPoolHub</a></span>, <span name="pools">pools: <span name="scala.Predef.Map" class="extype">Map</span>[<span name="scala.Predef.String" class="extype">String</span>, <span name="akka.actor.ActorRef" class="extype">ActorRef</span>]</span>, <span name="poolName">poolName: <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">na</p><div class="fullcomment"><div class="comment cmt"><p>na</p></div><dl class="paramcmts block"><dt class="param">promise</dt><dd class="cmt"><p>the ongoing promise to be fulfilled for the future</p></dd><dt class="param">exception</dt><dd class="cmt"><p>an issue that has arrisen, forcing the retry attempt</p></dd><dt class="param">obj</dt><dd class="cmt"><p>the entity to be assigned a GUID</p></dd><dt class="param">hub</dt><dd class="cmt"><p>the supporting datatype for the unique number distribution</p></dd><dt class="param">pools</dt><dd class="cmt"><p>a mapping created from the <code>NumberPool</code>s, to achieve synchronized access</p></dd><dt class="param">poolName</dt><dd class="cmt"><p>the pool to which the object is trying to register</p></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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait():Unit"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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/objects/guid/UniqueNumberOps.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="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>