本文整理汇总了Java中org.onosproject.incubator.net.resource.label.LabelResourceRequest类的典型用法代码示例。如果您正苦于以下问题:Java LabelResourceRequest类的具体用法?Java LabelResourceRequest怎么用?Java LabelResourceRequest使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
LabelResourceRequest类属于org.onosproject.incubator.net.resource.label包,在下文中一共展示了LabelResourceRequest类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: applyFromDevicePool
import org.onosproject.incubator.net.resource.label.LabelResourceRequest; //导入依赖的package包/类
@Override
public Collection<LabelResource> applyFromDevicePool(DeviceId deviceId,
long applyNum) {
Device device = deviceService.getDevice(deviceId);
if (device == null) {
return Collections.emptyList();
}
LabelResourceRequest request = new LabelResourceRequest(deviceId,
LabelResourceRequest.Type.APPLY,
applyNum, null);
NodeId master = mastershipService.getMasterFor(deviceId);
if (master == null) {
log.warn("Failed to applyFromDevicePool: No master for {}", deviceId);
return Collections.emptyList();
}
if (master.equals(clusterService.getLocalNode().id())) {
return internalApply(request);
}
log.trace("Forwarding request to {}, which is the primary (master) for device {}",
master, deviceId);
return complete(clusterCommunicator
.sendAndReceive(request,
LabelResourceMessageSubjects.LABEL_POOL_APPLY,
SERIALIZER::encode, SERIALIZER::decode,
master));
}
示例2: applyFromGlobalPool
import org.onosproject.incubator.net.resource.label.LabelResourceRequest; //导入依赖的package包/类
@Override
public Collection<LabelResource> applyFromGlobalPool(long applyNum) {
LabelResourceRequest request = new LabelResourceRequest(DeviceId.deviceId(GLOBAL_RESOURCE_POOL_DEVICE_ID),
LabelResourceRequest.Type.APPLY,
applyNum, null);
return this.internalApply(request);
}
示例3: activate
import org.onosproject.incubator.net.resource.label.LabelResourceRequest; //导入依赖的package包/类
@Activate
public void activate() {
resourcePool = storageService
.<DeviceId, LabelResourcePool>consistentMapBuilder()
.withName(POOL_MAP_NAME).withSerializer(SERIALIZER)
.withPartitionsDisabled().build();
messageHandlingExecutor = Executors
.newFixedThreadPool(MESSAGE_HANDLER_THREAD_POOL_SIZE,
groupedThreads("onos/store/flow",
"message-handlers"));
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_CREATED,
SERIALIZER::<LabelResourcePool>decode,
operation -> {
log.trace("received get flow entry request for {}", operation);
return internalCreate(operation);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_DESTROYED,
SERIALIZER::<DeviceId>decode,
deviceId -> {
log.trace("received get flow entry request for {}", deviceId);
return internalDestroy(deviceId);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_APPLY,
SERIALIZER::<LabelResourceRequest>decode,
request -> {
log.trace("received get flow entry request for {}", request);
return internalApply(request);
},
SERIALIZER::<Collection<LabelResource>>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_RELEASE,
SERIALIZER::<LabelResourceRequest>decode,
request -> {
log.trace("received get flow entry request for {}",
request);
return internalRelease(request);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
log.info("Started");
}
示例4: internalRelease
import org.onosproject.incubator.net.resource.label.LabelResourceRequest; //导入依赖的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;
}
示例5: activate
import org.onosproject.incubator.net.resource.label.LabelResourceRequest; //导入依赖的package包/类
@Activate
public void activate() {
resourcePool = storageService
.<DeviceId, LabelResourcePool>consistentMapBuilder()
.withName(POOL_MAP_NAME).withSerializer(SERIALIZER).build();
messageHandlingExecutor = Executors
.newFixedThreadPool(MESSAGE_HANDLER_THREAD_POOL_SIZE,
groupedThreads("onos/store/flow",
"message-handlers",
log));
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_CREATED,
SERIALIZER::<LabelResourcePool>decode,
operation -> {
log.trace("received get flow entry request for {}", operation);
return internalCreate(operation);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_DESTROYED,
SERIALIZER::<DeviceId>decode,
deviceId -> {
log.trace("received get flow entry request for {}", deviceId);
return internalDestroy(deviceId);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_APPLY,
SERIALIZER::<LabelResourceRequest>decode,
request -> {
log.trace("received get flow entry request for {}", request);
return internalApply(request);
},
SERIALIZER::<Collection<LabelResource>>encode,
messageHandlingExecutor);
clusterCommunicator
.addSubscriber(LabelResourceMessageSubjects.LABEL_POOL_RELEASE,
SERIALIZER::<LabelResourceRequest>decode,
request -> {
log.trace("received get flow entry request for {}",
request);
return internalRelease(request);
},
SERIALIZER::<Boolean>encode,
messageHandlingExecutor);
log.info("Started");
}