本文整理了Java中com.cloudhopper.commons.util.windowing.WindowFuture
类的一些代码示例,展示了WindowFuture
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WindowFuture
类的具体详情如下:
包路径:com.cloudhopper.commons.util.windowing.WindowFuture
类名称:WindowFuture
[英]A WindowFuture is either uncompleted or completed. When an operation begins, a new future object is created. The new future is uncompleted initially - it is neither succeeded, failed, nor cancelled because the operation is not finished yet. If the operation is finished either successfully, with failure, or by cancellation, the future is marked as completed with more specific information, such as the cause of the failure. Please note that even failure and cancellation belong to the completed state.
+---------------------------+
| Completed successfully |
+---------------------------+
+----> isDone() = true |
+--------------------------+ | | isSuccess() = true |
| Uncompleted | | +===========================+
+--------------------------+ | | Completed with failure |
| isDone() = false | | +---------------------------+
| isSuccess() = false |----+----> isDone() = true |
| isCancelled() = false | | | getCause() = non-null |
| getCause() = null | | +===========================+
+--------------------------+ | | Completed by cancellation |
| +---------------------------+
+----> isDone() = true |
| isCancelled() = true |
+---------------------------+
[中]WindowFuture要么是“未完成”要么是“已完成”。当操作开始时,将创建一个新的未来对象。新的未来最初是未完成的——它既没有成功,也没有失败,也没有因为操作尚未完成而取消。如果操作成功完成、失败或取消,则未来将标记为已完成,并显示更具体的信息,例如失败的原因。请注意,即使失败和取消也属于已完成状态
+---------------------------+
| Completed successfully |
+---------------------------+
+----> isDone() = true |
+--------------------------+ | | isSuccess() = true |
| Uncompleted | | +===========================+
+--------------------------+ | | Completed with failure |
| isDone() = false | | +---------------------------+
| isSuccess() = false |----+----> isDone() = true |
| isCancelled() = false | | | getCause() = non-null |
| getCause() = null | | +===========================+
+--------------------------+ | | Completed by cancellation |
| +---------------------------+
+----> isDone() = true |
| isCancelled() = true |
+---------------------------+
代码示例来源:origin: twitter-archive/cloudhopper-smpp
@Override
public PduRequest getRequest() {
return future.getRequest();
}
代码示例来源:origin: wizardjedi/my-spring-learning
private static void log(WindowFuture<Integer, PduRequest, PduResponse> future) {
SubmitSm req = (SubmitSm)future.getRequest();
SubmitSmResp resp = (SubmitSmResp)future.getResponse();
log.debug("Got response with MSG ID={} for APPID={}", resp.getMessageId(), req.getReferenceObject());
}
代码示例来源:origin: twitter-archive/cloudhopper-smpp
@Override
public long getResponseTime() {
return future.getAcceptToDoneTime();
}
代码示例来源:origin: com.fizzed/ch-smpp
boolean completedWithinTimeout = future.await();
future.cancel();
throw new SmppTimeoutException("Unable to get response within [" + timeoutInMillis + " ms]");
if (future.isSuccess()) {
return future.getResponse();
} else if (future.getCause() != null) {
Throwable cause = future.getCause();
if (cause instanceof ClosedChannelException) {
throw new SmppChannelException("Channel was closed after sending request, but before receiving response", cause);
throw new UnrecoverablePduException(cause.getMessage(), cause);
} else if (future.isCancelled()) {
throw new RecoverablePduException("Request was cancelled");
} else {
代码示例来源:origin: twitter-archive/cloudhopper-smpp
if (future != null) {
logger.trace("Found a future in the window for seqNum [{}]", receivedPduSeqNum);
this.countReceiveResponsePdu(responsePdu, future.getOfferToAcceptTime(), future.getAcceptToDoneTime(), (future.getAcceptToDoneTime() / future.getWindowSize()));
int callerStateHint = future.getCallerStateHint();
logger.trace("Caller waiting for request: {}", future.getRequest());
logger.trace("Caller not waiting for request: {}", future.getRequest());
logger.trace("Caller timed out waiting for request: {}", future.getRequest());
代码示例来源:origin: twitter-archive/cloudhopper-smpp
for (WindowFuture<Integer,PduRequest,PduResponse> future : requests.values()) {
if (future.isCallerWaiting()) {
logger.debug("Caller waiting on request [{}], cancelling it with a channel closed exception", future.getKey());
try {
future.fail(cause);
} catch (Exception e) { }
代码示例来源:origin: twitter-archive/cloudhopper-smpp
@Override
public String toString() {
StringBuilder buf = new StringBuilder(100);
buf.append("smpp_async_resp: seqNum [0x");
buf.append(HexUtil.toHexString(this.future.getKey()));
buf.append("] windowSize [");
buf.append(getWindowSize());
buf.append("] windowWaitTime [");
buf.append(getWindowWaitTime());
buf.append(" ms] responseTime [");
buf.append(getResponseTime());
buf.append(" ms] estProcessingTime [");
buf.append(getEstimatedProcessingTime());
buf.append(" ms] reqType [");
buf.append(getRequest().getName());
buf.append("] respType [");
buf.append(getResponse().getName());
buf.append("]");
return buf.toString();
}
代码示例来源:origin: twitter-archive/cloudhopper-smpp
if(!((SmppSessionListener)this.sessionHandler).firePduDispatch(pdu)) {
logger.info("dispatched request PDU discarded: {}", pdu);
future.cancel(); //@todo probably throwing exception here is better solution?
return future;
代码示例来源:origin: twitter-archive/cloudhopper-smpp
@Override
public PduResponse getResponse() {
return future.getResponse();
}
代码示例来源:origin: twitter-archive/cloudhopper-smpp
@Override
public long getWindowWaitTime() {
return future.getOfferToAcceptTime();
}
代码示例来源:origin: com.cloudhopper/ch-smpp
boolean completedWithinTimeout = future.await();
future.cancel();
throw new SmppTimeoutException("Unable to get response within [" + timeoutInMillis + " ms]");
if (future.isSuccess()) {
return future.getResponse();
} else if (future.getCause() != null) {
Throwable cause = future.getCause();
if (cause instanceof ClosedChannelException) {
throw new SmppChannelException("Channel was closed after sending request, but before receiving response", cause);
throw new UnrecoverablePduException(cause.getMessage(), cause);
} else if (future.isCancelled()) {
throw new RecoverablePduException("Request was cancelled");
} else {
代码示例来源:origin: com.fizzed/ch-smpp
if (future != null) {
logger.trace("Found a future in the window for seqNum [{}]", receivedPduSeqNum);
this.countReceiveResponsePdu(responsePdu, future.getOfferToAcceptTime(), future.getAcceptToDoneTime(), (future.getAcceptToDoneTime() / future.getWindowSize()));
int callerStateHint = future.getCallerStateHint();
logger.trace("Caller waiting for request: {}", future.getRequest());
logger.trace("Caller not waiting for request: {}", future.getRequest());
logger.trace("Caller timed out waiting for request: {}", future.getRequest());
代码示例来源:origin: com.cloudhopper/ch-smpp
for (WindowFuture<Integer,PduRequest,PduResponse> future : requests.values()) {
if (future.isCallerWaiting()) {
logger.debug("Caller waiting on request [{}], cancelling it with a channel closed exception", future.getKey());
try {
future.fail(cause);
} catch (Exception e) { }
代码示例来源:origin: com.cloudhopper/ch-smpp
@Override
public String toString() {
StringBuilder buf = new StringBuilder(100);
buf.append("smpp_async_resp: seqNum [0x");
buf.append(HexUtil.toHexString(this.future.getKey()));
buf.append("] windowSize [");
buf.append(getWindowSize());
buf.append("] windowWaitTime [");
buf.append(getWindowWaitTime());
buf.append(" ms] responseTime [");
buf.append(getResponseTime());
buf.append(" ms] estProcessingTime [");
buf.append(getEstimatedProcessingTime());
buf.append(" ms] reqType [");
buf.append(getRequest().getName());
buf.append("] respType [");
buf.append(getResponse().getName());
buf.append("]");
return buf.toString();
}
代码示例来源:origin: com.cloudhopper/ch-smpp
if(!((SmppSessionListener)this.sessionHandler).firePduDispatch(pdu)) {
logger.info("dispatched request PDU discarded: {}", pdu);
future.cancel(); //@todo probably throwing exception here is better solution?
return future;
代码示例来源:origin: com.fizzed/ch-smpp
@Override
public PduResponse getResponse() {
return future.getResponse();
}
代码示例来源:origin: com.cloudhopper/ch-smpp
@Override
public long getWindowWaitTime() {
return future.getOfferToAcceptTime();
}
代码示例来源:origin: twitter-archive/cloudhopper-smpp
boolean completedWithinTimeout = future.await();
future.cancel();
throw new SmppTimeoutException("Unable to get response within [" + timeoutInMillis + " ms]");
if (future.isSuccess()) {
return future.getResponse();
} else if (future.getCause() != null) {
Throwable cause = future.getCause();
if (cause instanceof ClosedChannelException) {
throw new SmppChannelException("Channel was closed after sending request, but before receiving response", cause);
throw new UnrecoverablePduException(cause.getMessage(), cause);
} else if (future.isCancelled()) {
throw new RecoverablePduException("Request was cancelled");
} else {
代码示例来源:origin: com.cloudhopper/ch-smpp
if (future != null) {
logger.trace("Found a future in the window for seqNum [{}]", receivedPduSeqNum);
this.countReceiveResponsePdu(responsePdu, future.getOfferToAcceptTime(), future.getAcceptToDoneTime(), (future.getAcceptToDoneTime() / future.getWindowSize()));
int callerStateHint = future.getCallerStateHint();
logger.trace("Caller waiting for request: {}", future.getRequest());
logger.trace("Caller not waiting for request: {}", future.getRequest());
logger.trace("Caller timed out waiting for request: {}", future.getRequest());
代码示例来源:origin: com.fizzed/ch-smpp
@Override
public PduRequest getRequest() {
return future.getRequest();
}
内容来源于网络,如有侵权,请联系作者删除!