/** * Returns a lock queue for a lock identified by the combination of <code>lockRegionName</code> * and <code>lockKey</code>. If the lock queue does not exist, creates and registers it. * * @param lockRegionName a name of the region where this lock is going to be placed. The region * name is used to separate cluster-wide and cache-specific locks. * @param lockKey@return a lock queue. * @return the lock queue. */ public LockQueue getLockQueue(final String lockRegionName, final Binary lockKey) { final LockQueueKey lockQueueKey = new LockQueueKey(lockRegionName, lockKey); LockQueue lockQueue = lockQueues.get(lockQueueKey); if (lockQueue == null) { lockQueue = new LockQueue(); lockQueues.put(lockQueueKey, lockQueue); } return lockQueue; }
/** {@inheritDoc} */ public void readWire(final DataInputStream in) throws IOException, ClassNotFoundException { final int size = in.readInt(); for (int i = 0; i < size; i++) { final LockQueueKey lockQueueKey = new LockQueueKey(); lockQueueKey.readWire(in); final LockQueue lockQueue = new LockQueue(); lockQueue.readWire(in); lockQueues.put(lockQueueKey, lockQueue); } }