本文整理匯總了Java中org.onosproject.incubator.net.resource.label.LabelResourcePool.totalNum方法的典型用法代碼示例。如果您正苦於以下問題:Java LabelResourcePool.totalNum方法的具體用法?Java LabelResourcePool.totalNum怎麽用?Java LabelResourcePool.totalNum使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.onosproject.incubator.net.resource.label.LabelResourcePool
的用法示例。
在下文中一共展示了LabelResourcePool.totalNum方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: internalRelease
import org.onosproject.incubator.net.resource.label.LabelResourcePool; //導入方法依賴的package包/類
private boolean internalRelease(LabelResourceRequest request) {
DeviceId deviceId = request.deviceId();
Collection<LabelResource> release = request.releaseCollection();
Versioned<LabelResourcePool> poolOld = resourcePool.get(deviceId);
if (poolOld == null) {
log.info("the label resource pool of device id {} not allocated");
return false;
}
LabelResourcePool pool = poolOld.value();
if (pool == null) {
log.info("the label resource pool of device id {} does not exist");
return false;
}
Set<LabelResource> storeSet = new HashSet<>(pool.releaseLabelId());
LabelResource labelResource = null;
long realReleasedNum = 0;
for (Iterator<LabelResource> it = release.iterator(); it.hasNext();) {
labelResource = it.next();
if (labelResource.labelResourceId().labelId() < pool.beginLabel()
.labelId()
|| labelResource.labelResourceId().labelId() > pool
.endLabel().labelId()) {
continue;
}
if (pool.currentUsedMaxLabelId().labelId() > labelResource
.labelResourceId().labelId()
|| !storeSet.contains(labelResource)) {
storeSet.add(labelResource);
realReleasedNum++;
}
}
long beginNum = pool.beginLabel().labelId();
long endNum = pool.endLabel().labelId();
long totalNum = pool.totalNum();
long usedNum = pool.usedNum() - realReleasedNum;
long current = pool.currentUsedMaxLabelId().labelId();
ImmutableSet<LabelResource> s = ImmutableSet.copyOf(storeSet);
LabelResourcePool newPool = new LabelResourcePool(deviceId.toString(),
beginNum, endNum,
totalNum, usedNum,
current, s);
resourcePool.put(deviceId, newPool);
log.info("success to release label resource");
return true;
}