mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-02-10 21:21:01 +00:00
30 lines
44 KiB
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"><</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, "unique number system")." 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, "unique number system").">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#<init>" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="<init>(guid:net.psforever.objects.guid.NumberPoolHub,poolActors:Map[String,akka.actor.ActorRef]):net.psforever.objects.guid.UniqueNumberOps"></a><a id="<init>:UniqueNumberOps"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.html#<init>(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[_<: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>[_ <: <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:=>T0):T0"></a><a id="synchronized[T0](=>T0):T0"></a> <span class="permalink"><a href="../../../../net/psforever/objects/guid/UniqueNumberOps.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/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>
|