io.vertx.core.Future.tryComplete()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(6.9k)|赞(0)|评价(0)|浏览(132)

本文整理了Java中io.vertx.core.Future.tryComplete()方法的一些代码示例,展示了Future.tryComplete()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Future.tryComplete()方法的具体详情如下:
包路径:io.vertx.core.Future
类名称:Future
方法名:tryComplete

Future.tryComplete介绍

[英]Try to set the result. When it happens, any handler will be called, if there is one, and the future will be marked as completed.
[中]试着设定结果。当它发生时,将调用任何处理程序(如果有),并且未来将标记为已完成。

代码示例

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testSetResultOnCompletedFuture() {
 ArrayList<Future<Object>> futures = new ArrayList<>();
 futures.add(Future.succeededFuture());
 futures.add(Future.succeededFuture());
 futures.add(Future.succeededFuture(new Object()));
 futures.add(Future.succeededFuture(new Object()));
 futures.add(Future.failedFuture(new Exception()));
 futures.add(Future.failedFuture(new Exception()));
 for (Future<Object> future : futures) {
  try {
   future.complete(new Object());
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryComplete(new Object()));
  try {
   future.complete(null);
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryComplete(null));
  try {
   future.fail(new Exception());
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryFail(new Exception()));
 }
}

代码示例来源:origin: eclipse-vertx/vert.x

void handle(DnsResponse msg) {
 DnsResponseCode code = DnsResponseCode.valueOf(msg.code().intValue());
 if (code == DnsResponseCode.NOERROR) {
  inProgressMap.remove(msg.id());
  if (timerID >= 0) {
   vertx.cancelTimer(timerID);
  }
  int count = msg.count(DnsSection.ANSWER);
  List<T> records = new ArrayList<>(count);
  for (int idx = 0;idx < count;idx++) {
   DnsRecord a = msg.recordAt(DnsSection.ANSWER, idx);
   T record = RecordDecoder.decode(a);
   if (isRequestedType(a.type(), types)) {
    records.add(record);
   }
  }
  if (records.size() > 0 && (records.get(0) instanceof MxRecordImpl || records.get(0) instanceof SrvRecordImpl)) {
   Collections.sort((List) records);
  }
  actualCtx.executeFromIO(v -> {
   fut.tryComplete(records);
  });
 } else {
  actualCtx.executeFromIO(new DnsException(code), this::fail);
 }
}

代码示例来源:origin: vert-x3/vertx-web

@Override
public boolean tryComplete() {
 return future.tryComplete();
}

代码示例来源:origin: vert-x3/vertx-web

@Override
public boolean tryComplete(Boolean result) {
 return future.tryComplete(result);
}

代码示例来源:origin: vert-x3/vertx-web

@Override
public void end() {
 if (stream instanceof AsyncFile) {
  AsyncFile file = (AsyncFile) stream;
  file.close(ar -> {
   if (ar.succeeded()) {
    fut.tryComplete();
   } else {
    fut.tryFail(ar.cause());
   }
  });
 } else {
  stream.end();
  fut.tryComplete();
 }
}

代码示例来源:origin: io.vertx/vertx-core

@Test
public void testSetResultOnCompletedFuture() {
 ArrayList<Future<Object>> futures = new ArrayList<>();
 futures.add(Future.succeededFuture());
 futures.add(Future.succeededFuture());
 futures.add(Future.succeededFuture(new Object()));
 futures.add(Future.succeededFuture(new Object()));
 futures.add(Future.failedFuture(new Exception()));
 futures.add(Future.failedFuture(new Exception()));
 for (Future<Object> future : futures) {
  try {
   future.complete(new Object());
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryComplete(new Object()));
  try {
   future.complete(null);
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryComplete(null));
  try {
   future.fail(new Exception());
   fail();
  } catch (IllegalStateException ignore) {
  }
  assertFalse(future.tryFail(new Exception()));
 }
}

代码示例来源:origin: io.vertx/vertx-core

