本文整理汇总了Java中org.onlab.util.Tools.exceptionalFuture方法的典型用法代码示例。如果您正苦于以下问题:Java Tools.exceptionalFuture方法的具体用法?Java Tools.exceptionalFuture怎么用?Java Tools.exceptionalFuture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.onlab.util.Tools
的用法示例。
在下文中一共展示了Tools.exceptionalFuture方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sendAndReceive
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public <M, R> CompletableFuture<R> sendAndReceive(M message,
MessageSubject subject,
Function<M, byte[]> encoder,
Function<byte[], R> decoder,
NodeId toNodeId) {
checkPermission(CLUSTER_WRITE);
try {
ClusterMessage envelope = new ClusterMessage(
clusterService.getLocalNode().id(),
subject,
timeFunction(encoder, subjectMeteringAgent, SERIALIZING).
apply(message));
return sendAndReceive(subject, envelope.getBytes(), toNodeId).
thenApply(bytes -> timeFunction(decoder, subjectMeteringAgent, DESERIALIZING).apply(bytes));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例2: unicast
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public <M> CompletableFuture<Void> unicast(M message,
MessageSubject subject,
Function<M, byte[]> encoder,
NodeId toNodeId) {
checkPermission(CLUSTER_WRITE);
try {
byte[] payload = new ClusterMessage(
localNodeId,
subject,
timeFunction(encoder, subjectMeteringAgent, SERIALIZING).apply(message)
).getBytes();
return doUnicast(subject, payload, toNodeId);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例3: submit
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public <T> CompletableFuture<T> submit(Query<T> query) {
if (state() == State.CLOSED) {
return Tools.exceptionalFuture(new StorageException.Unavailable());
}
CompletableFuture<T> future = new CompletableFuture<>();
executor.submit(() -> submit(query, 1, future));
return future;
}
示例4: containsValue
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Boolean> containsValue(V1 value) {
try {
return backingMap.containsValue(valueEncoder.apply(value));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例5: get
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Versioned<V1>> get(K1 key) {
try {
return backingMap.get(keyEncoder.apply(key)).thenApply(versionedValueTransform);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例6: putAndGet
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Versioned<V1>> putAndGet(K1 key, V1 value) {
try {
return backingMap.putAndGet(keyEncoder.apply(key), valueEncoder.apply(value))
.thenApply(versionedValueTransform);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例7: putIfAbsent
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Versioned<V1>> putIfAbsent(K1 key, V1 value) {
try {
return backingMap.putIfAbsent(keyEncoder.apply(key), valueEncoder.apply(value))
.thenApply(versionedValueTransform);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例8: remove
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Boolean> remove(K1 key, V1 value) {
try {
return backingMap.remove(keyEncoder.apply(key), valueEncoder.apply(value));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例9: replace
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Versioned<V1>> replace(K1 key, V1 value) {
try {
return backingMap.replace(keyEncoder.apply(key), valueEncoder.apply(value))
.thenApply(versionedValueTransform);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例10: prepareAndCommit
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Boolean> prepareAndCommit(MapTransaction<K1, V1> transaction) {
try {
return backingMap.prepareAndCommit(transaction.map(keyEncoder, valueEncoder));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例11: commit
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Void> commit(TransactionId transactionId) {
try {
return backingMap.commit(transactionId);
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例12: checkLocked
import org.onlab.util.Tools; //导入方法依赖的package包/类
private CompletableFuture<MapEntryUpdateResult<String, byte[]>> checkLocked(
MapEntryUpdateResult<String, byte[]> result) {
if (result.status() == MapEntryUpdateResult.Status.PRECONDITION_FAILED ||
result.status() == MapEntryUpdateResult.Status.WRITE_LOCK) {
return Tools.exceptionalFuture(new ConsistentMapException.ConcurrentModification());
}
return CompletableFuture.completedFuture(result);
}
示例13: incrementAndGet
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Long> incrementAndGet(K1 key) {
try {
return backingMap.incrementAndGet(keyEncoder.apply(key));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例14: decrementAndGet
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Long> decrementAndGet(K1 key) {
try {
return backingMap.decrementAndGet(keyEncoder.apply(key));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}
示例15: getAndIncrement
import org.onlab.util.Tools; //导入方法依赖的package包/类
@Override
public CompletableFuture<Long> getAndIncrement(K1 key) {
try {
return backingMap.getAndIncrement(keyEncoder.apply(key));
} catch (Exception e) {
return Tools.exceptionalFuture(e);
}
}