Package io.vertx.reactivex.ext.auth.prng

## Class VertxContextPRNG

- java.lang.Object
- - io.vertx.reactivex.ext.auth.prng.VertxContextPRNG

- All Implemented Interfaces:
    `io.vertx.lang.rx.RxDelegate`

      public class VertxContextPRNG
      extends Object
      implements io.vertx.lang.rx.RxDelegate

  A secure non blocking random number generator isolated to the current context. The PRNG is bound to the vert.x context and setup to close when the context shuts down.

  When applicable, use of VertxContextPRNG rather than create new PRNG objects is helpful to keep the system entropy usage to the minimum avoiding potential blocking across the application.

  The use of VertxContextPRNG is particularly appropriate when multiple handlers use random numbers.

  NOTE: This class has been automatically generated from the `original` non RX-ified interface using Vert.x codegen.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static io.vertx.lang.rx.TypeArg<VertxContextPRNG>` | `__TYPE_ARG` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VertxContextPRNG​(VertxContextPRNG delegate)` |
    `VertxContextPRNG​(Object delegate)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | stop seeding the PRNG
    `static VertxContextPRNG` | `current()` | Get or create a secure non blocking random number generator using the current vert.x context.
    `static VertxContextPRNG` | `current​(Vertx vertx)` | Get or create a secure non blocking random number generator using the current vert.x instance.
    `boolean` | `equals​(Object o)` |
    `VertxContextPRNG` | `getDelegate()` |
    `int` | `hashCode()` |
    `static VertxContextPRNG` | `newInstance​(VertxContextPRNG arg)` |
    `boolean` | `nextBoolean()` | Returns a secure random boolean
    `void` | `nextBytes​(byte[] bytes)` | Fills the given byte array with random bytes.
    `double` | `nextDouble()` | Returns a secure random double value.
    `float` | `nextFloat()` | Returns a secure random float value.
    `double` | `nextGaussian()` | Returns a secure random double value.
    `int` | `nextInt()` | Returns a secure random int
    `int` | `nextInt​(int bound)` | Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).
    `long` | `nextLong()` | Returns a secure random long
    `String` | `nextString​(int length)` | Returns a Base64 url encoded String of random data with the given length.
    `String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### __TYPE_ARG

          public static final io.vertx.lang.rx.TypeArg<VertxContextPRNG> __TYPE_ARG

  - ### Constructor Detail

    - #### VertxContextPRNG

          public VertxContextPRNG​(VertxContextPRNG delegate)

    - #### VertxContextPRNG

          public VertxContextPRNG​(Object delegate)

  - ### Method Detail

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### getDelegate

          public VertxContextPRNG getDelegate()

      Specified by:
        `getDelegate` in interface `io.vertx.lang.rx.RxDelegate`

    - #### current

          public static VertxContextPRNG current()

      Get or create a secure non blocking random number generator using the current vert.x context. If there is no current context (i.e.: not running on the eventloop) then a `IllegalStateException` is thrown.

      Note, if a context isn't allowed to be used, for example, exceptions are thrown on getting and putting data, the VertxContextPRNG falls back to instantiate a new instance of the PRNG per call.

      Returns:
        A secure non blocking random number generator.

    - #### current

          public static VertxContextPRNG current​(Vertx vertx)

      Get or create a secure non blocking random number generator using the current vert.x instance. Since the context might be different this method will attempt to use the current context first if available and then fall back to create a new instance of the PRNG.

      Note, if a context isn't allowed to be used, for example, exceptions are thrown on getting and putting data, the VertxContextPRNG falls back to instantiate a new instance of the PRNG per call.

      Parameters:
        `vertx` - a Vert.x instance.
      Returns:
        A secure non blocking random number generator.

    - #### close

          public void close()

      stop seeding the PRNG

    - #### nextString

          public String nextString​(int length)

      Returns a Base64 url encoded String of random data with the given length. The length parameter refers to the length of the String before the encoding step.
      Parameters:
        `length` - the desired string length before Base64 encoding.
      Returns:
        A base 64 encoded string.

    - #### nextInt

          public int nextInt()

      Returns a secure random int
      Returns:
        random int.

    - #### nextInt

          public int nextInt​(int bound)

      Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).
      Parameters:
        `bound` - the upper bound (exclusive), which must be positive.
      Returns:
        random int.

    - #### nextBoolean

          public boolean nextBoolean()

      Returns a secure random boolean
      Returns:
        random boolean.

    - #### nextLong

          public long nextLong()

      Returns a secure random long
      Returns:
        random long.

    - #### nextFloat

          public float nextFloat()

      Returns a secure random float value. The value is uniformly distributed between 0.0 and 1.0
      Returns:
        random float.

    - #### nextDouble

          public double nextDouble()

      Returns a secure random double value. The value is uniformly distributed between 0.0 and 1.0
      Returns:
        random double.

    - #### nextGaussian

          public double nextGaussian()

      Returns a secure random double value. The value is Gaussian ("normally") distributed with mean 0.0 and standard deviation 1.0
      Returns:
        random double.

    - #### nextBytes

          public void nextBytes​(byte[] bytes)

      Fills the given byte array with random bytes.
      Parameters:
        `bytes` - a byte array.

    - #### newInstance

          public static VertxContextPRNG newInstance​(VertxContextPRNG arg)