下面列出了怎么用io.netty.channel.ChannelProgressivePromise的API类实例代码及写法,或者点击链接到github查看源代码。
void success(long total) {
if (promise.isDone()) {
// No need to notify the progress or fulfill the promise because it's done already.不需要通知进度或履行承诺,因为它已经完成了。
return;
}
if (promise instanceof ChannelProgressivePromise) {
// Now we know what the total is.
((ChannelProgressivePromise) promise).tryProgress(total, total);
}
promise.trySuccess();
}
void success() {
if (promise.isDone()) {
// No need to notify the progress or fulfill the promise because it's done already.
return;
}
if (promise instanceof ChannelProgressivePromise) {
// Now we know what the total is.
((ChannelProgressivePromise) promise).tryProgress(progress, progress);
}
promise.trySuccess();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public final ChannelProgressivePromise newProgressivePromise() {
return channel().newProgressivePromise();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return pipeline().newProgressivePromise();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
assert delegate != null;
return delegate.newProgressivePromise();
}
@Override
public ChannelProgressivePromise write(ChunkedInput input) throws IOException {
return source.write(input);
}
@Override
public ChannelProgressivePromise write(FileChannel fileChannel, long position, long count) throws IOException {
return source.write(fileChannel,position,count);
}
@Override
public ChannelProgressivePromise write(File file, long position, long count) throws IOException {
return source.write(file,position,count);
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return ctx.newProgressivePromise();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return delegate.newProgressivePromise();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
void progress(int amount) {
progress += amount;
if (promise instanceof ChannelProgressivePromise) {
((ChannelProgressivePromise) promise).tryProgress(progress, -1);
}
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
throw new UnsupportedOperationException();
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return null;
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return new DefaultChannelProgressivePromise(embeddedChannel);
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return new DefaultChannelProgressivePromise(channel);
}
@Override
public ChannelProgressivePromise newProgressivePromise() {
return delegate.newProgressivePromise();
}
/**
* use netty batch write
* @param input ChunkedInput
* @see ChunkedFile
* @see ChunkedNioStream
* @see ChunkedNioFile
* @see ChunkedStream
* @return ChannelProgressivePromise
* @throws IOException if close
*/
ChannelProgressivePromise write(ChunkedInput input) throws IOException;
/**
* use netty zero copy
* @param fileChannel FileChannel
* @param count count
* @param position position
* @return ChannelProgressivePromise {@link ChannelProgressivePromise#addListener(GenericFutureListener)} }
* @see GenericProgressiveFutureListener
* @throws IOException if close
*/
ChannelProgressivePromise write(FileChannel fileChannel, long position, long count) throws IOException;
/**
* use netty zero copy
* @param file file
* @param count count
* @param position position
* @return ChannelProgressivePromise {@link ChannelProgressivePromise#addListener(GenericFutureListener)} }
* @see GenericProgressiveFutureListener
* @throws IOException if close
*/
ChannelProgressivePromise write(File file, long position, long count) throws IOException;