@Singleton public class IdUtils extends Object
Modifier and Type | Field and Description |
---|---|
static long |
DEFAULT_DELAY_TIME |
static int |
RETRY_COUNT |
Constructor and Description |
---|
IdUtils() |
Modifier and Type | Method and Description |
---|---|
long |
computeBlockSize(long low,
long high) |
AvailableIdsHolder |
createAvailableIdsHolder(long low,
long high,
long cursor) |
protected ChildPools |
createChildPool(String childPoolName) |
DelayedIdEntries |
createDelayedIdEntry(long idValue,
long delayTime) |
protected IdPool |
createGlobalPool(String poolName,
long low,
long high,
long blockSize) |
IdEntries |
createIdEntries(String idKey,
List<Long> newIdVals) |
protected ReleasedIdsHolder |
createReleasedIdsHolder(long availableIdCount,
long delayTime) |
void |
decrementPoolUpdatedMap(String localPoolName) |
void |
freeExcessAvailableIds(ReleasedIdHolder releasedIdHolder,
ReleasedIdsHolderBuilder releasedIdsParent,
long idCountToBeFreed)
Changes made to the parameters passed are not persisted to the Datastore.
|
long |
getAvailableIdsCount(AvailableIdsHolderBuilder availableIds) |
protected AvailableIdsHolderBuilder |
getAvailableIdsHolderBuilder(IdPool pool) |
protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ChildPools> |
getChildPoolsInstanceIdentifier(String poolName,
String localPoolName) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdEntries> |
getIdEntriesInstanceIdentifier(String poolName,
String idKey) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdEntries> |
getIdEntry(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPool> poolName,
String idKey) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPool> |
getIdPoolInstance(String poolName) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPools> |
getIdPools() |
String |
getLocalPoolName(String poolName) |
boolean |
getPoolUpdatedMap(String localPoolName) |
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ReleasedIdsHolder> |
getReleasedIdsHolderInstance(String poolName) |
CountDownLatch |
getReleaseIdLatch(String uniqueIdKey) |
protected static ReleasedIdsHolderBuilder |
getReleaseIdsHolderBuilder(IdPool pool) |
String |
getUniqueKey(String parentPoolName,
String idKey) |
void |
incrementPoolUpdatedMap(String localPoolName) |
protected boolean |
isIdAvailable(AvailableIdsHolderBuilder availableIds) |
void |
lock(LockManagerService lockManager,
String poolName) |
CompletableFuture<List<Long>> |
putAllocatedIdsIfAbsent(String uniqueIdKey,
CompletableFuture<List<Long>> futureIdValues) |
void |
putReleaseIdLatch(String uniqueIdKey,
CountDownLatch latch) |
CompletableFuture<List<Long>> |
removeAllocatedIds(String uniqueIdKey) |
void |
removeFromPoolUpdatedMap(String localPoolName) |
CountDownLatch |
removeReleaseIdLatch(String uniqueIdKey) |
void |
syncAvailableIdHolder(AvailableIdHolder availableIdHolder,
IdPoolBuilder idPool) |
void |
syncReleaseIdHolder(ReleasedIdHolder releasedIdHolder,
IdPoolBuilder idPool) |
void |
unlock(LockManagerService lockManager,
String poolName) |
void |
updateChildPool(TypedWriteTransaction<Datastore.Configuration> tx,
String poolName,
String localPoolName) |
public static final long DEFAULT_DELAY_TIME
public static final int RETRY_COUNT
public IdUtils() throws UnknownHostException
UnknownHostException
public CompletableFuture<List<Long>> removeAllocatedIds(String uniqueIdKey)
public CompletableFuture<List<Long>> putAllocatedIdsIfAbsent(String uniqueIdKey, CompletableFuture<List<Long>> futureIdValues)
public void putReleaseIdLatch(String uniqueIdKey, CountDownLatch latch)
public CountDownLatch getReleaseIdLatch(String uniqueIdKey)
public CountDownLatch removeReleaseIdLatch(String uniqueIdKey)
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdEntries> getIdEntry(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPool> poolName, String idKey)
public DelayedIdEntries createDelayedIdEntry(long idValue, long delayTime)
protected IdPool createGlobalPool(String poolName, long low, long high, long blockSize)
public AvailableIdsHolder createAvailableIdsHolder(long low, long high, long cursor)
protected ReleasedIdsHolder createReleasedIdsHolder(long availableIdCount, long delayTime)
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPool> getIdPoolInstance(String poolName)
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ReleasedIdsHolder> getReleasedIdsHolderInstance(String poolName)
protected boolean isIdAvailable(AvailableIdsHolderBuilder availableIds)
protected ChildPools createChildPool(String childPoolName)
protected AvailableIdsHolderBuilder getAvailableIdsHolderBuilder(IdPool pool)
protected static ReleasedIdsHolderBuilder getReleaseIdsHolderBuilder(IdPool pool)
public void freeExcessAvailableIds(ReleasedIdHolder releasedIdHolder, ReleasedIdsHolderBuilder releasedIdsParent, long idCountToBeFreed)
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdEntries> getIdEntriesInstanceIdentifier(String poolName, String idKey)
protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ChildPools> getChildPoolsInstanceIdentifier(String poolName, String localPoolName)
public long computeBlockSize(long low, long high)
public long getAvailableIdsCount(AvailableIdsHolderBuilder availableIds)
public void lock(LockManagerService lockManager, String poolName) throws IdManagerException
IdManagerException
public void unlock(LockManagerService lockManager, String poolName)
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IdPools> getIdPools()
public void syncReleaseIdHolder(ReleasedIdHolder releasedIdHolder, IdPoolBuilder idPool)
public void syncAvailableIdHolder(AvailableIdHolder availableIdHolder, IdPoolBuilder idPool)
public void updateChildPool(TypedWriteTransaction<Datastore.Configuration> tx, String poolName, String localPoolName)
public void incrementPoolUpdatedMap(String localPoolName)
public void decrementPoolUpdatedMap(String localPoolName)
public boolean getPoolUpdatedMap(String localPoolName)
public void removeFromPoolUpdatedMap(String localPoolName)
Copyright © 2019 OpenDaylight. All rights reserved.