org.eclipse.net4j.util.concurrent

## Class RWLockManager<OBJECT,CONTEXT>

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.net4j.util.concurrent.RWLockManager<OBJECT,CONTEXT>

- All Implemented Interfaces:
    IRWLockManager<OBJECT,CONTEXT>, INotifier, IDeactivateable, ILifecycle, ILifecycle.DeferrableActivation

  Deprecated.
  As of 3.2 use `RWOLockManager`.

      @Deprecated
      public class RWLockManager<OBJECT,CONTEXT>
      extends Lifecycle
      implements IRWLockManager<OBJECT,CONTEXT>

  Support Multiple reads/no write and upgrade lock from read to write. Many context could request `write` lock at the same time. It will privileges first context that has already a `read` lock. If no one has any read lock, it's "first come first serve".
  Since:
    2.0
  Author:
    Simon McDuff

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static interface` | `RWLockManager.LockEntry<OBJECT,CONTEXT>` Deprecated. Use `RWOLockManager`
    `protected static interface` | `RWLockManager.LockEntryHandler<OBJECT,CONTEXT>` Deprecated. Use `RWOLockManager`
    `protected static interface` | `RWLockManager.LockStrategy<OBJECT,CONTEXT>` Deprecated. Use `RWOLockManager`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `IRWLockManager.LockType`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

      `ILifecycle.DeferrableActivation`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `USE_LABEL`

    - ### Fields inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `NO_WAIT, WAIT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RWLockManager()` Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `changeContext(CONTEXT oldContext, CONTEXT newContext)` Deprecated.
    `protected RWLockManager.LockEntry<OBJECT,CONTEXT>` | `getLockEntry(OBJECT objectToLock)` Deprecated.
    `protected RWLockManager.LockStrategy<OBJECT,CONTEXT>` | `getLockingStrategy(IRWLockManager.LockType type)` Deprecated.
    `protected void` | `handleLockEntries(CONTEXT context, RWLockManager.LockEntryHandler<OBJECT,CONTEXT> handler)` Deprecated.
    `boolean` | `hasLock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)` Deprecated.
    `boolean` | `hasLockByOthers(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)` Deprecated.
    `void` | `lock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToLock, long timeout)` Deprecated.
    `void` | `lock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout)` Deprecated.
    `void` | `unlock(CONTEXT context)` Deprecated. Attempts to release all locks(read and write) for a given context.
    `void` | `unlock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)` Deprecated. Attempts to release for a given locktype, context and objects.

    - ### Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString`

    - ### Methods inherited from class org.eclipse.net4j.util.event.Notifier

      `addListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener`

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

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

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

- - ### Constructor Detail

    - #### RWLockManager

          public RWLockManager()

      Deprecated.

  - ### Method Detail

    - #### lock

          public void lock(IRWLockManager.LockType type,
                           CONTEXT context,
                           java.util.Collection<? extends OBJECT> objectsToLock,
                           long timeout)
                    throws java.lang.InterruptedException

      Deprecated.
      Specified by:
        `lock` in interface `IRWLockManager<OBJECT,CONTEXT>`
      Throws:
        `java.lang.InterruptedException`
      Since:
        3.0

    - #### lock

          public void lock(IRWLockManager.LockType type,
                           CONTEXT context,
                           OBJECT objectToLock,
                           long timeout)
                    throws java.lang.InterruptedException

      Deprecated.
      Specified by:
        `lock` in interface `IRWLockManager<OBJECT,CONTEXT>`
      Throws:
        `java.lang.InterruptedException`
      Since:
        3.0

    - #### unlock

          public void unlock(IRWLockManager.LockType type,
                             CONTEXT context,
                             java.util.Collection<? extends OBJECT> objectsToUnlock)

      Deprecated.
      Attempts to release for a given locktype, context and objects.
      Specified by:
        `unlock` in interface `IRWLockManager<OBJECT,CONTEXT>`
      Throws:
        `java.lang.IllegalMonitorStateException` - Unlocking objects without lock.
      Since:
        3.0

    - #### unlock

          public void unlock(CONTEXT context)

      Deprecated.
      Attempts to release all locks(read and write) for a given context.
      Specified by:
        `unlock` in interface `IRWLockManager<OBJECT,CONTEXT>`

    - #### hasLock

          public boolean hasLock(IRWLockManager.LockType type,
                                 CONTEXT context,
                                 OBJECT objectToLock)

      Deprecated.
      Specified by:
        `hasLock` in interface `IRWLockManager<OBJECT,CONTEXT>`
      Since:
        3.0

    - #### hasLockByOthers

          public boolean hasLockByOthers(IRWLockManager.LockType type,
                                         CONTEXT context,
                                         OBJECT objectToLock)

      Deprecated.
      Specified by:
        `hasLockByOthers` in interface `IRWLockManager<OBJECT,CONTEXT>`
      Since:
        3.0

    - #### handleLockEntries

          protected void handleLockEntries(CONTEXT context,
                                           RWLockManager.LockEntryHandler<OBJECT,CONTEXT> handler)

      Deprecated.
      Since:
        3.1

    - #### getLockEntry

          protected RWLockManager.LockEntry<OBJECT,CONTEXT> getLockEntry(OBJECT objectToLock)

      Deprecated.
      Since:
        3.1

    - #### getLockingStrategy

          protected RWLockManager.LockStrategy<OBJECT,CONTEXT> getLockingStrategy(IRWLockManager.LockType type)

      Deprecated.
      Since:
        3.1

    - #### changeContext

          protected void changeContext(CONTEXT oldContext,
                                       CONTEXT newContext)

      Deprecated.
      Since:
        3.1

Copyright (c) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html