package guid
- Alphabetic
- Public
- Protected
Type Members
- class NumberPoolHub extends AnyRef
A master object that manages
NumberPool
s when they are applied to a singleNumberSource
.A master object that manages
NumberPool
s when they are applied to a singleNumberSource
. It catalogs the numbers and ensures the pool contents are unique to each other.
All globally unique numbers are sorted into user-defined groups called pools. Pools are intended to pre-allocate certain numbers to certain tasks. Two default pools also exist - "generic," for all numbers not formally placed into a pool, and a hidden restricted pool. The former can accept a variety of numbers on the source not known at initialization time loaded into it. The latter can only be set by theNumberSource
and can not be affected once this object is created. - class RegisteredToWrongPlaceException extends RuntimeException
The entity was registered, but not to the target UNS.
The entity was registered, but not to the target UNS. Rookie mistake.
- class RegisteringException extends Exception
- trait StraightforwardTask extends Task
A primary unit of work in a workflow that is set up to execute and never be taken back.
A primary unit of work in a workflow that is set up to execute and never be taken back. Good for top-level tasking that only reports on the success of work carried out by subtasks.
- trait Task extends TaskBehaviors
A primary unit of work in a workflow.
- sealed trait TaskBehaviors extends AnyRef
Parts of the task resolution lifecycle.
- final case class TaskBundle(mainTask: Task, subTasks: Seq[TaskBundle]) extends TaskBehaviors with Product with Serializable
The packaging of a more complicated unit of work in a workflow in which one task relies on the successful completion of other tasks.
The packaging of a more complicated unit of work in a workflow in which one task relies on the successful completion of other tasks.
- mainTask
the primary task
- subTasks
tasks that are necessary to complete before starting on the primary one
- class TaskNotExecutedException extends Exception
- class UniqueNumberOps extends AnyRef
Wrap around converted
NumberPool
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").Wrap around converted
NumberPool
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 theZone
for easy external access. The plain part - theNumberPoolHub
here - is used for low-priority requests such as checking for existing associations.
A four part process is used for object registration tasks. First, the requestedNumberPool
is located among the list of knownNumberPool
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.
The important relationship between thisActor
and theMap
ofNumberPoolActors
is as a "gate." A singleMap
is constructed and shared between multiple entry points to the UID system where requests are messaged. Multiple entry points send messages to the sameNumberPool
. ThatNumberPool
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 theNumberPool
selecting a number. (At least, both should be fast.) - class UniqueNumberSetup extends Actor
A class for spawning
Actor
s to manage the number pools and create a number system operations class to access those pools within the context of registering and unregistering.A class for spawning
Actor
s to manage the number pools and create a number system operations class to access those pools within the context of registering and unregistering. ThisActor
persists to maintain the number poolActor
s. Note thefinal
do-nothingreceive
method. ThisActor
should do nothing through message passing.- See also
UniqueNumberOps
- class UnregisteringException extends Exception
Value Members
- object GUIDTask
The basic compiled tasks for assigning (registering) and revoking (unregistering) globally unique identifiers.
Almost all of these functions will be invoked fromWorldSessionActor
.The basic compiled tasks for assigning (registering) and revoking (unregistering) globally unique identifiers.
Almost all of these functions will be invoked fromWorldSessionActor
. Some of the "unregistering" functions will invoke on delayedService
operations, indicating behavior that is not user/observer dependent. The object's (current)Zone
must also be knowable since the GUID systems are tied to individual zones. For simplicity, all functions have the same format where the hook into the GUID system is animplicit
parameter. It will get passed from the more complicated functions down into the less complicated functions, until it has found the basic number assignment functionality.
All functions produce aTaskBundle
container object or a list ofTaskBundle
container objects that is expected to be used by aTaskBundle
container. These "task containers" can also be unpackaged into their component tasks, sorted into other containers, and combined with other tasks to enact more complicated sequences of operations. Almost all tasks have an explicit registering and an unregistering activity defined for it. - object TaskBundle extends Serializable
- object TaskWorkflow
- object UniqueNumberOps
- object UniqueNumberSetup