X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fmusic%2Fservice%2FMusicCoreService.java;h=9bbef9c12459f65d8094681baaf7d40c08e9221d;hb=881f14bc8676cedd68e17bd007a869fa85578fa1;hp=affdc7f2fa57ac7fb4175880f4a23f4724542921;hpb=fa56ad63a720ab32cb90142f5e690930103a82fe;p=music.git diff --git a/src/main/java/org/onap/music/service/MusicCoreService.java b/src/main/java/org/onap/music/service/MusicCoreService.java index affdc7f2..9bbef9c1 100644 --- a/src/main/java/org/onap/music/service/MusicCoreService.java +++ b/src/main/java/org/onap/music/service/MusicCoreService.java @@ -29,6 +29,7 @@ import org.onap.music.datastore.PreparedQueryObject; import org.onap.music.exceptions.MusicLockingException; import org.onap.music.exceptions.MusicQueryException; import org.onap.music.exceptions.MusicServiceException; +import org.onap.music.lockingservice.cassandra.LockType; import org.onap.music.lockingservice.cassandra.MusicLockState; import org.onap.music.main.ResultType; import org.onap.music.main.ReturnType; @@ -47,47 +48,73 @@ public interface MusicCoreService { public ReturnType eventualPut_nb(PreparedQueryObject queryObject,String keyspace,String tablename,String primaryKey); public ReturnType criticalPut(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject, String lockId, Condition conditionInfo); + PreparedQueryObject queryObject, String lockId, Condition conditionInfo); public ResultType nonKeyRelatedPut(PreparedQueryObject queryObject, String consistency) - throws MusicServiceException; + throws MusicServiceException,MusicQueryException; public ResultSet get(PreparedQueryObject queryObject) throws MusicServiceException; public ResultSet atomicGet(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException, MusicQueryException; + PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException, MusicQueryException; public ReturnType atomicPutWithDeleteLock(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException; + PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException; public ResultSet atomicGetWithDeleteLock(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException; + PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException; public ReturnType atomicPut(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject, Condition conditionInfo) - throws MusicLockingException, MusicQueryException, MusicServiceException; + PreparedQueryObject queryObject, Condition conditionInfo) + throws MusicLockingException, MusicQueryException, MusicServiceException; public ResultSet criticalGet(String keyspaceName, String tableName, String primaryKey, - PreparedQueryObject queryObject, String lockId) throws MusicServiceException; + PreparedQueryObject queryObject, String lockId) throws MusicServiceException; // Core Music Locking Service Methods - public String createLockReference(String fullyQualifiedKey); // lock name - + /** + * Create a lock ref in the music lock store. + * Default is write as this is the safest semantically + * + * @param fullyQualifiedKey the key to create a lock on + * @see {@link #creatLockReference(String, LockType)} + */ + public String createLockReference(String fullyQualifiedKey) throws MusicLockingException; // lock name + + /** + * Create a lock ref in the music lock store + * @param fullyQualifiedKey the key to create a lock on + * @param locktype the type of lock create, see {@link LockType} + */ + public String createLockReference(String fullyQualifiedKey, LockType locktype) throws MusicLockingException; + public ReturnType acquireLockWithLease(String key, String lockReference, long leasePeriod) - throws MusicLockingException, MusicQueryException, MusicServiceException; // key,lock id,time + throws MusicLockingException, MusicQueryException, MusicServiceException; // key,lock id,time public ReturnType acquireLock(String key, String lockReference) - throws MusicLockingException, MusicQueryException, MusicServiceException; // key,lock id + throws MusicLockingException, MusicQueryException, MusicServiceException; // key,lock id public ResultType createTable(String keyspace, String table, PreparedQueryObject tableQueryObject, - String consistency) throws MusicServiceException; + String consistency) throws MusicServiceException; public ResultSet quorumGet(PreparedQueryObject query); + /** + * Gets top of queue for fullyQualifiedKey + * @param fullyQualifiedKey + * @return + */ public String whoseTurnIsIt(String fullyQualifiedKey);// lock name - - public void destroyLockRef(String lockId); + + /** + * Gets the current lockholder(s) for lockName + * @param lockName + * @return + */ + public List getCurrentLockHolders(String fullyQualifiedKey); + + public void destroyLockRef(String lockId) throws MusicLockingException; //public MusicLockState destroyLockRef(String fullyQualifiedKey, String lockReference); // lock name, lock id @@ -99,12 +126,13 @@ public interface MusicCoreService { //public MusicLockState forciblyReleaseLock(String fullyQualifiedKey, String lockReference) throws MusicLockingException, MusicServiceException, MusicQueryException; public List getLockQueue(String fullyQualifiedKey) - throws MusicServiceException, MusicQueryException, MusicLockingException; + throws MusicServiceException, MusicQueryException, MusicLockingException; - public long getLockQueueSize(String fullyQualifiedKey) - throws MusicServiceException, MusicQueryException, MusicLockingException; + public long getLockQueueSize(String fullyQualifiedKey) + throws MusicServiceException, MusicQueryException, MusicLockingException; public Map validateLock(String lockName); - public MusicLockState releaseLock(String lockId, boolean voluntaryRelease); + public MusicLockState releaseLock(String lockId, boolean voluntaryRelease) throws MusicLockingException; + }