当前位置: 首页>>代码示例>>Java>>正文


Java Tools.exceptionalFuture方法代码示例

本文整理汇总了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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:20,代码来源:ClusterCommunicationManager.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:18,代码来源:ClusterCommunicationManager.java

示例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;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:OnosCopycatClient.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:TranscodingAsyncConsistentMap.java

示例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);
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:9,代码来源:TranscodingAsyncConsistentMap.java

示例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);
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:9,代码来源:AtomixConsistentMap.java

示例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);
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:9,代码来源:TranscodingAsyncAtomicCounterMap.java

示例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);
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:9,代码来源:TranscodingAsyncAtomicCounterMap.java

示例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);
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:9,代码来源:TranscodingAsyncAtomicCounterMap.java


注:本文中的org.onlab.util.Tools.exceptionalFuture方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。