Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2014 Higher Frequency Trading http://www.higherfrequencytrading.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.openhft.chronicle.algo.locks;
import net.openhft.chronicle.algo.bytes.Access;
public final class TryAcquireOperations {
private static final TryAcquireOperation LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(LockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryLock(access, obj, offset);
}
};
private static final TryAcquireOperation READ_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryReadLock(access, obj, offset);
}
};
private static final TryAcquireOperation UPGRADE_READ_TO_WRITE_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpgradeReadToWriteLock(access, obj, offset);
}
};
private static final TryAcquireOperation WRITE_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryWriteLock(access, obj, offset);
}
};
private static final TryAcquireOperation
UPGRADE_READ_TO_WRITE_LOCK_AND_DEREGISTER_WAIT =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteWithWaitsLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpgradeReadToWriteLockAndDeregisterWait(access, obj, offset);
}
};
private static final TryAcquireOperation
WRITE_LOCK_AND_DEREGISTER_WAIT =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteWithWaitsLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryWriteLockAndDeregisterWait(access, obj, offset);
}
};
private static final TryAcquireOperation UPDATE_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteUpdateLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpdateLock(access, obj, offset);
}
};
private static final TryAcquireOperation
UPGRADE_READ_TO_UPDATE_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteUpdateLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpgradeReadToUpdateLock(access, obj, offset);
}
};
private static final TryAcquireOperation
UPGRADE_UPDATE_TO_WRITE_LOCK =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteUpdateLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpgradeUpdateToWriteLock(access, obj, offset);
}
};
private static final TryAcquireOperation
UPGRADE_UPDATE_TO_WRITE_LOCK_AND_DEREGISTER_WAIT =
new TryAcquireOperation() {
@Override
public boolean tryAcquire(ReadWriteUpdateWithWaitsLockingStrategy strategy,
Access access, T obj, long offset) {
return strategy.tryUpgradeUpdateToWriteLockAndDeregisterWait(
access, obj, offset);
}
};
private TryAcquireOperations() {
}
public static TryAcquireOperation lock() {
return LOCK;
}
public static TryAcquireOperation readLock() {
return READ_LOCK;
}
public static TryAcquireOperation upgradeReadToWriteLock() {
return UPGRADE_READ_TO_WRITE_LOCK;
}
public static TryAcquireOperation writeLock() {
return WRITE_LOCK;
}
public static TryAcquireOperation
upgradeReadToWriteLockAndDeregisterWait() {
return UPGRADE_READ_TO_WRITE_LOCK_AND_DEREGISTER_WAIT;
}
public static TryAcquireOperation
writeLockAndDeregisterWait() {
return WRITE_LOCK_AND_DEREGISTER_WAIT;
}
public static TryAcquireOperation updateLock() {
return UPDATE_LOCK;
}
public static TryAcquireOperation upgradeReadToUpdateLock() {
return UPGRADE_READ_TO_UPDATE_LOCK;
}
public static TryAcquireOperation upgradeUpdateToWriteLock() {
return UPGRADE_UPDATE_TO_WRITE_LOCK;
}
public static TryAcquireOperation
upgradeUpdateToWriteLockAndDeregisterWait() {
return UPGRADE_UPDATE_TO_WRITE_LOCK_AND_DEREGISTER_WAIT;
}
}