void handle(DnsResponse msg) {
 DnsResponseCode code = DnsResponseCode.valueOf(msg.code().intValue());
 if (code == DnsResponseCode.NOERROR) {
  inProgressMap.remove(msg.id());
  if (timerID >= 0) {
   vertx.cancelTimer(timerID);
  }
  int count = msg.count(DnsSection.ANSWER);
  List<T> records = new ArrayList<>(count);
  for (int idx = 0;idx < count;idx++) {
   DnsRecord a = msg.recordAt(DnsSection.ANSWER, idx);
   T record = RecordDecoder.decode(a);
   if (isRequestedType(a.type(), types)) {
    records.add(record);
   }
  }
  if (records.size() > 0 && (records.get(0) instanceof MxRecordImpl || records.get(0) instanceof SrvRecordImpl)) {
   Collections.sort((List) records);
  }
  actualCtx.executeFromIO(v -> {
   fut.tryComplete(records);
  });
 } else {
  actualCtx.executeFromIO(new DnsException(code), this::fail);
 }
}

代码示例来源:origin: io.vertx/vertx-rx-java

/**
 * Try to set the result. When it happens, any handler will be called, if there is one, and the future will be marked as completed.
 * @return false when the future is already completed
 */
public boolean tryComplete() { 
 boolean ret = delegate.tryComplete();
 return ret;
}

代码示例来源:origin: vert-x3/vertx-rx

/**
 * Try to set the result. When it happens, any handler will be called, if there is one, and the future will be marked as completed.
 * @return false when the future is already completed
 */
public boolean tryComplete() { 
 boolean ret = delegate.tryComplete();
 return ret;
}

代码示例来源:origin: io.vertx/vertx-web

@Override
public boolean tryComplete(Boolean result) {
 return future.tryComplete(result);
}

代码示例来源:origin: io.vertx/vertx-tcp-eventbus-bridge

@Override
public boolean tryComplete() {
 return future.tryComplete();
}

代码示例来源:origin: io.vertx/vertx-web

@Override
public boolean tryComplete() {
 return future.tryComplete();
}

代码示例来源:origin: io.vertx/vertx-tcp-eventbus-bridge

@Override
public boolean tryComplete(Boolean result) {
 return future.tryComplete(result);
}

代码示例来源:origin: vert-x3/vertx-tcp-eventbus-bridge

@Override
public boolean tryComplete(Boolean result) {
 return future.tryComplete(result);
}

代码示例来源:origin: vert-x3/vertx-tcp-eventbus-bridge

@Override
public boolean tryComplete() {
 return future.tryComplete();
}

代码示例来源:origin: io.vertx/vertx-rx-java

/**
 * Set the failure. Any handler will be called, if there is one, and the future will be marked as completed.
 * @param result the result
 * @return false when the future is already completed
 */
public boolean tryComplete(T result) { 
 boolean ret = delegate.tryComplete(__typeArg_0.<T>unwrap(result));
 return ret;
}

代码示例来源:origin: vert-x3/vertx-rx

/**
 * Set the failure. Any handler will be called, if there is one, and the future will be marked as completed.
 * @param result the result
 * @return false when the future is already completed
 */
public boolean tryComplete(T result) { 
 boolean ret = delegate.tryComplete(__typeArg_0.<T>unwrap(result));
 return ret;
}

代码示例来源:origin: io.vertx/vertx-lang-groovy

public static boolean tryComplete(io.vertx.core.Future<Object> j_receiver, java.lang.Object result) {
 return j_receiver.tryComplete(io.vertx.core.impl.ConversionHelper.toObject(result));
}
public static java.lang.Object result(io.vertx.core.Future<Object> j_receiver) {

代码示例来源:origin: io.vertx/vertx-web-common

@Override
public void end() {
 if (stream instanceof AsyncFile) {
  AsyncFile file = (AsyncFile) stream;
  file.close(ar -> {
   if (ar.succeeded()) {
    fut.tryComplete();
   } else {
    fut.tryFail(ar.cause());
   }
  });
 } else {
  stream.end();
  fut.tryComplete();
 }
}

代码示例来源:origin: vert-x3/vertx-service-discovery

private Future<String> getToken(Vertx vertx, JsonObject conf) {
 Future<String> result = Future.future();
 String token = conf.getString("token");
 if (token != null && !token.trim().isEmpty()) {
  result.complete(token);
  return result;
 }
 // Read from file
 vertx.fileSystem().readFile(OPENSHIFT_KUBERNETES_TOKEN_FILE, ar -> {
  if (ar.failed()) {
   result.tryFail(ar.cause());
  } else {
   result.tryComplete(ar.result().toString());
  }
 });
 return result;
}

相关文章