Package: io.vertx.groovy.core.shareddata

## [Groovy] Class SharedData

- io.vertx.groovy.core.shareddata.SharedData

- Shared data allows you to share data safely between different parts of your application in a safe way.

  Shared data provides:

  - Cluster wide maps which can be accessed from any node of the cluster
  - Cluster wide locks which can be used to give exclusive access to resources across the cluster
  - Cluster wide counters used to maintain counts consistently across the cluster
  - Local maps for sharing data safely in the same Vert.x instance

  Please see the documentation for more information.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `SharedData (java.lang.Object delegate)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `getClusterWideMap(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<AsyncMap<K, V>>> resultHandler)` Get the cluster wide map with the specified name.
    `void` | `getCounter(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<Counter>> resultHandler)` Get a cluster wide counter.
    `java.lang.Object` | `getDelegate()`
    `LocalMap<K, V>` | `getLocalMap(java.lang.String name)` Return a `LocalMap` with the specific `name`.
    `void` | `getLock(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<Lock>> resultHandler)` Get a cluster wide lock with the specified name.
    `void` | `getLockWithTimeout(java.lang.String name, long timeout, io.vertx.core.Handler<io.vertx.core.AsyncResult<Lock>> resultHandler)` Like SharedData.getLock but specifying a timeout.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Constructor Detail

    - #### SharedData(java.lang.Object delegate)

  - ### Method Detail

    - #### void getClusterWideMap(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<AsyncMap<K, V>>> resultHandler)

      Get the cluster wide map with the specified name. The map is accessible to all nodes in the cluster and data put into the map from any node is visible to to any other node.

      Parameters:
        `name` - the name of the map
        `resultHandler` - the map will be returned asynchronously in this handler

    - #### void getCounter(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<Counter>> resultHandler)

      Get a cluster wide counter. The counter will be passed to the handler.

      Parameters:
        `name` - the name of the counter.
        `resultHandler` - the handler

    - #### java.lang.Object getDelegate()

    - #### LocalMap<K, V> getLocalMap(java.lang.String name)

      Return a `LocalMap` with the specific `name`.

      Returns:
        the msp
      Parameters:
        `name` - the name of the map

    - #### void getLock(java.lang.String name, io.vertx.core.Handler<io.vertx.core.AsyncResult<Lock>> resultHandler)

      Get a cluster wide lock with the specified name. The lock will be passed to the handler when it is available.

      Parameters:
        `name` - the name of the lock
        `resultHandler` - the handler

    - #### void getLockWithTimeout(java.lang.String name, long timeout, io.vertx.core.Handler<io.vertx.core.AsyncResult<Lock>> resultHandler)

      Like SharedData.getLock but specifying a timeout. If the lock is not obtained within the timeout a failure will be sent to the handler

      Parameters:
        `name` - the name of the lock
        `timeout` - the timeout in ms
        `resultHandler` - the handler